OpenCL程序分為兩個部份,一部份是内核代碼,負責具體算法。另一部份是主程序負責初始化OpenCL和準備數據。主程序加載内核代碼,并按照即定方法進行運算。 内核代碼可以寫在主程序裡面,也可以寫在另一個文本文件裡,有點像DX中的HLSL和OPENGL裡的GLSL。哈哈,明白意思就行了。我們用第一種方法,把代碼跟源程序分開寫。
調用OpenCL大至分7個步驟
初始化OpenCL
創建上下文設備
創建命令隊列
創建數據緩沖區
将數據上傳到緩沖區
加載編譯代碼,創建内核調用函數
設置參數,執行内核
讀回計算結果。
下面我們通過一個向量相加的程序來了解OpenCL 。有A,B兩個四維向量,相加後值存在C向量裡。OpenCL會根據用戶提供的維數,将向量分解成多個任務分發給多個CPU計算。簡單來說就是向量每個維同時相加。 源碼分兩部份
(一)vecadd.cl核心代碼。
運行結果:
[1,2,3,4] [5,6,7,8] = [6,8,10,12]
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!