分類: Linux

在沒有 X Window 的環境安裝 NVIDIA CUDA

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 了。

G. T. Wang

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

Recent Posts

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

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

2 年 ago

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

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

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

3 年 ago