科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道服务器组件英伟达CUDA 6加入CPU-GPU共享内存行列

英伟达CUDA 6加入CPU-GPU共享内存行列

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

英伟达公司日前宣布,其GPU编程语言最新版本CUDA 6已经加入“共享内存”机制;顾名思义,程序员们将彻底摆脱令人头痛不已的磨难,无需再以手动方式在CPU与GPU的独立内存空间之间复制数据。英伟达方面解释,这种新功能会把编程工作量一举降低约50%。

作者:ZDNetserver频道 来源:ZDNetserver频道 2013年11月25日

关键字: 英伟达 CUDA 共享内存

  • 评论
  • 分享微博
  • 分享邮件

ZDNet至顶网服务器频道 11月25日 编译:英伟达公司日前宣布,其GPU编程语言最新版本CUDA 6已经加入“共享内存”机制;顾名思义,程序员们将彻底摆脱令人头痛不已的磨难,无需再以手动方式在CPU与GPU的独立内存空间之间复制数据。

英伟达CUDA 6加入CPU-GPU共享内存行列
CUDA 6
采用特殊方式愚弄系统的CPUGPU,使其认为二者采用同一套共享式内存资源池

“程序员们一直饱受GPU编程难题的困扰,”英伟达公司主要面向高性能计算的Tesla业务部门总经理Sumit Gupta在接受采访时指出。“最大的原因在于——事实上也是惟一的原因——内存空间一直以来被硬性划分为两块:CPU及其内存外加GPU及其内存。”

作为软件,CUDA当然无法对两套内存空间的物理统一产生影响——CPU仍然配备属于自己的内存,GPU也是同样。不过对于使用CUDA 6的程序员来说,二者的硬性区分将成为历史:所有内存的访问、交付以及管理都“处于整体覆盖之下”——这里我们借用了甲骨文公司的Nandini Ramani在本周AMD开发者大会APU13上对Java 8并行编程方案的形容语。

从使用CUDA 6的开发人员角度来看,CPUGPU的内存空间在物理层面上也将趋于一致。“开发人员现在只需要对数据本身进行操作,”Gupta表示。

换句话来说,如果开发人员希望将A添加到B,其中ACPU内存而BGPU内存,那么新一代CUDA 6的出现将使他们直接以“将A添加到B”的直观方式进行表达——而无需关注数据的具体位置。底层CUDA 6通道将打理指向AB的访问操作并将二者通过地址整理结合在一起。

英伟达CUDA 6加入CPU-GPU共享内存行列
CUDA 6
出现之前(左图);CUDA 6出现之后(右图)

根据Gupta的解释,这种新功能会把编程工作量一举降低约50%。由于我们自己并不是UDA程序员,所以还需要等待与此相关的进一步现场报道——或者文章评论——以判断Tesla业务部门负责人抛出的这番言论。

为了支持自己的观点,Gupta表示:“我们部门内部的几位程序员曾经抱怨过,他们‘最大的痛’就是数据移动与内存管理。通过有针对性地推出自动化处理方式,我们已经显著改进了程序员的生产效率。”

当然,在对数据进行迁移时(例如在CPU能够直接使用、GPU也可由此获取的位置)仍然会引发一些延迟状况,但开发人员并不需要通过编写代码实现转移或者利用编译器处理这部分额外代码行——这都是过去才存在的问题,如今已经成为历史。

CUDA 6还增加了一些额外细节变动,例如用于取代某些CPU库与GPU库的新型插入库,一部分GPU库也经过重新设计以自动在单一节点中的八个GPU之间实现扩展。

不过Gupta告诉我们,最关键的转变在于:过去最令开发人员困扰的内存管理工作已经不复存在,而这一切都是统一内存机制的功劳。

有了CUDA 6,他表示“程序员只需快乐编程就好。”

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章