英伟达不同系列的桌面型显卡架构,如(2009-):
显卡系列 | 显卡架构 | 年份 | 参考显卡型号 |
---|---|---|---|
100系 | 特斯拉 ( Tesla ) | 2009~2009 | GeForce GTS 150 |
200系 | 特斯拉 ( Tesla ) | 2009~2009 | GeForce GTX 295 |
300系 | 特斯拉 ( Tesla ) | 2009~2010 | GeForce GT 335 |
400系 | 费米 ( Fermi ) | 2010~2011 | GeForce GTX 460 |
500系 | 费米 ( Fermi ) | 2011~2012 | GeForce GTX 555 |
600系 | 开普勒 ( Kepler ) | 2012~2013 | GeForce GTX 690 |
700系 | 麦克斯韦尔 ( Maxwell ) | 2013~2014 | GeForce GTX 750 Ti |
900系 | 麦克斯韦尔 ( Maxwell ) | 2014~2016 | GeForce GTX 960 |
10系 | 帕斯卡 ( Pascal ) | 2016~2018 | GeForce GTX 1080 Ti |
20系 | 图灵 ( Turing ) | 2018~ | GeForce RTX 2080 Ti |
显卡计算能力,如:
不同显卡架构的 CUDA 开发是的兼容性是需要考虑的。
NVIDIA CUDA C 编译器 - nvcc
用于生成指定架构的 cubin 文件和每个核的前向兼容(forward-compatible)的 PTX 版本。每个 cubin 文件链接了指定计算兼容(compute-capability)的版本,而且其前向计算兼容仅支持与之主版本号的一致的GPU架构。例如,链接了计算兼容 3.0 的 cubin 文件,支持在所有计算兼容的 3.x(Kepler架构) 设备上的运行,但,其不支持在计算兼容 5.0(Maxwell 架构) 或 6.0(Pascal架构)的设备上运行。
因此,为了确保CUDA应用发布后的GPU架构的前向计算兼容性,推荐包含核的所有 PTX 版本。
[1] - CUDA8.0
/usr/local/cuda/bin/nvcc
-gencode=arch=compute_50,code=sm_50
-gencode=arch=compute_52,code=sm_52
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_61,code=compute_61
-O2 -o mykernel.o -c mykernel.cu
[2] - CUDA9.x
/usr/local/cuda/bin/nvcc
-gencode=arch=compute_50,code=sm_50
-gencode=arch=compute_52,code=sm_52
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_70,code=compute_70
-O2 -o mykernel.o -c mykernel.cu
[3] - CUDA10.0
/usr/local/cuda/bin/nvcc
-gencode=arch=compute_50,code=sm_50
-gencode=arch=compute_52,code=sm_52
-gencode=arch=compute_60,code=sm_60
-gencode=arch=compute_61,code=sm_61
-gencode=arch=compute_70,code=sm_70
-gencode=arch=compute_75,code=sm_75
-gencode=arch=compute_75,code=compute_75
-O2 -o mykernel.o -c mykernel.cu
相关材料
[1] - Turing Compatibility Guide for CUDA Applications
[2] - NVIDIA 显卡计算能力