CUDA C编程权威指南
[美] 程润伟(John Cheng) [美] 马克斯·格罗斯曼(Max Grassman) [美] 泰·麦克切尔(Ty McKercher)
译者序
CUDA(Compute Unified Device Architecture,统一计算设备架构)是NVIDIA(英伟达)提出的并行计算架构,结合了CPU和GPU的优点,主要用来处理密集型及并行计算。CPU和GPU是两个独立的处理器,通过单个计算节点中的PCI-Express总线相连,GPU用来提高计算密集型应用程序中并行程序段的执行速度,CPU则负责管理设备端的资源。CUDA编程的独特优势在于开放的架构特性可以使程序员在功能强大的硬件平台上充分挖掘其并行性,既满足了计算密集型程序的需要,又实现了程序的易读性及便捷性。
对任何想要使用GPU来进行科研或技术编程的人来说,本书都将是一个珍贵的资源宝库,它全面介绍了CUDA编程接口及其用法,包含但不局限于CUDA编程模型、GPU执行模型、GPU内存模型、CUDA流和事件、多GPU编程的相关技术、CUDA库等内容。此外,本书列举了大量的范例来帮助读者入门,并提供了程序下载地址,供读者亲自运行体验。在基本掌握了本书的内容之后,你将发现CUDA C编程是一项十分简单、有趣且高效的工作。
本书第1章简要介绍了GPU和CPU构成的异构架构,对使用CUDA进行异构并行计算的原理进行了简要说明。第2章介绍了CUDA编程模型,从逻辑上解释了什么是CUDA大规模并行计算。第3章介绍了CUDA执行模型。第4章给出了CUDA内存模型,分析了全局内存的访问模式。第5章介绍了数据在共享内存中的存储方式,以及如何使用共享内存提高函数性能。第6章讲述了如何使用CUDA流实现网格级的并发。第7章介绍了计算密集型应用程序中的CUDA指令级原语。第8章介绍了CUDA函数库及其作用域,包括线性代数、傅里叶变换、随机数等。第9章讲述了多GPU编程。第10章则说明了在使用CUDA进行程序开发时的一些注意事项。
译者在翻译过程中力求忠于原著,但限于译者的能力及…