(二)【OpenCL入門教程】OpenCL 簡介


 根據前面異構計算的概念我們知道異構計算其實是利用與主控機(一般是CPU)不同架構的其他處理器實現計算加速,減輕主機端工作負載,最終提升系統性能。而OpenCL的使命則是為了橋接系統中各個不同的處理器。

OpenCL 是Open Computing Language的縮寫,也就是開放計算語言,它為異構平台提供一個統一的編寫並行程序的開放框架(API),它支持混合設備的並行計算,所支持的異構平台可以是多核CPU、GPU、FPGA或者是其他的處理器,而且代碼可以自由移植。

這里有幾個關鍵詞跟大家強調一下:

開放,不用說,就是開放免費的意思。

統一,OpenCL提供了一個統一的編程架構(API),也就是說不同的硬件架構,不管你是 GPU, FPGA等,都可以使用相同的OpenCL 編程語言去設計,為不同的硬件平台設計的OpenCL代碼還能相互移植。這樣通用性就很好了嘛。

並行,Opencl語言是用於編寫並行程序, 那么盡管它是基於標准C(C99標准),但是還是區別於標准C的(向C添加了並行性),具體的區別我們在后面的Host程序設計的時候會跟大家說明。

OpenCL是2008年由Apple公司首次提出,目前由NVIDIA, Intel, Broadcom, Khronos, AMD, ARM, Ti, Samsung, IBM, Google, Fujitsu等維護與支持。

http://www.khronos.org

理解OpenCL架構,先搞定OpenCL四個模型的定義:

  • 平台模型(Platform Model)
  • 執行模型(Execution Model)
  • 內存模型(Memory Model)
  • 編程模型(Programming Model)

 下一講,我們介紹OpenCL架構的平台模型。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM