CUDA C best practice guide

这个文档是什么?

此书是帮助开发者更好利用NVIDIA CUDA GPU的一本手册。

同时本书也可做参考书,不过建议未读过的人可先概览一遍。

谁应该读此书?

本书中的讨论使用的都是C 语言,因此C语言/C++开发者在学习过程中应该不会感到费劲。

同时,书中提到了很多其他学习文档,均可免费从英伟达网站获取:
http://developer.nvidia.com/cuda-downloads
下面几个文档比较重要,尤其推荐使用:

  • CUDA Installation Guide
  • CUDA C Programming Guide
  • CUDA Toolkit Reference Manual

本书所写的优化部分假设你已经成功安装CUDA Toolkit并熟悉了CUDA C编程。

Assess, Parallelize, Optimize, Deploy

本书介绍了Assess, Parallelize, Optimize, Deploy(APOD)设计周期。APOD是一个周期性过程:初始化的加速可被达到,测试,并使用最少的时间来应用。
在这里插入图片描述

Assess
对于一个已存在的工程,第一步就是去获取应用来定位。定位什么呢?即工程代码中的那部分是对冗余的执行时间负责的(谁产生的这部分时间开销)。

Parallelize
鉴定完上面那个代码位置,并且完成了设置目标和期望的基本事情之后,开发者们需要并行化这段代码。
依赖于原始代码,并行化的任务可以简单到直接调用已存在的GPU 优化库,比如cuBLAS, cuFFT, 或者Thrust。
另一方面,有些应用的设计可能会需要一些代码的重构来实现并行。

Optimize
当每一轮的应用并用完成后,开发者可以进行优化以得到GPU计算的最佳表现。

优化可以在几个不同的层面上,从带计算操作的冗余数据传输到微调一个浮点数操作序列等。

Deploy
完成了应用中一个或多个模块的GPU 加速之后,有必要将GPU计算结果与预期结果(CPU计算结果)进行比较,以确定我们的任务是正确完成的。
-------------------------以上是本书的前言介绍----------------------------------------
本书一共包含17章,拟花一周过完。这就相当于每天至少完成3章的学习。另外我会同时学习另外一本书CUDA C Programming Guide, 该书共5章,拟每天学习一章。

在这里插入图片描述

发布了207 篇原创文章 · 获赞 36 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/NXHYD/article/details/102961108