很多朋友想學習gpu計算,大家會有如下幾個關心的問題:
我使用什麼程式設計方式來做gpu計算,或者使用什麼程式設計方式書寫在gpu上執行的多執行緒函式?
目前比較成熟的可以實現gpu計算的程式設計方式有:cuda,opencl,openacc,openhmpp。我們一一敘述。
cuda
cuda是nvidia公司推出的一種gpu計算的程式設計方式,他們將c語言拓展後得到一種新的語言叫cuda c,我們可以使用cuda c來寫gpu計算的程式。
硬體方面:cuda只支援nvidia自家的gpu。
軟體方面:cuda對於作業系統限制不大,支援linux、windows、mac三種主流作業系統。
2、介紹cuda的書籍資料:《大規模並行處理器實戰》 《gpu高效能程式設計cuda實戰》《gpu高效能計算之cuda》
3、介紹cuda程式設計的nvidia官方資料:《cuda c programming guide》 《cuda c best practices guide》等,這些資料就在你的cuda tookit的安裝目錄下的doc目錄下,還有一些庫的介紹。其中一些資料還被網友翻譯出了中文版
opencl
opencl是由著名的非盈利技術聯盟khronos group進行管理的一種異構計算標準(
硬體要求:amd、nvdia、intel等任何支援opencl程式設計的硬體廠商。
軟體要求:根據不同的硬體廠商,支援的平台可能有所差異。理論上沒有平台限制。
openacc
硬體要求:pgi的編譯器只支援nvidia的gpu,而caps的編譯則支援nvidia,amd以及intel等所有支援opencl、cuda的硬體產品,並且支援產生cuda或者opencl的可讀**,可以手動修改和優化。
軟體要求:不同廠商,支援平台可能有所差異。目前caps支援linux,而且馬上會發布openacc編譯器的windows版本。
1、各個編譯器廠商提供的資料。其中caps提供中文的免費網路培訓課程(並且可以通過乙個伺服器平台試用openacc編譯器(
openhmpp
openhmpp標準比openacc標準提出的要早,它提供了比openacc更多的功能。官方**(
目前支援這個標準比較好的編譯器廠商是caps (中文**:www.caps-entreprise.com.cn 英文**:www.caps-entreprise.com)
硬體要求:所有支援cuda和opencl的硬體平台。
軟體要求:需要安裝硬體廠商的sdk。
1、各個編譯器廠商的程式設計指南。
2、免費的網路課程:
額外的資源:
2、「開啟新一片藍海——異構計算完全解析」 :
其實,最後大家發現這已經不限於gpu程式設計了!!因為除了cuda之外,後面的三個標準都是來定義異構計算標準的,而gpu計算只是異構計算的一種而已!!
在了解了以上內容之後,大家可以理性選擇學習那種方式了。未盡之處還請廣大讀者不吝指正。
GPU計算或者異構計算程式設計方式與參考資料
很多朋友想學習gpu計算,大家會有如下幾個關心的問題 我使用什麼程式設計方式來做gpu計算,或者使用什麼程式設計方式書寫在gpu上執行的多執行緒函式?目前比較成熟的可以實現gpu計算的程式設計方式有 cuda,opencl,openacc,openhmpp。我們一一敘述。cuda cuda是nvid...
HSA AMD異構計算架構
當前的cpu和gpu是分立設計的處理器,不能高效率地協同工作,編寫同時執行於cpu和gpu的程式也是相當麻煩。由於cpu和gpu擁有獨立的位址空間,應用程式不得不明確地控制資料在cpu和gpu之間的流動。cpu 通過系統呼叫向gpu傳送任務,此類系統呼叫一般由gpu驅動程式管理,而驅動程式本身又受到...
FPGA異構計算架構對比分析
ai晶元主要分為cpu gpu fpga以及asic。其中以cpu gpu fpga asic的順序,通用性逐漸減低,但運算效率逐步提高。fpga,即現場可程式設計門陣列,它是在pal gal cpld等可程式設計器件癿基礎上進一步發展的產物。為解決能耗限制,無法使處理器核心同時運作,及效能提公升有...