Professional CUDA C Programming

本书结构

本书由十章组成,涵盖以下主题:

**第1章:CUDA的异构并行计算**  
简要介绍了异构架构,它通过GPU补充CPU,并讨论了向异构并行编程的范式转变。

**第2章:CUDA编程模型**  
介绍了CUDA编程模型及CUDA程序的基本结构。解释了CUDA中大规模并行计算的逻辑视图:通过编程模型直观地展示了两个级别的线程层次结构。还讨论了线程配置的启发式方法及其对性能的影响。

**第3章:CUDA执行模型**  
从硬件角度检查内核执行,研究了数千个线程如何在GPU上调度。解释了计算资源在多级粒度下如何在线程之间划分。展示了如何利用硬件视图来指导内核设计,并通过性能分析的方法来开发和优化内核。然后,通过示例说明了CUDA动态并行性和嵌套执行。

**第4章:全局内存**  
介绍了CUDA内存模型,探讨了全局内存数据布局,并分析了对全局内存的访问模式。解释了各种内存访问模式对性能的影响,并演示了CUDA 6中的新特性——统一内存如何简化CUDA编程并提高生产力。

**第5章:共享内存和常量内存**  
解释了如何利用共享内存(一个程序管理的低延迟缓存)来提高内核性能。描述了共享内存的最佳数据布局,并展示了如何避免性能低下的问题。最后,说明了如何在相邻线程之间进行低延迟通信。

**第6章:流和并发**  
描述了如何使用CUDA流实现多内核并发,如何重叠通信和计算,以及不同的任务调度策略如何影响内核间的并发性。

**第7章:指令级原语优化**  
解释了浮点运算的性质、标准和内建数学函数以及CUDA原子操作。展示了如何使用相对低级的CUDA原语和编译器标志来调整应用程序的性能、准确性和正确性。

**第8章:GPU加速CUDA库和OpenACC**  
介绍了CUDA领域特定库的新并行层,包括线性代数、傅里叶变换和随机数生成的具体示例。解释了OpenACC(基于编译器指令的GPU编程模型)如何通过提供更简单的方式来利用GPU计算能力,从而补充CUDA。

**第9章:多GPU编程**  
介绍了GPUDirect技术,用于实现GPU之间的点对点内存访问。解释了如何在多个GPU之间管理和执行计算。还展示了如何通过使用CUDA感知MPI和GPUDirect RDMA,在GPU加速的计算集群上扩展应用程序,以实现接近线性的性能可扩展性。

**第10章:实施考虑**  
讨论了CUDA开发过程和各种基于性能分析的优化策略。演示了如何使用CUDA调试工具来调试内核和内存错误。还提供了一个将传统C应用程序迁移到CUDA C的案例研究,通过逐步说明帮助巩固对方法论的理解、可视化过程和演示工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值