2.7_Further_Reading
2.7 Further Reading
NVIDIA has white papers on their Web site that describe the Fermi and Kepler architectures in detail. The following white paper describes Fermi.
The Next Generation of NVIDIA GeForce GPU www.nvidia.com/object/GTX_400 architecture.html
The following white paper describes the Kepler architecture and its implementation in the NVIDIA GeForce GTX 680 (GK104).
www.geforce.com/Active/en_US/en_US/pdf/GeForce-GTX-680-Whitepaper-FINAL.pdf
NVIDIA engineers also have published several architectural papers that give more detailed descriptions of the various CUDA-capable GPUs.
Lindholm, E., J. Nickolls, S. Oberman, and J. Montrym. NVIDIA Tesla: A unified graphics and computing architecture. IEEE Micro 28 (2), March-April 2008, pp. 39-55.
Wittenbrink, C., E. Kilgariff, and A. Prabhu. Fermi GF100 GPU architecture. IEEE Micro 31 (2), March–April 2011, pp. 50–59.
Wong et al. used CUDA to develop microbenchmarks and clarify some aspects of Tesla-class hardware architecture.
Wong, H., M. Papadopoulou, M. Sadooghi-Alvandi, and A. Moshovos. Demystifying GPU microarchitecture through microbenchmarking. 2010 IEEE International Symposium on Performance Analysis of Systems and Software (IPSASS), March 28-30, 2010, pp. 235-246.
Software Architecture
This chapter provides an overview of the CUDA software architecture. Chapter 2 gave an overview of the hardware platform and how it interacts with CUDA, and we'll start this chapter with a description of the software platforms and operating environments supported by CUDA. Next, each software abstraction in CUDA is briefly described, from devices and contexts to modules and kernels to memory. This section may refer back to Chapter 2 when describing how certain software abstractions are supported by the hardware. Finally, we spend some time contrasting the CUDA runtime and driver API and examining how CUDA source code is translated into microcode that operates on the GPU. Please remember that this chapter is just an overview. Most of the topics covered are described in more detail in later chapters.