这一篇我们来使用CUDA写一个矩阵加法的小程序,实际上手一下。
环境搭建
笔者的测试环境是Ubuntu 16.04系统 + Titan XP显卡。CUDA Toolkit和显卡驱动的安装我就不赘述了,相信玩深度学习的各位都安装过。如果你不知道自己安装没安装过,但你用GPU跑过pytorch、tensorflow等框架的代码,那你也其实是安装过这些环境的,可以直接编译CUDA程序。CUDA代码文件后缀名是.cu。编译单文件CUDA程序非常方便,运行下面这条指令即可。
nvcc -o test test.cu
之后会生成一个可执行文件test,使用下面的命令即可运行。
./test
是不是非常简单,目前这种方式已经足够我们进行CUDA编程的入门了,之后我们再学习使用其他工具进行程序的调试。
从矩阵加法入手
既然是第一个程序,我们从最经典也最适合GPU的矩阵加法入手,学习一下标准的CUDA程序会由哪些部分组成。我们会实现一个矩阵求和的程序,然后统计运行时间,看看相比于CPU串行编程,GPU到底达到了多高的加速比。先贴代码。