中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

xmake新增對Cuda代碼編譯支持的示例分析

發布時間:2021-12-08 15:51:09 來源:億速云 閱讀:130 作者:柒染 欄目:大數據

這篇文章給大家介紹xmake新增對Cuda代碼編譯支持的示例分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

最近研究了下NVIDIA Cuda Toolkit的編譯環境,并且在xmake 2.1.10開發版中,新增了對cuda編譯環境的支持,可以直接編譯*.cu代碼。

下載安裝好Cuda SDK后,在macosx上回默認安裝到/Developer/NVIDIA/CUDA-x.x目錄下,Windows上可以通過CUDA_PATH的環境變量找到對應的SDK目錄,而 Linux下默認會安裝到/usr/local/cuda目錄下。

xmake在執行$ xmake 命令編譯*.cu代碼的時候,會嘗試探測這些默認的安裝目錄,然后嘗試調用nvcc編譯器直接編譯cuda程序,大部分情況下只需要執行:

$ xmake
創建和編譯Cuda工程

我之前編譯之前,我們可以通過xmake創建一個空的cuda工程,例如:

$ xmake create -l cuda test$ cd test$ xmake

通過-l參數指定創建一個cuda代碼工程,工程名為test,執行輸出如下:

[00%]: ccache compiling.release src/main.cu
[100%]: linking.release test

我們也可以嘗試直接運行這個cuda程序:

$ xmake run

接著我們來看下,這個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++的工程描述類似,唯一的區別就是通過add_cuflags設置了一些cuda代碼特有的編譯選項,這部分配置根據用戶的需求,可自己調整。

關于add_cuflags的更多說明,可閱讀xmake的官方文檔。

Cuda編譯環境的配置

默認情況下,xmake都能成功檢測到系統中安裝的Cuda SDK環境,用戶不需要做額外的配置操作,當然如果遇到檢測不到的情況,用戶也可以手動指定Cuda SDK的路徑:

$ xmake f --cuda_dir=/usr/local/cuda$ xmake

來告訴xmake,你當前的Cuda SDK的安裝目錄在哪里。

如果想要測試xmake對當前cuda環境的探測支持,可以直接運行:

$ 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}

來測試檢測情況,甚至可以幫忙貢獻相關檢測代碼find_cuda_toolchains.lua來改進xmake的檢測過程。

其他說明

注:目前對cuda的支持剛剛完成,還沒正式發版,更多關于xmake對cuda的支持情況和進展,見:issues #158。

如果要試用此特性,可下載安裝最新master版本,或者下載windows 2.1.10-dev安裝包。

xmake新增對Cuda代碼編譯支持的示例分析

關于xmake新增對Cuda代碼編譯支持的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁平县| 瑞丽市| 庆元县| 洛川县| 石家庄市| 锡林郭勒盟| 宜章县| 廉江市| 西丰县| 伊吾县| 延安市| 奉新县| 龙陵县| 朝阳县| 临沧市| 迭部县| 永康市| 南昌市| 波密县| 葵青区| 平山县| 乌拉特中旗| 琼结县| 博白县| 黑水县| 十堰市| 松江区| 乌兰察布市| 周口市| 巴彦淖尔市| 突泉县| 南和县| 隆林| 南充市| 石城县| 梅河口市| 神池县| 治县。| 新昌县| 勃利县| 安宁市|