这是一项微软研究院的项目。回到 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
评论