12.3_参考资料

12.3 参考资料

如果还没有厌倦本书给出的所有内容,那么你可能还希望阅读更多的学习资料。我们知道,有些读者希望通过练习代码来继续学习,而对于其他的读者,则希望通过阅读其他一些参考资料来成为一名CUDAC编码人员。

12.3.1 《Programming Massively Parallel Processors:a Hands-On Approach》

在第1章中,我们已经指出本书并不是一本讲解并行架构的书。虽然我们提到了一些专业术语,例如多处理器和线程束,但本书重点介绍的是如何使用CUDA C及其API来编程。我们在《NVIDIA CUDA Programming Guide》给出的编程模型中学习了CUDA C语言,而并没有详细介绍NVIDIA硬件在实际完成这些任务时采用的方式。

然而,如果你想成为一名优秀的CUDA C程序员,那么就需要进一步熟悉CUDA架构以及 NVIDIA GPU的底层工作原理。要了解这些内容,我们建议你阅读《Programming Massively Parallel Processors: A Hands-on Approach》。本书是由NVIDIA前首席科学家David Kirk与伊利诺斯大学电子与计算机工程系教授Wen-mei W. Hwu一起合作完成的。在这本书中,你不仅能

看到许多熟悉的术语和概念,还将学习到NVIDIA CUDA架构的许多细节,包括线程调度机制和延迟容忍(Latency Tolerance)、内存带宽的使用和效率、浮点计算规范等。该书还介绍了更广泛意义上的并行编程,因此你可以更好地了解如何为大规模的复杂问题设计并行解决方案。

12.3.2 CUDAU

在我们当中,有些读者在开始学习GPU编程之前没有上过大学。对于那些幸运地上过大学或在不久将要上大学的读者,需要知道的是,在全世界大约有300所大学开设了CUDA课程。然而,在开始大学生活之前,还有另一种方法来学习CUDA!在CUDA Zone网址上可以找到介绍CUDA U的链接,这基本上是一个CUDA在线教育大学。或者,你可以直接跳转到网址www.nvidia.com/object/cuda_education。如果你参加了一些CUDA U在线课程,那么将学到不少关于GPU计算的知识,但在本书出版时,还没有出现一些在线协会可以在课后参与。

1. 大学课程资料

在众多的CUDA教学资料中,伊利诺斯大学的CUDA C编程课程是最好的课程之一。NVIDIA和伊利诺斯大学将这些课程制作成M4V视频免费下载,可以在iPod,iPhone或者兼容的视频播放器上播放。我们知道你肯定在想:“终于有一种方法让我在车辆管理局排队时还可以学习CUDA!”你可能会奇怪,为什么要等到本书的结尾时才告诉你本书有相应的视频教学版本。抱歉这么晚才告诉你,但无论如何,视频教学的效果总是不如课本的教学效果,对不对?除了伊利诺斯大学和加州大学戴维斯分校的课程资料外,你还可以找到CUDA教学音频以及到第三方培训和咨询服务的链接。

2. Dr. Dobb's

在创刊以来30多年的时间里,《Dr.Dobb's》期刊涵盖了计算技术领域中的所有主要发展方向,NVIDIA的CUDA也不例外。《Dr.Dobb's》已经发表了连续若干期的文章,广泛地介绍了CUDA。这些文章的系列标题为《CUDA, Supercomputing for the Masses》,首先介绍了GPU计算,然后介绍了第一个核函数以及CUDA编程模型的其他方面。《Dr.Dobb's》中的这系列文章涵盖的主题包括:错误处理、全局内存性能、共享内存、CUDA Visual Profiler、纹理内存、CUDA-GDB、包含数据并行CUDA原语的CUDPP库,以及许多其他主题。这系列的文章很好地补充了我们在本书中介绍的内容。而且,对于书中只是简要介绍的一些工具,例如性能分析和调试等,在这些文章中同样给出了更详细的信息。在CUDA Zone网页上包含了这些文章的链接,也可以通过检索“Dr Dobbs CUDA”来访问这些文章。

12.3.3 NVIDIA论坛

有时候,即使你仔细研读了所有的NVIDIA文档,但还是会发现有些问题无法解答。或许你还想知道,是否有人曾经有过与你类似的经历。或者,你正在筹办一个CUDA庆祝会,因此

想邀请一些有着相同兴趣的人。对于你感兴趣的任何问题,我们建议将它们发布到NVIDIA网站的论坛上。论坛的地址是http://forums.nvidia.com,在这里你可以向其他CUDA使用者提出各种问题。事实上,在读完本书后,你已经可以帮助其他人并回答他们的问题了!NVIDIA雇了专人来跟踪论坛上的问题,因此即使最困难的问题,也会得到及时且权威的解答。我们还希望获得用户对新推出功能的反馈和建议,无论是赞扬还是批评,都将欣然接受。