§1.2 第二代PTX ISA架构(PTX 2.0)
PTX(Parallel Thread eXecution,并行线程执行)是NVIDIA用以支持并行线程处理器的低级虚拟机和ISA(Instruction-Set Architecture),当程序运行时PTX指令都会通过GPU驱动转变为机器指令,PTX的目的在于提供一个与机器无关的编程环境。
Fermi是首款支持第二代PTX指令的GPU架构,相比于G80/GT200时代的PTX 1.x,PTX 2.0有了明显改进,因此NVIDIA这次比较高调地将它摆上台面。
PTX 2.0有一些新的特性,使得GPU具备更强的可编程性、更精确和提供更高的性能。这些包括:完整支持IEEE 32bit的单精度浮点数;变量和指针支持统一的寻址空间;新的指令支持OpenCL和DirectCompute并为完全支持C/C++而做了特殊的设计。
·统一寻址空间实现完全C++支持
在PTX 1.0中进行Load/store操作时需要从local、Shared以及global三处寻址空间中指定一个,由于C/C++语言中所有变量和函数都是通过指针才能确定对象,这样存在编译时分离的寻址空间无法确定指针的位置而导致无法支持C/C++语言。在PTX 2.0中把三个寻址空间统一为一个单独连续的空间,不再需要指定具体寻址空间从而解决了不支持C/C++语言的难题。
![]() |
另外PTX 1.0的寻址长度为40-bit,可以支持TB以上的寻址空间,到了PTX 2.0中Load/store操作的寻址长度进一步提升到64-bit,为未来发展提供了更广阔的空间。
更主要的是,统一寻址空间的意义是将GPU当成“共享地址空间”的并行计算机。大量的算法是基于共享地址空间平台的,这样能够显著推动GPU并行计算的发展。
·新的指令支持OpenCL和DirectCompute
OpenCL和DirectCompute与CUDA有着非常密切的关系,甚至可以把它们理解为基于CUDA的API。作为第三代CUDA架构的Fermi,自然能很好地支持它们,更特别的,Fermi可以利用标准的转换方式,从硬件上支持OpenCL和DirectCompute的接口指令,使得图形渲染计算和通用计算很简单地操作在相同的数据上。
PTX 2.0 ISA还为DirectCompute提供了的新指令population count、append和bit-reverse。
·IEEE 32-bit浮点精度
Fermi在单精度浮点指令上开始从硬件上支持次正规数(subnormal number)以及IEEE 754-2008的四种舍入模式(nearest、zero、positive infinity、negative infinity)。
次正规数是非常小的数字,介于0和最小的正规数间,在上一代的GPU中通常将它当作0来处理,这样会造成精度的损失影响最终结果。Fermi开始通过硬件来处理次正规数,可以精确的计算小于0的浮点数并避免精度损失的问题。
![]() |
通常情况下在GPU上完成的如“a*b+c”这样的MAD计算可以让两个操作在一个指令周期内完成。MAD指令先进行“a*b”的乘法运算,再将结果与“c”进行加运算。但是MAD指令乘运算积作为中间数据是会被舍掉尾数部分的,因此在随后的加法运算中得到的数据并不是最精确的结果。
Fermi使用了更高精度的FMA指令,不但可以支持32-bit的单精度的操作,也满足64-bit双精度的需求(GT200只支持64-bit双精度的FMA)。FMA做乘运算和加运算的时候只在最后运算的时候作一次舍入,它保留中间数据的全部精度,确保最终结果的准确性。在这样的精度保证下面,更多的算法都可以受益,像渲染算法、迭代的数学算法和求平方根的算法等。
·通过predication(断言)提高条件性能
Fermi的PTX 2.0 ISA开始在指令层为分散的线程提供predication(断言)硬件级支持,它能缩短条件代码部分,更快更好地执行条件语句。
游客 2012-08-09 02:54
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
48#
游客 2010-04-15 21:17
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
47#
游客 2010-04-05 12:58
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
46#
游客 2010-03-31 10:50
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(1) | 举报 | 回复
45#
超能网友管理员 2010-03-31 09:16 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(1) | 举报 | 回复
44#
游客 2010-03-30 20:15
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(1) | 举报 | 回复
43#
游客 2010-03-29 23:44
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
42#
游客 2010-03-29 15:30
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
41#
游客 2010-03-29 14:49
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
40#
游客 2010-03-29 13:03
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
39#
超能网友一代宗师 2010-03-29 11:03 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
38#
游客 2010-03-28 22:12
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
37#
超能网友大学生 2010-03-28 19:39 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
36#
超能网友教授 2010-03-28 13:51 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
35#
游客 2010-03-28 13:29
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
34#
游客 2010-03-28 12:28
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
33#
游客 2010-03-28 10:35
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
32#
游客 2010-03-27 14:52
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
31#
超能网友管理员 2010-03-27 14:26 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
30#
超能网友初中生 2010-03-27 14:18 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
29#
游客 2010-03-27 14:03
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
28#
游客 2010-03-27 13:57
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
27#
超能网友教授 2010-03-27 13:39 | 加入黑名单
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
26#
游客 2010-03-27 13:11
该评论年代久远,荒废失修,暂不可见。
支持(1) | 反对(0) | 举报 | 回复
25#
游客 2010-03-27 12:47
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
24#
游客 2010-03-27 12:43
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
23#
游客 2010-03-27 12:15
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
22#
游客 2010-03-27 12:13
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
21#
游客 2010-03-27 11:36
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
20#
游客 2010-03-27 11:30
该评论年代久远,荒废失修,暂不可见。
支持(0) | 反对(0) | 举报 | 回复
19#
加载更多评论