OpenCL作为一种开放的并行加速计算标准,已经得到了AMD、Intel、NVIDIA等芯片业巨头和大量行业厂商的支持,但唯独缺少了微软。就在AMD Fusion开发者峰会上,微软终于拿出了自己的反击武器:“C++ AMP”,其中AMP三个字母是“accelerated massive parallelism”的缩写,也就是加速大规模并行的意思。
C++ AMP是微软Visual Studio和C++编程语言的新扩展,用于帮助开发人员充分适应现在和未来的高度并行和异构计算环境。它使用C++语言的句法,将随同下个版本的Visual Studio一同发布,不过可能会在今年晚些时候放出测试版本。
令人瞩目的是,微软宣布C++ AMP标准将是一种开放的规范,允许其它编译器集成和支持。这无疑是对OpenCL的最直接回应。
为了展示了C++ AMP的威力,微软现场运行了一个刚体模拟程序。同一个可执行文件能够在多台计算机和设备上运行,既支持 3GFlops的Llano APU x86处理器部分,也支持650GFlops的Llano APU协同加速,还支持830GFlops的Radeon HD 5800 CrossFire,另外在一台使用AMD E系列APU的平板机上还获得了16GFlops的计算能力,能够模拟16000多个粒子。
OpenCL虽然是免费开放的,但也是目前异构计算的唯一选择。谁也不敢保证C++ AMP能够挑落OpenCL,但至少给开发人员提供了新的选择,而且背后还有微软这样的大佬支持着。