微软想给 C++ 开发者提供工具,帮助他们写出能在数量巨大的本地 GPU/ 核心上或者在云里运行的并行应用程序。
Visual Studio C++ 2010 允许开发者写出的程序通过并发运行时利用诸如多核CPU 的本地并行硬件,这个运行时包括4 个主要组件:并行模式库(PPL)、异步代理库、任务计划程序和资源管理器。但微软想扩展Visual C++ 的并行机制,提供更多的支持。微软本地语言的主要架构师Herb Sutter 在 AMD Fusion 开发者峰会上宣布了一个新的 C++ 库,名叫加速大规模并行计算(C++ AMP)。AMD 对并行计算进行了扩展,支持本地 GPGPU 和加速处理单元(APU),打算全面支持云计算。
微软想让 C++ AMP 在所有异构并行硬件上都可用,包括多核系统和云,旨在支持应用程序运行在云里的无数核心 /GPU 上。
C++ AMP 只引入了一个语言扩展,利用 DirectX 11 的 DirectCompute API 在 GPGPU 上提供通用处理支持,“这个架构目前可以看作没有涉及 API 层的实现细节”,微软资深程序经理 Daniel Moth 说道。
C++ AMP 将会是开放规范,微软会在今年的某个时间提供第一个实现,但对这个技术的完整支持将会包含在下个版本的 Visual C++。基本上,C++ AMP 将会是一个类似 STL 的库,“作为现有并发命名空间的一部分,并通过新的 amp.h 头文件发布”,Moth 写道。使用 AMP 编程将会获得 VS 的所有编程支持:智能感知、生成、调试和剖析等等。
Moth 答应接下来几个月会在他的博客上提供 C++ AMP 代码示例。
评论