摘要
CUDA是英伟达的GPU通用计算(GPGPU,General Purpose comuputing on GPU)架构。不同版本的CUDA的区别主要在“GP”和“GPU”上:
- 支持的计算库多少和计算销量(GP)
- 支持的GPU架构新旧(GPU)
当然还有一些对语言版本的支持,编译器的优化(CUDA9开始支持c++14,gcc6),bug fixes等等。
具体区别
以现在比较常见的CUDA8.0,9.x,10.x为例,从计算库和支持的计算架构两个方面来罗列一下他们的区别:
计算库:
- CUDA8.0支持的lib/中有很常用的:cublas(基础线性代数计算库,Basic Linear Algebra Subprograms),cufft(快速傅里叶变换),curand(随机数),cusparse(稀疏矩阵),cusolver(解线性方程组)等等。
- CUDA9.0在cusolver,cugraph库中加入了新算法;加速了cublas,cufft中的算法;引入了Cooperative Groups来优化线程同步问题。[1]
- CUDA9.2对RNN和CNN都做了一些专属加速;给cuFFT再次加速;加入了cutlass(自定义的线性代数运算)。[2]
- CUDA10.0加入了nvJPEG(jpg图像处理库),应当可以加速dataloader&#