Ubuntu Linux 11.04 安裝 NVIDIA CUDA 4.0 RC2
Installing NVIDIA CUDA 4.0 RC2 under Ubuntu Linux 11.04

NVIDIA CUDA 4.0 在 2011 年 4 月釋出,一樣有各種平台的版本,除了 Windows XP, Windows VISTA、Windows 7 與 Mac OS 外,Linux 的部份也支援好幾種版本:
  • Fedora 13
  • RedHat Enterprise Linux 4.8
  • RedHat Enterprise Linux 5.5
  • RedHat Enterprise Linux 6.0
  • Ubuntu Linux 10.10
  • OpenSUSE 11.2
  • SUSE Linux Enterprise Server 11 SP1
這裡介紹如何在 Ubuntu 11.04 中安裝 CUDA 4.0 RC2,目前 NVIDIA 官方網站上明確支援的 Ubuntu 版本只有到 Ubuntu 10.10,但經過一些小修改,也可以裝在 Ubuntu 11.04 的系統上。

下載與安裝 CUDA 4.0

首先從 NVIDIA 網站下載 CUDA Toolkit for Ubuntu Linux 10.10、CUDA Tools SDK 與 GPU Computing SDK code samples。

下載完成後先安裝  CUDA Toolkit for Ubuntu Linux 10.10:
chmod +x cudatoolkit_4.0.13_linux_64_ubuntu10.10.run
sudo ./cudatoolkit_4.0.13_linux_64_ubuntu10.10.run


預設是安裝在 /usr/local/cuda 目錄下,建議就依照他的預設路徑安裝,安裝完成後要設定 Library 的 Path,有兩個方式,一種是更改 LD_LIBRARY_PATH 環境變數,但我習慣直接加在 /etc/ld.so.conf.d/ 裡面:
sudo echo "/usr/local/cuda/lib64" > /etc/ld.so.conf.d/cuda-40.conf
sudo echo "/usr/local/cuda/lib" >> /etc/ld.so.conf.d/cuda-40.conf
sudo ldconfig


再設定 PATH:
echo 'export PATH=$PATH:/usr/local/cuda/bin' >> ~/.bashrc

安裝 CUDA Tools SDK:
chmod +x cudatools_4.0.13_linux_64.run
sudo ./cudatools_4.0.13_linux_64.run


預設是安裝在 /usr/local/cuda/CUDAToolsSDK 目錄下。

安裝 GPU Computing SDK code samples:
chmod +x gpucomputingsdk_4.0.13_linux.run
./gpucomputingsdk_4.0.13_linux.run


預設是安裝在自己帳號的 ~/NVIDIA_GPU_Computing_SDK 目錄下,安裝時要設置 CUDA 安裝的路徑:
Enter CUDA install path (default /usr/local/cuda):
若 CUDA 都是依照預設路徑安裝,則這裡就不需要更動。

設定 GCC 編譯器

CUDA 4.0 RC2 目前只支援到 gcc 4.4,若是只有裝 gcc 4.5 的話,還要再裝一下 gcc 4.4 才能編譯:
sudo apt-get install gcc-4.4

接著要讓編譯時能夠使用 gcc 4.4,一種方式是將系統的 /usr/bin/gcc 改連到 /usr/bin/gcc-4.4,/usr/bin/g++ 也一樣改連到 /usr/bin/g++-4.4,或是使用 update-alternative:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 150
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 150
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100


接著使用 update-alternatives 選擇 4.4 版的 gcc:
sudo update-alternatives --config gcc

執行後選擇 gcc-4.4,再接著選擇 4.4 版的 g++:
sudo update-alternatives --config g++

執行後選擇 g++-4.4

若不想修改整個系統的設定,有另一個辦法可以處理,自己建一個 ~/bin 目錄,然後建立 gcc-4.4 與 g++-4.4 的連結,再將這個路徑加入自己的 PATH 中,這樣就不會影響其他的程式:
mkdir ~/bin
ln -s /usr/bin/gcc-4.4 ~/bin/gcc
ln -s /usr/bin/g++-4.4 ~/bin/g++


然後在每次要編譯 CUDA 程式前執行:
export PATH=~/bin:$PATH

這樣就不需要更動到系統其他程式的設定了。

編譯 GPU Computing SDK code samples

接下來要編譯 GPU Computing SDK code samples:
cd ~/NVIDIA_GPU_Computing_SDK
make


若是幸運的話,這樣就大公告成了,但通常都會有些問題,像編譯時若是出現類似這樣的問題:
/usr/bin/ld: cannot find -lXi
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lglut
collect2: ld returned 1 exit status
是表示有一些必要的 Library 沒裝,用 apt-cache 找一下再用 apt-get 裝起來就可以了:
apt-get install libxi-dev libxmu-dev libglut3-dev

若出現
/usr/bin/ld: cannot find -lcuda
collect2: ld returned 1 exit status

/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
是表示找不到 NVIDIA GL 或 CUDA Library,若是您是使用 Ubuntu 內建的驅動程式管理介面安裝的 NVIDIA Driver,則將 /usr/lib/nvidia-current 下面的 so 檔件一個連結到 /usr/lib 下面即可:
sudo ln -s /usr/lib/nvidia-current/libcuda.so /usr/lib/libcuda.so
sudo ln -s /usr/lib/nvidia-current/libGL.so /usr/lib/libGL.so


總之出了錯都會有些錯誤訊息,仔細看看錯誤訊息大概都可以解決的。


本站已經搬家了,欲查看最新的文章,請至 G. T. Wang 新網站

9 則留言:

  1. 感謝版主提供的資訊
    不過我遇到以下的問題
    https://mydisk.se/web/dbase/1657f84acbcbfa0cab5375e41db33afb.jpg
    我安裝的SDK時候,路徑在
    /home/gary/NVIDIA_GPU_Computing_SDK
    是我安裝錯誤了嗎

    回覆刪除
  2. 佳揚:
    請問您的作業系統的版本與安裝 CUDA 的版本分別是哪一版?

    回覆刪除
  3. 作業系統:
    ubuntu 11.04 x86_64

    Driver:NVIDIA-Linux-x86_64-280.13.run

    CUDA Toolkit:
    cudatoolkit_4.0.17_linux_64_ubuntu10.10.run

    CUDA Computing SDK:
    gpucomputingsdk_4.0.17_linux.run

    CUDA Tool SDK:
    cudatools_4.0.17_linux_64.run

    回覆刪除
  4. 佳揚:
    看起來您用的版本都是最新的,我實際測試最新版的情況都可以裝得起來。

    您這個情況應該是編譯器的一些設定不太對,可能檢查一下您的 CUDA Toolkit 是裝在 /usr/local/cuda 嗎?安裝 CUDA Computing SDK 時指定的 CUDA 路徑對不對?gcc 版本是不是 4.4?

    若有錯誤訊息可以直接把文字訊息貼上來。

    回覆刪除
  5. 已經把CUDA Computing SDK 裝在
    /use/local/cuda 底下

    CUDA Toolkit 也是裝在 /usr/local/cuda

    GCC4.4也已經確認過了沒有錯

    還是出現以下狀況
    https://mydisk.se/web/dbase/1c3fbea493310ace541252e81d645d7f.jpg

    是因為我是安裝Nvidia官網最新的driver
    而不是用ubuntu內建顯卡驅動的關係嗎?

    回覆刪除
  6. CUDA Computing SDK 應該是裝在 ~/NVIDIA_GPU_Computing_SDK 才對,裝在 /usr/local/cuda 會跟 CUDA Toolkit 混在一起,在安裝時要設定 CUDA Toolkit 的安裝路徑。

    這個問題應該跟 Driver 沒有太大的關係,單純是編譯時出錯。

    回覆刪除
  7. ~/NVIDIA_GPU_Computing_SDK
    是指/usr/local/cuda/NVIDIA_GPU_Computing_SDK 嗎?請說明正確安裝路徑

    CUDA Toolkit 的安裝路徑是
    預設路徑安裝嗎?
    我的 CUDA Toolkit 是安裝在
    /usr/local/cuda 沒錯

    請問是什麼問題?

    回覆刪除
  8. ~/NVIDIA_GPU_Computing_SDK 是指使用者 HOME 目錄下的 NVIDIA_GPU_Computing_SDK。在 UNIX/Linux 中,~ 是代表使用者自己的 HOME 目錄,例如上面文章中的 cd ~/NVIDIA_GPU_Computing_SDK 是一個真正可以執行的指令,不是隨便寫的。

    請問您有將文章中所有的安裝步驟都看過了嗎?

    回覆刪除
  9. 您好:
    我是用Fedora14來建置cuda環境,版本是cuda4,按步驟安裝完後,用root執行
    nvidia-xconfig -query-gpu-info
    nvidia-smi
    都可以抓到cuda的裝置
    但如果開機直接用"個人使用者"執行以上兩個程式就抓不到cuda裝置,請問要怎樣解決?
    但nvcc編譯就沒有這個問題。


    回覆刪除