本书结构
本书由十章组成,涵盖以下主题:
**第1章:CUDA的异构并行计算**
简要介绍了异构架构,它通过GPU补充CPU,并讨论了向异构并行编程的范式转变。
**第2章:CUDA编程模型**
介绍了CUDA编程模型及CUDA程序的基本结构。解释了CUDA中大规模并行计算的逻辑视图:通过编程模型直观地展示了两个级别的线程层次结构。还讨论了线程配置的启发式方法及其对性能的影响。
**第3章:CUDA执行模型**
从硬件角度检查内核执行,研究了数千个线程如何在GPU上调度。解释了计算资源在多级粒度下如何在线程之间划分。展示了如何利用硬件视图来指导内核设计,并通过性能分析的方法来开发和优化内核。然后,通过示例说明了CUDA动态并行性和嵌套执行。
**第4章:全局内存**
介绍了CUDA内存模型,探讨了全局内存数据布局,并分析了对全局内存的访问模式。解释了各种内存访问模式对性能的影响,并演示了CUDA 6中的新特性——统一内存如何简化CUDA编程并提高生产力。
**第5章:共享内存和常量内存**
解释了如何利用共享内存(一个程序管理的低延迟缓存)来提高内核性能。描述了共享内存的最佳数据布局,并展示了如何避免性能低下的问题。最后,说明了如何在相邻线程之间进行低延迟通信。
**第6章:流和并发**
描述了如何使用CUDA流实现多内核并发,如何重叠通信和计算,以及不同的任务调度策略如何影响内核间的并发性。
**第7章:指令级原语优化**
解释了浮点运算的性质、标准和内建数学函数以及CUDA原子操作。展示了如何使用相对低级的CUDA原语和编译器标志来调整应用程序的性能、准确性和正确性。
**第