opencl編譯
Ⅰ OpenCL用什麼軟體來編譯
純粹的opencl C設備代碼是各個支持opencl的硬體開發商提供編譯器的。但是你可以用VS2008以上的編程軟體上對主機代碼進行編譯。
Ⅱ 如何在linux下編譯opencl的庫
對於Ubuntu或其近親(Lubuntu、Kubuntu、Mint等)編寫OpenCL程序也不會太難。由於本例用的是AMD APP SDK,因此需要AMD的GPU以及相關驅動。首先,去AMD官網下載GPU驅動——AMD Catalyst。如果你用的是APU並且還有一塊獨立顯卡的話,通過AMD Catalyst Control Center可以選擇使用哪個GPU。像我現在用的聯想Z475筆記本,搭載了AMD APU A6-3420M以及一塊AMD Radeon HD 7400M,但是相比較而言,還是APU自帶的6620G的GPU性能更強一些,因此我這邊設置的是採用AMD Radeon HD 6620G。
在Linux下,AMD官方的GPU驅動是.run文件,只需使用sudo sh xxx.run即可安裝。安裝時採用默認安裝即可。
然後去developer.amd.com開發者網站下載AMD APP SDK。下載完成之後,將lib裡面的動態庫文件(xxx.so)取出來,並且把include里的頭文件取出來。在你的OpenCL工程中把頭文件的路徑以及動態載入庫都設置好。在你用-l的時候,如果動態庫文件後綴名為.so.1,那麼得把文件名後綴.1去掉。因為-l只能連接.a、.lib、.so等這些後綴的庫文件。
Ⅲ Linux 系統下,Intel顯卡,opencl編譯指令是什麼
我用mingw
編譯的在windows下%D%AMinGW
是為了那些不喜歡工作在
Linux(FreeBSD)
操作系統而留在
Windows
的人提供一套符合
GNU
的
GNU
工作環境。%D%A用make命令,但寫makefile還挺麻煩的
%D%A你可以上網上看看怎麼寫makefile
寫完了命令行里make就行了
Ⅳ 怎樣關掉openCL的部分編譯優化
常見的優化和變新有:函數內嵌(inlining),無用代碼刪除(Dead code elimination),標准化循環結構(loop normalization),循環體展開(loop unrolling),循環體合並,分裂(loop fusion,loop fission),數組填充(array padding),等等。 優化和變形的目的是減少代碼的長度,提高內存(memory),緩存(cache)的使用率,減少讀寫磁碟,訪問網路數據的頻率。更高級的優化甚至可以把序列化的代碼(serial code)變成並行運算,多線程的代碼(parallelized,multi-threaded code)。
Ⅳ linux 下OpenCL代碼中已經寫了 include <CL/cl.h> 為什麼clGetPlatformIDs之類的函數仍不能編譯通過
編譯時報錯,未定義:
很有可能還需要其他頭文件,貼出具體抱錯信息來分析。
Ⅵ 請教如何進行ARM Mali SDK編譯Android OpenCL庫
要編譯到安卓平台下,我們替換9和10行內容,用安卓NDK中的arm-linux-androideabi編譯器編譯。所以修改platform.mk中的內容如下:
#CC:=arm-none-linux-gnueabi-g++
#AR=arm-none-linux-gnueabi-ar
CC:=arm-linux-androideabi-g++
AR=arm-linux-androideabi-ar
我也更新了,但是使用的時候提示「arm-none-linux-gnueabi-g++」命令找不到。
Ⅶ 為什麼opencl的kernel是運行時編譯的
請輸入您的回答...展開來說:
- OpenCL標準是作圖形標准比如OpenGL那幫人搞得。 OpenGL本身就是運行時編譯shader(即OpenCL的kernel)。這幫人已經習以為常運行時編譯,因而順理成章的運用到OpenCL裡面。
- 最初的想法是跨平台性。寫好一個源代碼,由運行時編譯器編譯成針對特定晶元組的二進制代碼,這樣就可以在任何廠商的平台上運行。(想法是美好的,現實是殘酷的。由於各廠商晶元的體系結構差別極大,對擴展指令的支持度不一樣,並且由於標准演進速度較快,導致了不同版本的標准同時出現在市場上,比如現在2015年10月,市面上可見OpenCL 1.0, 1.1, 1.2, 2.0, full profile, embedded profile並存, 因此在實際執行的時候,單一源碼通吃各平台幾乎不大可能。若想獲得最佳性能,需要針對不同平台進行不同的調教和優化。)
- 運行時編譯可以帶來一個附送的好處:代碼的靈活性。即主程序可以根據具體平台的情況或者應用的具體情況,運行時動態修改kernel代碼!具體實施簡單的說如下:因為OpenCL是通過讀入kernel程序的文本的方式編譯, 因而我們可以通過修改原代碼字元串、使用通用輸入輸出流等方式,根據需求靈活的修改kernel code。 比如支持不同的數據類型,不同的訪存方式等。
Ⅷ FPGA opencl編譯aocx報錯!
這是編譯錯誤,需要重新編譯,編譯前先把各種依賴的軟體安裝了。