《CUDA C编程权威指南》——3.7 总结

简介:

本节书摘来自华章计算机《CUDA C编程权威指南》一书中的第3章,第3.7节,作者 [美] 马克斯·格罗斯曼(Max Grossman),译 颜成钢 殷建 李亮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.7 总结

本章从硬件的角度分析了内核执行。在GPU设备上,CUDA执行模型有两个最显著的特性:

  • 使用SIMT方式在线程束中执行线程
  • 在线程块与线程中分配了硬件资源

这些执行模型的特征使得我们在提高并行性和性能时,能控制应用程序是如何让指令和内存带宽饱和的。不同计算能力的GPU设备有不同的硬件限制,因此,网格和线程块的启发式算法在为不同平台优化内核性能方面发挥了非常重要的作用。

动态并行使设备能够直接创建新的工作。它确保我们可以用一种更自然和更易于理解的方式来表达递归或依赖数据并行的算法。为实现一个有效的嵌套内核,必须注意设备运行时的使用,其包括子网格启动策略、父子同步和嵌套层的深度。

本章也介绍了使用命令行分析工具nvprof详细分析内核性能的方法。因为一个单纯的内核实现可能不会产生很好的性能,所以配置文件驱动的方法在CUDA编程中尤其重要。性能分析对内核行为提供了详细的分析,并能找到产生最佳性能的主要因素。

在第4章和第5章,将会从CUDA内存模型的角度介绍内核执行的内容。

相关文章