Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

System programming: We extensively have considered systems programming within th

ID: 662329 • Letter: S

Question

System programming:

We extensively have considered systems programming within the context of multi-core CPUs as well as the NVIDIA GPU model for computation (not just graphics processing).

1.1. Describe the fundamental hardware/organization differences between a modern production commodity CPU (e.g., typical multi-core X86-64) and a NVIDIA GPU. It is important to discuss the memory hierarchy differences between the two, as well as how the host (e.g., X86-64) memory and the GPU memory can be related.

1 1.1.1. What does NVIDIA mean by compute capability of a GPU? Give specific examples, including at least warp and dimensionality of grid of thread blocks. Be certain to define and illustrate the concepts and/or terms you use (such as warp or thread block).

Explanation / Answer

The compute capability is the "feature set" (both hardware and software features) of the device. You may have heard the NVIDIA GPU architecture names "Tesla", "Fermi" or "Kepler". Each of those architectures have features that previous versions might not have.

In your CUDA toolkit installation folder on your hard drive, look for the file CUDA_C_Programming_Guide.pdf (or google it), and find Appendix F.1. It describes the differences in features between the different compute capabilities