首发于数字编程
CUDA GPU 编程从入门到放弃

CUDA GPU 编程从入门到放弃

GPU 为这一次的人工智能复兴提供了“战略核能力”,其中又以 NVIDIA GPU 为中坚力量,驱动NV GPU 以 CUDA 为主要编程语言。

GPU 编程早期被称为 通用GPU编程(General-popuse GPU programing,GPGPU),这一时期的程序员借助 Direct3D 和 OpenGL 的图形 API 通过迷惑图形硬件来执行非图形的计算任务。CUDA (自2007年)的出现改变了这一切。Ian Buck 在斯坦福大学开展一项名为 Brook 的项目,意在简化 GPGPU 应用程序的的开发过程。之后 Buck 进入 NVIDIA 并领导开发了GPU 编程工具套装,即 CUDA。 -- 摘自 《CUDA专家手册》

本文提供介绍一些CUDA编程入门材料。

入门书籍《CUDA by Example》

进阶书籍 《GPU高性能编程CUDA实战》 《CUDA专家手册》 《大规模并行处理器编程实战(第2版)》

豆列:CUDA Programming

《大规模并行处理器编程实战(第2版)》原本在 Coursera 上有公开课,现在好像搜不到了;曾受邀做过这门课的网络助教(更早一期的课程拿了满分+);课程的编程 exercises 非常值得做一遍,试试这个资源链接 [Coursera] Heterogeneous Parallel Programming


为什么说“放弃”呢,因为大部分时候不需要写太底层的 CUDA kernel,很多开源(如Tensorflow、Pytorch 等)都有很好的封装,大多数的时候调用 cuBLAS、cudnn 就可以完成计算的任务。

编辑于 2018-04-30

文章被以下专栏收录