[心得] MEX contain CUDA code (windows)

看板MATLAB作者 (攸藍)時間12年前 (2013/09/04 06:04), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
先小小的抱怨一下,windows下用要做編譯真的是非常的麻煩,環境變數非常的難設。 Windwos下,matlab要能夠編譯CUDA,必須要安裝CUDA toolkits, SDK之外, cuda: https://developer.nvidia.com/cuda-downloads (PS: 你要有NV顯卡) 還需要安裝visual studio,而且版本還要對應,版本可以參考下列網頁 http://www.mathworks.com/support/compilers/R2013a/index.html (PS: 之前爬文,有人說matlab的版本要>=VS的版本, 像是2013a才支援VS2012,2010a才支援VS2010等) 此外,你還需要安裝Microsoft Windows SDK 7.1,下載位置同上 下列教學是參考mathwork的網頁: http://tinyurl.com/mbf7t7t 環境都安裝好之後,請下載這個mexopts.bat:http://tinyurl.com/mmbwoub mexopts.bat這個檔案請跟你的*.cu檔案放在同一個目錄下 此處提供兩組cuda範例檔案: 這組是計算向量的平方 example.cu: http://tinyurl.com/nxc5mpy test_cuda_mex.m: http://tinyurl.com/myv2ywv 這組是將input matrix 乘2 mexGPUExample.cu: http://tinyurl.com/kz62r87 GPUExample_test.m: http://tinyurl.com/m6owrkl compile之前,請確定你的windows path含有CUDA_PATH; 如果沒有,你的CUDA安裝可能有問題,確認有安裝,可自行添加path。 再者,請先用mex -setup設定compiler為visual studio。 之後便可在matlab上執行mex filename.cu這個指令, 執行完畢之後,目錄下產生filename.mexw64,這樣就是編譯成功了。 filename便是你呼叫時所用的function name,簡單用法可以參考*.m檔案。 備註: 1. 如果你的visual studio版本是2010,請更改mexopts.bat檔案第23行 set VSINSTALLDIR=%VS110COMNTOOLS%\..\.. 改為 set VSINSTALLDIR=%VS100COMNTOOLS%\..\.. 2. 你的作業系統如果是x86,你可能需要自行尋找其他方案。 3. 最後,我的環境是Win 7 SP1 x64, Matlab 2013a, visual studio 2012, cuda v5.5 $CUDA_PATH$:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5 如果有問題,可以站內信,我會盡我所能幫你 弄了兩天跟大家分享一下這個小小心得... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.166.11 ※ 編輯: celestialgod 來自: 218.164.166.11 (09/04 06:11) ※ 編輯: celestialgod 來自: 218.164.166.11 (09/04 06:14)

09/04 09:56, , 1F
不是把cuda的kernel編成PTX就可以在matlab下使用了嗎
09/04 09:56, 1F

09/04 20:44, , 2F
我不知道orz....我還弄那麼久
09/04 20:44, 2F

06/21 08:26, , 3F
推! 最近想開始玩CUDA了
06/21 08:26, 3F
文章代碼(AID): #1I9bpY1c (MATLAB)