在多核GPU和CPU上使用Accelerator V2执行并行编程

这是一项微软研究院的项目。回到2006年的时候,Accelerator还只是一个简单的托管函数库,并且在2007年发布了第一个版本。刚开始的时候,它是用C#编写并定位于GPU。于此同时,它又被C++封装为托管API以方便其它.NET语言进行访问。

Accelerator V2提供API以便在多核GPU和多核处理器上执行并行指令。同时,面向元件可编程逻辑闸阵列(FPGA)的版本也正在开发中。

微软高级研究员Satnam Singh已经发布了一个F#程序,用以说明Accelerator在8核64位Windows7的机器上(另配了一个低端显卡)如何执行代码。该研究员示范如何用F#创建二维卷积处理器以及“该处理器是如何使用F#的Accelerator进行表述的”。这里的卷积是指:

映射一系列数组到数组各个元素的函数。

该研究员还解释代码如何执行卷积操作。最后,他还解释了Accelerator对他的帮助:

Accelerator系统鼓励你以整个数组操作的方式来表述数据并行处理算法,对不同的后台程序(或“目标”)的实现更有效。例如,只使用整个数组操作的准则,可高效解决正在处理的实验FPGA对象的寻址生成器回路问题。

Accelerator非常适合编写模板风格的数据并行处理程序。它的表达式能适应Accelerator计算,使得它非常适合F#那样的函数式语言。实际上,Accelerator系统已证明,它自己类似于在F#、C#和C++(及其他.NET语言)中的一种特定领域编程语言。

运行Accelerator V2需要安装DirectX 11。

相关资源下载:Accelerator v2预览版更新2009-12-8和Accelerator v2 F# 1维卷积实例。

查看英文原文:Executing Parallel Programs on Multi-core GPUs and CPUs with Accelerator V2

你可能感兴趣的:(在多核GPU和CPU上使用Accelerator V2执行并行编程)