扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共15页)
12.二代并行线程指令 完整编译环境支持
Fermi也是首款支持第二代PTX(Parallel Thread eXecution,并行线程执行)指令的GPU架构,PTX是NVIDIA用以支持并行线程处理器的低级虚拟机和ISA(Instruction-Set Architecture),每当程序运行时PTX指令都会通过GPU驱动转变为机器指令。设计PTX主要目的是为了提供一个机器无关的支持C、C++、Fortan等语言的编译器ISA,并能超越GPU架构与核心数目差异而充分发挥GPU性能的编程环境,在G80、GT200发布之时并未见到NVIDIA大张旗鼓地宣传这一指令,而在Fermi架构中,PTX 2.0指令有了明显改进,重要性也不可同日而语。
PTX 2.0指令提升了可编程性、精确度以及性能,完整支持IEEE 32位浮点精度,所有变量及指针拥有统一寻址空间,支持64位寻址,支持OpenCL与DirectCompute(DX11中的通用计算)新指令,最重要的一点则是统一寻址空间完全支持C++语言。
统一寻址空间不再需要指定具体的寻址位置
在PTX 1.0中Load/store操作时需要从local、shard以及global三处寻址空间中指定一个,由于C/C++语言中所有变量和函数都是通过指针才能确定的对象中,编译时分离的寻址空间无法确定指针的位置导致不能支持C/C++语言。在PTX 2.0中loca、shard以及global寻址空间得以统一,load/store操作不再需要指定具体寻址空间因而解决了不支持C/C++语言的难题。
另外PTX 1.0的寻址长度为40-bit,可以支持TB以上的寻址空间,到了PTX 2.0中Load/store操作的寻址长度进一步提升到64-bit,未来的寻址空间要求再高也不会出现寻址空间不够的问题了。
Fermi架构要想拓宽远大的通用计算之路,良好的编译环境是少不了的。除了NVIDIA自家力推的CUDA之外,NVIDIA的显卡也支持OpenCL、OpenGL、DirectCompute、Python、Fortran、C/C++(CUDA本身就是基于C语言的)等多种编程环境,Fermi还有一个名为Nexus的小插件,安装此插件之后程序员可以在MS VS2008中直接调用GPU资源,甚至不再需要额外的转换。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者