量化投資手段: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]


※量化投資手段: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 編程