Cuda 6.0/PyCuda。 '導入錯誤'

Cuda 6.0/PyCuda。 '導入錯誤'

我的 Cuda 5.5 和 pycuda 運作得很好,但後來我需要升級到 CUDA 6.0。

現在,當我嘗試執行範例 PyCuda 程式時,我得到以下結果:

ImportError: libcurand.so.6.0: cannot open shared object file: No such file or directory

我找到了該文件的路徑,我是否應該以某種方式連結該庫?如果是這樣,怎麼辦?去哪裡?

答案1

發生這種情況是因為 LD_LIBRARY_PATH 變數中不存在 lib 的路徑。

若要將此路徑新增至 LD_LIBRARY_PATH 變量,~/.bashrc請使用下列命令開啟文件

gedit ~/.bashrc

並新增以下行。將 替換<path_to_your_lib>為檔案的路徑。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_your_lib>

答案2

解決方案:您需要將 CUDA 庫的路徑新增到$LD_LIBRARY_PATH環境變數中。

解釋:

當執行CUDA程式時,它需要動態連結到CUDA運行時庫。預設情況下,這些庫位於該/usr/local/cuda/lib目錄中。搜尋這些庫時,作業系統會在$LD_LIBRARY_PATH環境變數中指定的目錄中尋找。如果此處未指定 CUDA 庫目錄,程式將失敗並出現上述錯誤。

有兩種解決方案(假設您使用的是 bash shell,這是預設的 CS 部門 shell):

  1. 運行以下命令:

     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib
    

    此變更不是持久性的,每次登入時都需要重新運行。

  2. 編輯您的.profile文件(位於~/.profile)。找到設定變數的行$LD_LIBRARY_PATH,該行應類似於以下內容:

     LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib"
    

    修改該行以新增 CUDA 庫的路徑:

     LD_LIBRARY_PATH="/usr/lib:/usr/openwin/lib:/usr/dt/lib:/X11.6/lib:/X11.5/lib:/uva/lib:/gnu/lib:/usr/local/cuda/lib"
    

    編輯文件後,您需要登出並重新登入或執行以下命令:

     source ~/.profile
    

該解決方案是持久性的,只需執行一次。

來源

相關內容