使用 Visual Studio 2005 建立新 CUDA 專案

本文介绍如何在Visual Studio 2005中配置CUDA编程环境,包括设置自定义编译规则、选择CUDA编译选项以及进行常规项目配置。
部署运行你感兴趣的模型镜像

在之前已經有寫一篇《使用 Visual Studio 2005 撰寫 CUDA 程式》了~不過裡面提到的專案建置的方法,是用官方 template 這個專案來修改的方法。而在該文中,Heresy 也有提到,在 nVidia 的 CUDA Forum 中,有一些針對編譯規則的相關討論,也有人有寫出自己的 CUDA 程式編譯規則(請參考《Simple CUDA build rule for Visual Studio 2005》)。

當時 Heresy 因為不熟悉 Visual Studio 2005 的編譯規則設定,所以其實搞了好久都沒有成功過,後來只好作罷…不過,今天在網友的建議下,又試了一下,似乎出來了一些結果了?在這邊大概記錄一下。

在 VisualStudio 中加入規則

首先,建置規則(build rule)是可以設定成跟著 Visual Studio 整體走的,而設定的方法,其實也只是設定檔案所在的路徑。其設定方法如下:

  1. 選取 [Tools] 裡的 [Option...]
    y1pvbMbnmiWWsnLDDyJwkM_yLXRcl9TgWI_gLHz1TRiZsf5-67PpUS1bn-L9XFrp9Onpd6U4dapeWo
     
  2. 選取 [Projects and Solutions] 下的 [VC++ Project Settings] 後,右方可以找到 [Rule File Search Paths];在裡面輸入 .rules 檔所在目錄及可。
    y1pvbMbnmiWWsnwZ9p4jvLAcC8CFzG_PGurF-90Z5-0LKV_WdEwxlu2rj3oV-Htlu8qHCV0UA5bnJI

而其實在 CUDA SDK 的目錄中,就有提供了一個官方的 build rule,位於「C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK\common\scripts」底下,檔名是「nvcc.rules」。(安裝 CUDA SDK 會不會自動把這個目錄加到 VisualStduio 的設定裡 Heresy 到是忘了)

不過 Heresy 使用這個 rule 似乎沒辦法正確編譯;所以 Heresy 是改用《Simple CUDA build rule for Visual Studio 2005》的 rule。

設定專案使用的 build rule

在 Visual Studio 中加入 build rule 了後,Visual Studio 就會知道這些有輸入的規則了。不過在建立專案後,還是要再去指定這個專案要用哪些 rule。設定的方法,大概如下:

  1. 選取專案後,按右鍵選取 [Custom Build Rules...]
    y1pvbMbnmiWWsmrb5uKZZ7ERe4hn8roMGnhlAq_PpAttsJtAZ3LWN2ygetvqrX2e11iYc4t9EhanuI
     
  2. 再出現的對話框中,勾選想要加入的 rule
    y1pvbMbnmiWWslCcqUD2pnnjVafK1rqzgUK3dTCQYlEaKw-GIC9_zbuaXe-cuQvc_oLNzF0tFJ7jAE

以上圖的例子來說,有兩個 *.cu 的建置規則。其中第一個「CudaCompile」是 nVidia CUDA SDK 提供的;而「CUDA」這一項,則是《Simple CUDA build rule for Visual Studio 2005》這篇文章中所提供的規則。Heresy 在這邊是選擇使用「CUDA」這個規則。

 

設定 CUDA 編譯選項

y1pvbMbnmiWWsmIoO9t04E6pPmt7S1s1vaZSBkKo2DbRyFq7ftcT8862sXV9oVgRhZv2pkqgfEtfHc在經過上面的設定後,在專案的屬性裡(選取專案後,按右鍵,選「Properties」),應該會多一項「CUDA」的設定項目。

裡面有一些基本的設定,包含一般編譯器的,或者 CUDA 的;像如果要啟用 CUDA 的模擬功能來 debug 的話,就可以把 [CUDA-Specific] 的 [Emulation] 設定成 [Yes]。這點在 CUDA SDK 的 template 是設定成專案的 configuration,其實比較方便切換。

而在加入 .cu 的檔案後,在檔案上按右鍵,選「Properties」的話,應該要可以看到他「General」裡的「Tool」是出現「CUDA」的選項(下圖);這樣的話,應該就算是成功了!

y1pvbMbnmiWWslCCWTDBcf00z-h4zLfk7qu0n48qc0C6ccn4xfDEpoQiQnd5dKIW66ryeKGXMa9BNU

不過另外一個要注意的是,《Simple CUDA build rule for Visual Studio 2005》這篇文章裡所提供的 Build rule 似乎只能處理在專案路徑下的檔案;也就是說 .cu 檔必須要和 .vcproj 在一起才能正常編譯,不然可能會出現找不到檔案的情形。

而由於 build rule 輸出的 obj 檔名應該沒有經過特殊的處理,所以建議不要有檔名相同,只有附檔名不同的情形(例如 a.cu, a.cpp) ;在這種情況下,有可能會因為輸出的物件檔名相同(都是 a.obj),而導致檔案備覆蓋掉,因此無法完成程式的編譯。

其他一般性設定

CUDA 還有一些比較一般性的設定,包括專案屬性裡:

  • 「C/C++」-「General」的「Additional Include Directories」中要加「$(CUDA_INC_PATH)
  • 「Linker」-「General」的「Additional Library Directories」要加入「$(CUDA_LIB_PATH)」
  • 「Linker」-「Input」的「Additional Dependencies」要視需要加入 CUDA 的 .lib 檔;一般應該至少要加入「cudart.lib」(吧?)。

用 Visual Studio 2005 建立新的 CUDA 專案的方法,大致上應該就是這樣子吧?Heresy 當初搞了好幾天都沒玩出來,現在想想,搞不好是因為檔案路徑的關係…總之,現在大概知道是這樣弄了,也希望不要有其他問題了。

本文来源:http://heresy.spaces.live.com/blog/cns%21E0070FB8ECF9015F%212881.entry

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22785983/viewspace-619586/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22785983/viewspace-619586/

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值