C++ AMP全 名C++ Accelerated Massive Parallelism(加速大規模並行計算),是微軟提出的基於C++的異構化並行計算平台。它將隨Visual Studio 11一起發布,目前為預覽版本。所謂異構並行計算,主要的需求就來自於GPU通用計算的崛起。
GPU非常適合大規模資料並行演算法,即同一程式應多多組不同的資料進行並行運算。然而GPU的架構與主流CPU不同,而且常常更新換代,沒法採用傳 統程式設計語言來編程。現有的GPU多數編程方案,如DirectCompute和OpenCL,都要使用不同的語言或編譯器來編寫運行於GPU上的 kernel部分和運行在CPU上的host部分。
C++AMP統一了這兩部分,可以用同一個編譯器,同一種文法來編寫kernel代碼;無需任何編譯器選項或設定。C++ AMP的API簡單到了極致,比OpenCL的方便程度更上了一個層次。
關於C++ AMP的實戰請看這裡。
文章出自:osnews
譯文出自:開源中國社區
向OpenCL挑戰 微軟推出異構語言C++ AMP
【IT168 資訊】OpenCL作為一種開放的並行加速計算標準,已經得到了AMD、Intel、NVIDIA等晶片業巨頭和大量行業廠商的支援,但唯獨缺少了微軟。 就在AMD Fusion開發人員峰會上,微軟終於拿出了自己的反擊武器:“C++ AMP”,其中AMP三個字母是“accelerated massive parallelism”的縮寫,也就是加速大規模並行的意思。
C++ AMP
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,但至少給開發人員提供了新的選擇,而且背後還有微軟這樣的大佬支援著,只是DirectCompute該何去何從呢?
剛體類比程式