5.4_本章小结
5.4 本章小结
我们知道了如何将线程块进一步分解为更小的并行执行单元,这种并行执行单元也称为线程。我们回顾了第4章中的矢量相加示例,并介绍了如何实现任意长度矢量的加法。我们还给出了一个归约运算的示例,以及如何通过共享内存和同步来实现这个运算。这个示例说明了如何对GPU与CPU进行协作从而完成计算。最后,我们还给出了当忽略同步时给应用程序造成的问题。
你已经学习了CUDA C的大部分基本概念,它与标准C在某些方面是相同的,但在大多数方面是不同的。此时,你可以考虑你曾经遇到的那些问题,以及哪些问题可能需要通过CUDA C的并行实现来解决。随着后面的进一步深入学习,我们将看到CUDA C的更多功能以及在GPU上实现各种任务,此外还将学习到CUDA提供的一些更高级API。
第6章
常量内存与事件
我们相信你已经学会了如何编写在GPU上执行的代码,也应该知道了如何生成并行线程块来执行核函数,并且还知道如何将这些线程块分解为并行线程。此外,你还看到了如何在这些线程之间进行通信与同步。但这本书的内容并未就此结束,你可能已经猜到了,CUDA C还有着更多有用的功能。
本章将介绍其中一些更高级的功能。具体来说,就是通过GPU上特殊的内存区域来加速应用程序的执行。我们将讨论其中一种内存区域:常量内存(Constant Memory)。此外,我们还将介绍一种增强CUDA C应用程序性能的方法,在这个过程中你将学习到如何通过事件来测量CUDA应用程序的性能。通过这些测量方法,你可以定量地分析对应用程序的某个修改是否会带来性能提升(或者性能下降)。