當前位置:
首頁 > 最新 > 量化投資手段:OpenCL編程之向量相加

量化投資手段:OpenCL編程之向量相加

OpenCL程序分為兩個部份,一部份是內核代碼,負責具體演算法。另一部份是主程序負責初始化OpenCL和準備數據。主程序載入內核代碼,並按照即定方法進行運算。 內核代碼可以寫在主程序裡面,也可以寫在另一個文本文件里,有點像DX中的HLSL和OPENGL里的GLSL。哈哈,明白意思就行了。我們用第一種方法,把代碼跟源程序分開寫。

調用OpenCL大至分7個步驟

初始化OpenCL

創建上下文設備

創建命令隊列

創建數據緩衝區

將數據上傳到緩衝區

載入編譯代碼,創建內核調用函數

設置參數,執行內核

讀回計算結果。

下面我們通過一個向量相加的程序來了解OpenCL 。有A,B兩個四維向量,相加後值存在C向量里。OpenCL會根據用戶提供的維數,將向量分解成多個任務分發給多個CPU計算。簡單來說就是向量每個維同時相加。 源碼分兩部份

(一)vecadd.cl核心代碼。

vecadd.cl核 心代碼

__kernel 指明這是一個OpenCL內核,__global 說明指針指向的是全局的設備內存空間,其它的就是C語言的函數的語法。kernel必須返回空類型。

(二)main.cpp代碼

運行結果:

[1,2,3,4] + [5,6,7,8] = [6,8,10,12]


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 量化投資LHTZ 的精彩文章:

量化投資手段:OpenCL編程之檢索硬體
量化投資手段:OpenCL編程之環境搭建

TAG:量化投資LHTZ |

您可能感興趣

Python中的向量化編程
編程資源 Python
WSDL 的編程
自製Monkey編程語言編譯器:增加數組操作API和Mapsh數據類型
C語言/C加加編程嵌入式基礎學習之volatile關鍵字
閱讀優秀 Python 開源項目的代碼,提升編程技能(GitHub 資源帖推薦)
SOAP的編程
python之模塊化編程
VBScript 編程
Python編程中的反模式
Silexica加盟Renovo的AWare生態系統 提供SLX編程工具助力軟體的分析與優化
Python多進程編程
XPath 編程
Python中的IO編程
Perl 編程
Web Pages 編程 PHP
ASP的編程
XML Schema 編程
JSP的編程
使用 VS Code 進行 Python 編程