脱N00Bしたいエンジニア

N00Bなエンジニアの奮闘記録

CentOS7.5 CUDA 9.2 インストール時に直面した問題

序章

下記でCentOS7.5 CUDA 9.2のインストールをするときに大変だったことをメモしてある

sikeda107.hatenablog.jp

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のドライバがダウンロードできる。しかし、これは最新のドライバ出ない可能性がある。 f:id:sikeda107:20180823054521j:plain:w400:h200 エラーの例:

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向けのものがヒットした。
f:id:sikeda107:20180823055041j:plain:w300:h200

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