Manjaro LinuxとDockerでTensorflow+CUDA環境を構築(前編)

Manjaro LinuxとDockerでTensorflow+CUDA環境を構築(前編)

どうもfkdm(@fkdm88)です。

遅ればせながら、機械学習を勉強しようと思い立ちました。本当はメインPCで環境構築したかったのですが、 AMD製GPUのためCUDAが使えず断念。Manjaro LinuxがインストールされたサブのノートPCで環境構築することにした(ROCMというのもあるらしいが今回は割愛)

Manjaroなので、他のArch系Linux OSでも同様の手順で行けると思います。

先にまとめ

出たとこ勝負で始めてしまった本記事ですが、結果的に筆者環境ではJupyter立ち上げならず。ということでまとめです。

  • まず先にGPUのCUDA capabilityを確認すべし!
  • capabilityが古いと最新TFは使用できない。Jupyterもpython3も。
  • CUDAのインストールはDockerを活用することでかなり楽。
  • 機械学習やるなら新しめのGPUを用意しよう・・・。

CUDA環境構築 〜前編〜

書きながら、時間がなくなったので2部制にします。前半はCUDA、後半はDockerでTensorflow&動作検証!で書きます。

搭載GPUとKernel versionを確認

まずは搭載されているIntel GPUとKernel versionを確認します。

# GPUの確認
$ lspci -k | grep -A 2 -E "(VGA|3D)"
04:00.0 3D controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)
    Subsystem: Dell Device 05fa
    Kernel driver in use: nvidia
​
# Kernel versionの確認
$ uname -r
5.9.16-1-MANJARO

GPUはGK107M(GeForce GT 750M)、Kernel versionは5.9.xであることがわかりました。

GPUのコードネームを確認してドライバをインストール

次に、Nouveau wikiのコードネームのページからGK107Mを探して、コードネームを調べます。結果、筆者環境ではNVE7であることがわかります。

以下にArch wikiの内容を表にしてます。NVIDIAサポート切れだったらゲームオーバーです。

CodenameCommand
NVExyay -Sy nvidia
NVCx, NVDxyay -Sy nvidia-390xx
NV5x, NV8x, NV9x, NVAxyay -Sy nvidia-340xx
それ以前NVIDIAサポート切れ。残念!

対応するドライバのインストールが完了したら、一度PC再起動します。再起動後、nvidia関連のko fileがloadされていることが確認できるはずです。

$ lsmod | grep nvidia
nvidia_drm             61440  2
nvidia_modeset       1220608  2 nvidia_drm
nvidia              28286976  72 nvidia_modeset
drm_kms_helper        266240  2 nvidia_drm,i915
drm                   585728  15 drm_kms_helper,nvidia_drm,i915

CUDAのインストール

ここは簡単です。Arch系のいいところですね・・。サイズが多いので時間は要しますが以下コマンドでさくっと完了です。

$ yay -Sy cuda cudnn

それでは今回はここまで。次回Dockerを使ったTensorflow環境の構築について説明します。