NVIDIA今天正式宣布了最新版并行计算开发工具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此前已经宣布下代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加速数学库、文档和编程指导。
CUDA 6目前只是纸面宣布,2014年初才会开放下载。有需要的可注册加入CUDA-GPU开发者项目。