NVIDIA于2013-12-27正式宣布了版并行计算开发工具CUDA 6,相比此前的CUDA 5.5有着革命性的巨大进步。 NVIDIA表示,CUDA 6可以让并行编程前所未有的轻松,能够显著节省开发人员的时间和精力,而通过GPU加速可带来最多8倍于CPU模式的性能提升。 CUDA 6的关键新特性包括: 1、统一寻址(Unified Memory): 可直接访问CPU内存、GPU显存,无需在彼此之间手动拷贝数据,可在大量编程语言中更简单地添加GPU加速支持。 其实CUDA 4就开始支持统一虚拟寻址,x86 CPU、GPU内存池可在同一空间内进行寻址,但那仅仅是简单的内存管理,摆脱不了手动数据转移。 CUDA 6则在现有的内存池结构上增加了一个统一内存系统,程序员可以直接访问任何内存/显存资源,或者在合法的内存空间内寻址,而不用管涉及到的到底是内存还是显存。 不过注意,CUDA 6并不是完全不需要数据拷贝,只不过将这个工作从程序员那里接过来自动执行而已,它仍然受制于PCI-E的带宽和延迟,因此和AMD hUMA异构统一寻址架构是不一样的。 NVIDIA的统一内存寻址 简化的内存管理代码 另外值得一提的是,NVIDIA此前已经宣布下代GPU Maxwell将会支持统一虚拟内存,但它要到明年才会发布。NVIDIA表示,他们找到了完全通过软件执行统一内存的方法,所以就提前这么做了,Maxwell则会有某种硬件层面的统一内存技术(或许性能更高),但具体细节还有待公布。 2、替换库(Drop-in Libraries): 简单地用GPU加速库替换已有的CPU库,BLAS(基础线性代数程序集)、FFTW(快速傅立叶变换)计算即自动提速最多8倍。 3、多GPU支持(Multi-GPU Scaling): 重新设计的BLAS、FFT GPU库,单个节点可自动支持最多八颗GPU,双精度浮点性能可超过9TFlops,并且支持最多512GB的更大负载。 此外,CUDA 6平台还会提供一整套的编程工具、GPU加速数学库、文档和编程指导。
|