2016-04-04 14 views
1

運行OpenCL程序的正常方式是包含運行時編譯的openCL內核(聯機編譯)。是否有offlineOpenCL編譯器(用於NVIDIA圖形卡)?

但我見過編譯OpenCL之前的二進制文件的例子,稱爲離線編譯。我意識到了這些缺點(降低了硬件間的兼容性)。

以前在http://www.fixstars.com/en/有一個離線編譯器,但它似乎不再可用。

那麼是否有可用於OpenCL的離線編譯器,特別是對於基於NVIDIA的顯卡?

+0

clGetProgramInfo和CL_PROGRAM_BINARIES和卡? –

+0

所以,你的意思是你可以使用標準的OpenCl函數編譯爲二進制文件,然後使用這個二進制文件運行編譯的OpenCL程序? – Roalt

+0

也許只有類似的平臺。 –

回答

0

有人建議nvcc.exe NVIDIA的CUDA SDK可以編譯

nvcc -x cu file.cl -o file.out -lOpenCL 

.CL文件...但它說的cl.exe失蹤,至少在Windows上。這可能是值得一試,但是:http://clcc.sourceforge.net/

除了:

+1

缺少cl.exe意味着它取決於Microsoft的C/C++編譯器,它與Visual Studio捆綁在一起。這是否被列爲NVIDIA CUDA SDK的先決條件? –

+0

@CodyGray nvcc通常需要在後臺使用C編譯器(即使用C編譯器作爲C部分,併爲CUDA或OpenCL部分使用它自己的魔法)。一般來說,@Roalt:一種解決方法可能是編寫一個小型的獨立應用程序,它基本上是對各個「clCompileProgram」(等)調用的包裝,這樣你就可以獲得一個小型的命令行編譯器,它接收一堆CL輸入文件,編譯它們,並將結果(然後通過'CL_PROGRAM_BINARIES'獲得)寫入輸出文件。如果真的沒有這種東西,我很驚訝...... – Marco13

相關問題