微軟發布C++ AMP規范,旨在降低數據并行門檻

fmms 12年前發布 | 11K 次閱讀 C/C++

微軟在他們的 GoingNative 2012 大會上為其C++ AMP(C++加速大規模并行處理)發布了開放規范(PDF)。C++ AMP 被描述成“一種能夠在數據并行硬件上加速 C++ 代碼的編程模型”。而這類硬件中最常見的例子要屬獨立顯卡上能夠使用多核或 SSE CPU 作為替代選擇的 GPU 了。

微軟聲明的C++ AMP 編程模型如下:

……給你上面幾個方面的顯式控制,包括:在 CPU 和加速器之間進行數據拷貝,以及在 GPU 上執行計算。你可以顯式地管理 CPU 和加速器間的所有通信。這類通信既可以是同步的也可以是異步的。加速器中的數據并行計算,可以通過使用多維數組、高層次數組操作函數、多維索引操作以及其他高層次抽象進行表示。所有這些表示都是基于 C++ 編程語言的一個大型子集。該編程模型包含了多個層次,以便你可以在易用性和最大性能之間進行權衡。

微軟對此標準的實現適用于任何運行 DirectX 11 的系統,而如果系統沒有 DirectX 11,那么會有一段非 C++ 的代碼被執行。

微軟并不打算把C++ AMP 只面向 Windows,因為它“支持并鼓勵任何人任何平臺上實現C++ AMP 開放規范……”(摘自原文)。迄今為止,該項目折射出的貢獻者來自于 Nvidia 和 AMD。為了鼓勵外部實現,微軟在其“微軟社區承諾協議”下發布了整個C++ AMP 規范。

雖然微軟的實現支持C++ AMP 和 Direct 3D 之間的互操作性,但是正式規范中并沒有要求這點。另外,目前C++ AMP 還不支持與 OpenGL 的互操作,開發人員 Daniel Month 最近在論壇一個貼子中指出,這項支持并不會即刻到來,因為“(C++ AMP 團隊)中沒有人有 OpenGL 的經驗”。

對于想要嘗試新的C++ AMP 編程模型的開發人員,可以先下載Visual Studio 11 開發者預覽版,然后查看這篇MSDN 博客文章中給出的樣例代碼。(代碼中的例子還包含了 .NET 開發人員如何從 C# 中使用C++ AMP。)

查看英文原文:http://www.infoq.com/news/2012/02/CPP_AMP_Published

來自: InfoQ

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!