热点推荐
ZOL首页 > 显卡 > 评测 > 横向评测 >

GPU通信和C++模板库

提高多GPU编程与执行效率 CUDA 4.0初探

CBSi中国·ZOL 作者:中关村在线 濮元恺 责任编辑:林光楠 【原创】 2011年03月07日 05:00 评论

  ● GPU通信和C++模板库

  多GPU通信在以前的CUDA版本中代价很大,只有专业的并行编程环境才能驱动多款GPU在同一系统内执行一个任务,而目前桌面级应用中,如果用户的多块显卡同时存在于系统中,一个CUDA加速程序往往只能调用其中一个GPU核心。


浅析DirectX11技术带给图形业界的改变
从DirectX 10到DirectX 11的多线程变化

  虽然我们看到GPU在图形操作时可以有SLI速力或者CF交火能力,也有DirectX 提出的多线程渲染技术,但是高并行度的GPU通用计算领域在PC桌面级应用中反倒不能实现多款GPU联合加速。

提高多GPU编程和执行效率 CUDA 4.0初探

  旧版的GPU Direct 1.0主要用于应用程序在网络间通信,新版的GPU Direct 2.0则转入节点内通信,支持P2P内存访问、传输和同步,代码更少,编程效率更高。在此之前,同一节点内的不同GPU互相访问,需要绕道系统内存并进行两次拷贝。 就不用理会系统内存了,不同GPU可以直接进行传输,只需要一个统一的存储体系协议NVIDIA就搞定了整个问题。

  说到GPU支持C++编程大家一定不会陌生,在Fermi架构发布之时,C++模板库模板库就已经被NVIDIA不断升级。Fermi是首款支持第二代PTX指令的GPU架构,我们知道PTX 2.0使得GPU具备更强的可编程性、更精确和提供更高的性能。

提高多GPU编程和执行效率 CUDA 4.0初探
Thrust C++模板化算法与数据结构

  通过上图可知,Thrust C++模板化算法与数据结构提供了强大的开源C++并行算法和数据结构。类似C++ STL标准模板库;可在编译时自动选择最快的代码路径,在多核心CPU与GPU之间分配工作。

  C/C++语言中所有变量和函数都是通过指针才能确定对象,这样存在编译时分离的寻址空间无法确定指针的位置而导致无法支持C/C++语言。PTX 2.0最为突出的地方在于它提供的统一寻址空间的意义,将GPU当成“共享地址空间”的并行计算机。大量的算法是基于共享地址空间平台的,这样能够显著推动GPU并行计算的发展。

上一页 1 2 3 4 下一页
频道热词:华硕主板  Intel  AMD  
视觉焦点
NVIDIA GeForce GTX560Ti
    显卡评测热点
    排行 文章标题