8.7_指令集

8.7 指令集

英伟达公司开发的架构主要有3种:特斯拉(SM 1.x)、费米(SM 2.x)和开普勒(SM 3.x)。随着这一系列的架构的推出,新的指令集也在英伟达公司更新他们产品时被添加。例如,全局内存原子操作在最初的特斯拉架构的处理器中是不存在的(G80,即2006年出货的 GeForce GTX 8800),但是所有随后发布的特斯拉架构GPU都包含了这一操作。所以在通过函数cuDeviceComputeCapability()查询SM版本时,G80的主要和次要版本信息会是1.0,其他的特斯拉级GPU会是1.1(或更高)。如果SM版本为1.1或更高,应用程序可以使用全局原子操作。

表8-16给出了SASS指令集,它们可以使用cuobjdump反汇编特斯拉架构(SM 1.x)硬件微码打印出来。费米与开普勒指令集彼此十分相似,只在是否支持表面加载/存储指令上有差别,所以它们的指令集在表8-17给出。在两个表格中,中间的一列给出了首次支持给定指令集的SM版本。

表8-16 SM 1.x指令集

区间压缩, 通过收敛于基本区间的函数近似表达一个定义于全域的函数, 常用在三角函数的近似问题中。——译者注

表8-17 SM 2.x和SM 3.x指令集

(续)

(续)

(续)

8.7_指令集 - The CUDA Handbook | OpenTech