2012-03-13 146 views
1

我一段時間以來一直在使用CUDA 4.0。我最近下載並複製了CUDA 4.1新API(我需要Thrust的lambda表達式支持),但我的解決方案的屬性仍然與舊的4.0 API相關聯。我如何動態改變它?我的猜測是我需要更改$(CudaToolkitLibDir)變量,但具體如何?如何更改CUDA的鏈接目錄?

編輯:我問這個,因爲我嘗試使用推力::佔位符

+0

那麼,環境變量位於控制面板 - >系統 - >高級系統設置 - >環境變量。 – 2012-03-13 18:13:57

+0

什麼是$(CudaToolkitLibDir)?一個環境變量,一個Makefile變量?你在這裏問什麼操作系統構建系統? – talonmies 2012-03-13 18:18:45

+0

如果你在談論Windows + VS,我似乎記得CudaToolkitLibDir被指定爲Visual Studio中使用的構建自定義的一部分。它會自動從您的CUDA_PATH環境變量派生。所以檢查一下是否指向你的CUDA 4.1目錄。我不是100%肯定的,所以只是一個評論。如果您使用這些構建自定義項,您是否確定已切換到4.1版? – Bart 2012-03-13 18:20:46

回答

2

要回答的具體問題:

  • 對於VS2005或VS2008,您需要更改自定義生成採用CUDA 4.1規則而不是4.0的規則。有關更多信息,請參閱this post
  • 對於VS2010,您需要更改Build Customization來代替CUDA 4.1。有關更多信息,請參閱this post

看看評論,這也很明顯,你需要安裝一個CUDA 4.1驅動程序,你可以從NVIDIA website下載。你說當你更新到4.1時,你的程序在第一個cudaMalloc()上崩潰了,你應該檢查錯誤信息(一般你應該檢查所有API調用的錯誤)。如果您的驅動程序不是最新的,則第一個CUDA API調用將返回「驅動程序版本不足」消息。