第1章 CUDA入门与编程思想
本章的目的是介绍CUDA(由NVIDIA开发并行计算架构)以及CUDA与常规的单核、多核编程之间的区别。通过示例程序和用法说明,学习如何编译并运行CUDA程序,以及如何根据需要来改写这些程序。本章使用并讨论了CUDA Thrust和CUDA Runtime两种API(应用开发接口),同时还介绍了GPGPU开发中的三条准则,以及Amdahl定律、大O记号、数据并行与任务并行的区别等内容。此外,本章也介绍了基本的GPU调试工具,在大多数情况下CUDA代码的调试工作和其他常规C或C++程序的调试是一致的。为了帮助初学者更好地掌握本章内容,本章在适当的位置提供了额外入门参考资料。读完本章后,读者将能够在单一程序中并发利用GPGPU和CPU处理器,编写和调试能执行上百万线程的大规模并行程序。
通过对本章的学习,读者能理解如下基本内容:
编写、编译并运行CUDA应用程序的方法。
选用合适的CUDA API的准则。
Amdahl定律及其与GPU计算的关系。
高性能GPU计算的三条准则。
大O记号,以及数据传输的影响。
任务并行与数据并行的区别。
各CUDA调试工具在Linux、Mac、Windows中针对GPU的特有功能。
CUDA内存检查器(CUDA memory checker)及其寻找越界和数据未对齐等内存错误的方法。 ……