最近又撿起了cuda,因為需要做乙個任務,將某程式使用cuda平行計算加快速度,希望能盡量達到實時性。cuda的安裝沒有什麼好講,就是一路next就可以。現在cuda只有乙個安裝包,並且整合了nsight,特別方便,不像cuda 4,居然要安裝3個包,煩死。
安裝過後就開始對具體工程進行配置。如果直接新建乙個cuda的工程,那麼很方便,貌似可以直接編譯執行,新建的cu檔案也包含乙個簡單的向量加法。但是很多時候我們是將cuda與其他語言結合使用,因此需要在乙個普通的cpp工程中新增cuda配置。因此記錄如下,以備自己日後參考(在vs2010環境下配置):
1、生成依賴項:
工程名右擊,選擇「生成依賴項」,在cuda選項前打鉤。
2、包含檔案:
包含檔案(include file)目錄中新增cuda安裝目錄的include檔案位置。(可以直接設定環境變數,略過此步驟)
3、附加庫目錄:
同上。4、附加依賴項:
5、*.cu檔案:
對於單個.cu檔案,需要右擊.cu檔名->屬性->常規,檢查其是否從生成項中排除、項型別是否為cuda c/c++。
6、64 bit:
如果工程需要設定為64位,也有2個地方需要注意:工程名右擊->屬性->cuda c/c++->common->target machine platform選項是否為64bit,以及配置管理器處設定是否為「x64」。
以上是我在配置cuda工程時遇到的一些坑。大概將這些地方都檢查一遍,cuda程式執行起來是沒有問題的。
以下是我遇到的一些其他坑,現在憑著回憶,寫在這裡用於備忘:
1、在乙個程式中用到了__global__函式的遞迴,在編譯時提醒出錯(具體錯誤資訊未能回憶起),大概錯誤資訊是計算能力太低。在查詢後發現,我的顯示卡計算能力為3.5,超過遞迴使用的最低限制,因此不是硬體的問題。後來在仔細對比sample與我個人程式編譯命令行時發現,有乙個地方是不相同的:工程名右擊->屬性->cuda c/c++->device->code generation中,我的值為compute_20,sm_20,compute_35,sm_35.......而對應sample中卻缺少了compute_20,sm_20這一項。刪除掉,編譯成功。
我覺得是因為我個人程式配置是希望支援所有計算能力2.0以上的顯示卡的,但是核函式遞迴只能在3.5或以上顯示卡上能用。因此導致此錯誤。若猜測不正確,希望大牛給予指正。
待續。
LSE配置備忘
通過摸索,總結出lse liberty sim envi 編譯視覺化執行的一中方法。本文是用lse自帶的ia64的例子來做的。首先我是使用標準的ls build ls link來做,build可以通過,但link階段報告visualizer相關的函式找不到。注釋所有visualizer相關的函式後l...
mediawiki 配置備忘
新增檔案上傳功能 在 localsettings.php 中 wgenableuploads true 允許上傳 wguploadpath wgscriptpath uploads 預設為 wgscriptpath images 請確保目錄可寫 wguploaddirectory ip upload...
word press 配置備忘
1 關於wordpress中永久連線的配置,如果修改預設設定的話,那麼會提示需要修改.htaccess檔案。這個檔案預設安裝是沒有的,如果需要的話,自行在blog的根目錄 不是web的根目錄 中建立,使用wordpress提供的內容即可。這個修改只對後面的事件起作用,原來記錄的時間是不會更改的。3 ...