這篇文章給大家介紹xmake新增對(duì)Cuda代碼編譯支持的示例分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的德安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
最近研究了下NVIDIA Cuda Toolkit的編譯環(huán)境,并且在xmake 2.1.10開發(fā)版中,新增了對(duì)cuda編譯環(huán)境的支持,可以直接編譯*.cu
代碼。
下載安裝好Cuda SDK后,在macosx上回默認(rèn)安裝到/Developer/NVIDIA/CUDA-x.x
目錄下,Windows上可以通過CUDA_PATH
的環(huán)境變量找到對(duì)應(yīng)的SDK目錄,而 Linux下默認(rèn)會(huì)安裝到/usr/local/cuda
目錄下。
xmake在執(zhí)行$ xmake
命令編譯*.cu
代碼的時(shí)候,會(huì)嘗試探測(cè)這些默認(rèn)的安裝目錄,然后嘗試調(diào)用nvcc編譯器直接編譯cuda程序,大部分情況下只需要執(zhí)行:
$ xmake
我之前編譯之前,我們可以通過xmake創(chuàng)建一個(gè)空的cuda工程,例如:
$ xmake create -l cuda test$ cd test$ xmake
通過-l
參數(shù)指定創(chuàng)建一個(gè)cuda代碼工程,工程名為test,執(zhí)行輸出如下:
[00%]: ccache compiling.release src/main.cu [100%]: linking.release test
我們也可以嘗試直接運(yùn)行這個(gè)cuda程序:
$ xmake run
接著我們來(lái)看下,這個(gè)cuda工程的xmake.lua
文件:
-- define target
target("test")
-- set kind
set_kind("binary")
-- add include directories
add_includedirs("inc")
-- add files
add_files("src/*.cu")
-- generate SASS code for each SM architecture
for _, sm in ipairs({"30", "35", "37", "50", "52", "60", "61", "70"}) do
add_cuflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm)
add_ldflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm)
end
-- generate PTX code from the highest SM architecture to guarantee forward-compatibility
sm = "70"
add_cuflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
add_ldflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
里面大部分跟C/C++的工程描述類似,唯一的區(qū)別就是通過add_cuflags
設(shè)置了一些cuda代碼特有的編譯選項(xiàng),這部分配置根據(jù)用戶的需求,可自己調(diào)整。
關(guān)于add_cuflags
的更多說(shuō)明,可閱讀xmake的官方文檔。
默認(rèn)情況下,xmake都能成功檢測(cè)到系統(tǒng)中安裝的Cuda SDK環(huán)境,用戶不需要做額外的配置操作,當(dāng)然如果遇到檢測(cè)不到的情況,用戶也可以手動(dòng)指定Cuda SDK的路徑:
$ xmake f --cuda_dir=/usr/local/cuda$ xmake
來(lái)告訴xmake,你當(dāng)前的Cuda SDK的安裝目錄在哪里。
如果想要測(cè)試xmake對(duì)當(dāng)前cuda環(huán)境的探測(cè)支持,可以直接運(yùn)行:
$ xmake l detect.sdks.find_cuda_toolchains
{ linkdirs = { /Developer/NVIDIA/CUDA-9.1/lib }, bindir = /Developer/NVIDIA/CUDA-9.1/bin, includedirs = { /Developer/NVIDIA/CUDA-9.1/include }, cudadir = /Developer/NVIDIA/CUDA-9.1}
來(lái)測(cè)試檢測(cè)情況,甚至可以幫忙貢獻(xiàn)相關(guān)檢測(cè)代碼find_cuda_toolchains.lua來(lái)改進(jìn)xmake的檢測(cè)過程。
注:目前對(duì)cuda的支持剛剛完成,還沒正式發(fā)版,更多關(guān)于xmake對(duì)cuda的支持情況和進(jìn)展,見:issues #158。
如果要試用此特性,可下載安裝最新master版本,或者下載windows 2.1.10-dev安裝包。
關(guān)于xmake新增對(duì)Cuda代碼編譯支持的示例分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
標(biāo)題名稱:xmake新增對(duì)Cuda代碼編譯支持的示例分析
URL標(biāo)題:http://aaarwkj.com/article6/pdigog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、做網(wǎng)站、Google、網(wǎng)站內(nèi)鏈、虛擬主機(jī)、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)