分類: Linux

Ubuntu Linux 12.04 LTS 安裝 NVIDIA CUDA 4.2

Ubuntu Linux 12.04 LTS(Long Term Support)在 2012 年 4 月釋出,代號為 Precise Pangolin,由於這個版本是 LTS 長期支援版,所以 Ubuntu 對於這個版本所提供的更新服務會持續五年(一般的版本只有三年),也就是可以更新到 2017 年,所以若是作為伺服器使用的系統可以選擇這樣的版本。

NVIDIA CUDA 目前的最新版本是 4.2,但是因為 Ubuntu Linux 12.04 LTS 才剛剛釋出,所以 NVIDIA 官方支援的 Linux 不會包含 Ubuntu Linux 12.04 LTS,不過其實下載 CUDA for Ubutnu 11.04 的版本,也是可以在 Ubuntu Linux 12.04 LTS 上使用的。

要安裝的第一步就是到 NVIDIA CUDA 網站下載 CUDA Toolkit 與 CUDA SDK,而 Driver 的部分其實可以不用下載,直接使用 Ubutnu 內建的就可以了,雖然版本不是最新的,不過其實只差一點點,通常沒什麼影響,而且這樣安裝上方便很多。

安裝 NVIDIA 驅動程式

首先安裝 NVIDIA Driver,直接用 Ubuntu 內建的 Driver 安裝方式是最簡單的,到 System Setting 中選擇 Additional Drivers:

然後則要安裝的版本,建議直接裝 current 版本(也就是最新的版本),安裝完成後還要記得重新開機,下面這個是安裝完成後的 Additional Drivers 畫面:

安裝 NVIDIA CUDA Tookit

接著就可以安裝 CUDA Toolkit 了,直接執行下載下來的安裝檔:

chmod +x cudatoolkit_4.2.9_linux_64_ubuntu11.04.run
sudo ./cudatoolkit_4.2.9_linux_64_ubuntu11.04.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.conf
sudo echo "/usr/local/cuda/lib" >> /etc/ld.so.conf.d/cuda.conf
sudo ldconfig

再設定 PATH:

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

安裝 NVIDIA CUDA SDK

直接執行下載回來的安裝檔:

chmod +x gpucomputingsdk_4.2.9_linux.run
./gpucomputingsdk_4.2.9_linux.run

接著安裝程式會詢問安裝路徑,建議直接按 Enter 使用預設值,

Enter install path (default ~/NVIDIA_GPU_Computing_SDK):

然後會詢問 CUDA Toolkit 的安裝路徑:

Could not locate CUDA.  Enter the full path to CUDA.
If you do not know the path, accept the default and then 
modify the CUDA_INSTALL_PATH variable in
/home/seal/NVIDIA_GPU_Computing_SDK/C/common/common.mk.

Enter CUDA install path (default /usr/local/cuda):

若 CUDA 都是依照預設路徑安裝,則這裡就不需要更動,直接按 Enter 就可以了。

編譯

接著要進行編譯的部分,首先安裝一些基本編譯用的套件:

sudo apt-get install build-essential libx11-dev libglu1-mesa-dev freeglut3-dev libxi-dev  libxmu-dev

另外因為 CUDA 需要使用 gcc 4.4 來編譯,所以要再安裝 4.4 版的 gcc:

sudo apt-get install gcc-4.4 g++-4.4

然後在更改一下編譯的設定,編輯 ~/NVIDIA_GPU_Computing_SDK/C/common/common.mk 這個設定檔,大約在第 58 行附近,將編譯器都改為 4.4 版的 gcc:

# Compilers
NVCC       := $(CUDA_INSTALL_PATH)/bin/nvcc
CXX        := g++-4.4 -fPIC
CC         := gcc-4.4 -fPIC
LINK       := g++-4.4 -fPIC

另外在第 255 行附近,加入 NVIDIA 的 Library 路徑(-L/usr/lib/nvidia-current):

  ifeq "$(strip $(HP_64))" ""
ifeq ($(x86_64),1)
LIB       := -L$(CUDA_INSTALL_PATH)/lib64 -L$(LIBDIR) -L$(COMMONDIR)/lib/$(OSLOWER) -L$(SHAREDDIR)/lib -L/usr/lib/nvidia-current
else
LIB       := -L$(CUDA_INSTALL_PATH)/lib -L$(LIBDIR) -L$(COMMONDIR)/lib/$(OSLOWER) -L$(SHAREDDIR)/lib -L/usr/lib/nvidia-current
endif
else
ifeq ($(i386),1)
LIB       := -L$(CUDA_INSTALL_PATH)/lib -L$(LIBDIR) -L$(COMMONDIR)/lib/$(OSLOWER) -L$(SHAREDDIR)/lib -L/usr/lib/nvidia-current
else
LIB       := -L$(CUDA_INSTALL_PATH)/lib64 -L$(LIBDIR) -L$(COMMONDIR)/lib/$(OSLOWER) -L$(SHAREDDIR)/lib -L/usr/lib/nvidia-current
endif
endif

這樣就可以開始編譯了,進到 ~/NVIDIA_GPU_Computing_SDK/C 這個目錄,執行 make 編譯:

cd ~/NVIDIA_GPU_Computing_SDK/C
make

等待編譯完成就可以使用 CUDA 了。

另外提醒一點,要使用有 OpenGL 的程式時,最好使用 Ubuntu 2D 的模式登入,不然執行程式時,畫面會很不順。

NVIDIA CUDA in Ubuntu 12.04 LTS

CUDA Device Query (Driver API)

CUDA Particles

CUDA N-Body

Cuda/GL Stable Fluids

CUDA FFT Ocean Simulation

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago