NVIDIA CUDA 技術是利用顯示卡的 GPU 進行高效能平行運算,通常有高階的顯示卡都會有安裝 X Window,但是若是專門用來計算的伺服器(server)就有可能不會安裝 X Window,像是 Ubuntu 的 Server 版本,預設就是不裝 X Window 的,因為作為伺服器會工作站機器通常都是擺在機房,沒必要裝 X Window 浪費資源,又增加安全性上的疑慮。
但在沒有安裝 X Window 的 Linux 下,要安裝 CUDA 的話,安裝的步驟大致相同,但多了一個設定,這裡以 Ubuntu Linux Server 版為例,介紹如何在沒有 X Window 的情況下,安裝 NVIDIA CUDA。
首先照一般的安裝方式先安裝 NVIDIA 官方的驅動程式,以 290.10 版本為例,就是將驅動程式下載下來,直接執行:
sudo sh NVIDIA-Linux-x86_64-290.10.run
然後安裝 CUDA Toolkit 與 GPU Computing SDK:
sudo sh cudatoolkit_4.0.17_linux_64_ubuntu10.10.run sh gpucomputingsdk_4.0.17_linux.run
以上的安裝方式都跟一般的情況相同。
接下來就是重點了,在執行 CUDA 程式時,必須載入 CUDA 模組與建立 /dev 下面的硬體資訊,這個動作在啓動 X Window 時會自動處理,但是在沒有 X Window 的情況下,就要自己處理。這些動作可以使用一個 shell script 來處理,請建立一個 script 檔案,其內容如下:
#!/bin/bash /sbin/modprobe nvidia if [ "$?" -eq 0 ]; then # Count the number of NVIDIA controllers found. N3D=`/usr/bin/lspci | grep -i NVIDIA | grep "3D controller" | wc -l` NVGA=`/usr/bin/lspci | grep -i NVIDIA | grep "VGA compatible controller" | wc -l` N=`expr $N3D + $NVGA - 1` for i in `seq 0 $N`; do mknod -m 666 /dev/nvidia$i c 195 $i; done mknod -m 666 /dev/nvidiactl c 195 255 else exit 1 fi
將這個檔案儲存在您認為適合的地方,筆者是直接將它儲存在 /usr/local/cuda/init_cuda.sh,跟 CUDA 的 Toolkit 放在一起,以後比較不會找不到。
這個 script 每次重開機就要執行一次,所以放在 /etc/rc.local 中執行比較恰當,因此在 /etc/rc.local 中加入一行:
sh /usr/local/cuda/init_cuda.sh
注意這一行要加在 exit 之前,所以 rc.local 看起來應該像這樣:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Init CUDA sh /usr/local/cuda/init_cuda.sh exit 0
這樣就大功告成,重新開機後,就可以開始使用 CUDA 了。