CentOS7.5 CUDA 9.2 インストール時に直面した問題
序章
下記でCentOS7.5 CUDA 9.2のインストールをするときに大変だったことをメモしてある
RPMは使わないほうがいい
runファイルでCUDAtoolkitをインストールした場合のアンインストール方法が.plとして提供されている。しかし、RPMでインストールした場合はインストールしたパッケージ全てに対して、
$ yum remove [パッケージ名]
しなければいけない。これはバージョンアップのときなどにとても不便である。
具体的に何がインストールされるかは「Table 4. Meta Packages Available for CUDA 9.2」で確認できる。
ドライババージョンがちがう
ダウンロードサイトからディスプレイドライバをダウンロードできる。例えば下記のようにすると指定すると、
製品のタイプ: Geforce ※人による 製品シリーズ: Geforce 10 Series ※人による 製品ファミリー: Geforce 1070Ti ※人による オペレーティングシステム: Linux 64bit
390.77のドライバがダウンロードできる。しかし、これは最新のドライバ出ない可能性がある。 エラーの例:
reason: CUDA driver version is insufficient for CUDA runtime version
とか
$nvidia-smi Failed to initialize NVML: Driver/library version mismatch
このとき,
$ nvidia-uninstall
で390.77ドライバ削除したら、cuda-driversパッケージで既に396.44がインストールされているため、これがあたって。cudaの実行ができた。
ドライバの最低バージョンはRelease Notes for Windows, Linux, and Mac OS RN-06722-001 _v9.2 | August 2018の「Table 1. CUDA Toolkit and Compatible Driver Versions」で確認できる。
ちなみに、Driver 396.44で検索すると、TESLA向けのものがヒットした。
SSH で入れない
SSHしようとしても下記のエラーがでて接続できない。
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
下記コマンドでホストの情報をつくりなおすことで解決する。
$ ssh-keygen -R [SSH先]
なぜかGUIでログインできない
Nvidiaドライバ入れて、CUDA入れてさあログインしようってなったら、「ああっ 何かがおかしいです。」と出てログインできない。
Ctrl + Alt + F1 で仮想コンソールに移れば大抵ログインできる。
参考:16.3. LINUX 仮想コンソールに関する注意事項
Nvidiaドライバを入れた時にconfファイルが新たに作られていると、それにしたがって動作をしようとするため、confファイルに不具合があると正常にGUIが立ち上がらない。
GUIが起動できる自分の環境だとこんな感じ。
$ ls /etc/X11/ applnk fontpath.d xorg.conf.d $ ls /etc/X11/xorg.conf.d/ 00-keyboard.conf
正常に立ち上がらないときはこの他にnvidiaとついたconfファイルやらフォルダやらができている(例えば、nvidia-xconfigとか)ので、そいつを消してあげるとi915を使ってGUIが立ち上がるはず。
該当公式サイト には、ディスプレイ出力にグラボを使う場合[前半]と使わない場合[後半]について記載がある。
使う場合:
If the GPU used for display is not an NVIDIA GPU, the NVIDIA openGL libraries should not be installed. Otherwise, the openGL libraries used by the graphics driver of the non-NVIDIA GPU will be overwritten and the GUI will not work.
使わない場合:
If the GPU used for display is an NVIDIA GPU, the X server configuration file, /etc/X11/xorg.conf, may need to be modified.
CentOSの未解決問題
boot時の画面にでてくるエラーがまだ解決できてない。
ata1:00: failed to set xfermode (err_mask=0x4) failed to map image header memory