【2】UbuntuにAnacondaで構築するTensorFlow-GPU環境〜nVidiaドライバーインストール編〜


TensorFlowのGPU版(tensorflow-gpu)を動かすために必要なこととは?

  1. Deep Learningを行う計算力(compute capability)のある比較的新しいGPU(nVidia社製)を搭載していること。
  2. GPUの適切なドライバがOSに入っていて、使用可能な状態になっていること。👈今ここ
  3. tensorflow-gpuやGPUのドライバ(CUDA)、Deep Learning用のライブラリ(cuDNN)を入れる環境を作るため、Anacondaがインストールされていること
  4. Pythonや必要なライブラリがバージョンの互換性を持っていること

この記事のゴール

GPUに対してバージョンの合ったドライバーがOSに入っている状態を作る。

二つのステップ

はじめ、GPUが既存のUbuntu標準ドライバー(nouveau)により画面がディスプレイに出力されています。計算の用途でGPUを用いるにはnVidiaのドライバーが必要です。
ドライバーをインストールするために二つのステップがあります。

ステップ1: secure boot(セキュアブート)をオフにする(必要に応じて)
ステップ2: nVidiaのドライバーをインストールする

では、順にクリアしていきましょう。

ステップ1:セキュアブートをオフにする

セキュアブートは怪しいソフトを判定して動くことを許可しないようにする仕組みです。これが有効だとステップ2でOSにインストールするドライバーはサードパーティ製なので怪しいものではないのですがエラーを吐いてしまいます。
BIOSから無効にできる。以下参照。
https://ymgsapo.com/2019/02/26/keras-gpu-deep-learning/

ステップ2:nVidiaのドライバをOSにインストールする。

まず、ubuntu-drivers-commonパッケージをインストールします。

$sudo apt install ubuntu-drivers-common

ドライバをaptでインストールしたいが、公式のレポジトリには古いものしかないらしい(https://qiita.com/ozota/items/28b7e1fbf5015f907638)ので、次のコマンドで外部(サードパーティ)のレポジトリを追加します。

$sudo add-apt-repository ppa:graphics-drivers/ppa

次のコマンドを忘れずに行いましょう。

$sudo apt update

次のコマンドでGPUに対して適切なドライバがどれかを表示させます。

$ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:02.0/0000:02:00.0 ==
modalias : pci:v000010DEd000013BAsv0000103Csd00001097bc03sc00i00
vendor   : NVIDIA Corporation
model    : GM107GL [Quadro K2200]
driver   : nvidia-driver-450 - distro non-free
driver   : nvidia-driver-435 - distro non-free
driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-450-server - distro non-free recommended
driver   : nvidia-driver-415 - third-party free
driver   : nvidia-driver-390 - distro non-free
driver   : nvidia-driver-418-server - distro non-free
driver   : nvidia-driver-440-server - distro non-free
driver   : nvidia-340 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

今回、”recommended”がついたドライバー(nvidia-driver-450-server)を次のコマンドでインストールしました(一応ですが、常にrecommendedが良いとは限りませんので興味があったら調べてみてください)。
注意点⚠️: ひとつのOSに何個もドライバーを入れるのはバッティングの可能性があり、好ましくありません。ドライバーは画面出力を司っているので、間違えて入れてしまったものを消そうとしても拒否されてややこしかったです(私はOSを再インストールしました)。よく確認のうえ、ドライバーは一つだけインストールしてください。

$sudo apt -y install nvidia-driver-450-server

再起動をします。

$sudo reboot

正常にドライバーがインストールされた場合は次のコマンドで表が出てくるはずです。

$nvidia-smi

お疲れ様でした、今回はGPUを計算の用途に用いるために必要なドライバーをインストールしました。

二つのステップがクリア出来たら

次はTensorFlowを動かす環境を作るため、Anacondaのインストールからスタートします。次の記事で解説していきます。
【3】UbuntuにAnacondaで構築するTensorFlow-GPU環境構築〜Anaconda仮想環境作成編〜