7. 参考資料(ドライバー/ライブラリ)

ドライバーやライブラリは一部ハードウェア依存するものがあったり、それぞれのバージョンの組み合わせで動作しないことがありますので、必ずしも動作を保証するものではありません。

7.1. ドライバー/ライブラリのバージョン確認方法

ドライバーやライブラリが動作確認の採れたバージョンかどうかは推奨システム要件で確認してください。

  • Docker

$ docker version

->無応答の場合には

(1) dockerを起動してください。

$ service docker start

(2) バージョンが異なる場合には、推奨動作環境のバージョンをインストールして下さい。

  • docker-compose

$ docker-compose --version

->無応答の場合には

$ systemctl enable docker
  • Nvidia-driver

$ nvidia-smi

->推奨動作環境のCUDAバージョンが貴社のGPUサーバーのGPUカードをサポートしていない可能性もあります。

  • CUDA

$ ls -l /usr/local | grep cuda
  • nvidia-docker

$ nvidia-docker -v

上記のドライバーやライブラリのバージョンが推奨されているものと異なる場合には、以下の手順でアンインストール、

そして指定のバージョンのインストールをお願いします。

7.2. ドライバー/ライブラリのアンインストール

  • CUDA

$ sudo apt purge cuda*
$ sudo apt purge nvidia-cuda-*
$ sudo apt purge libcuda*
$ sudo apt autoremove
$ reboot
  • Docker

$ sudo yum remove docker-ce
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo rm -rf /var/lib/docker
$ sudo apt autoremove
  • Docker Compose

$ sudo rm /usr/local/bin/docker-compose
  • Nvidia-Driver

$ sudo apt-get purge nvidia-*
$ sudo apt-get purge libnvidia*

7.3. ドライバー/ライブラリのインストール

7.3.1. Docker関連

  • Docker安定版

$ sudo curl https://get.docker.com | sh
  • Docker Compose 1.26.0

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
  • NVIDIA Docker 2.3.0-1

$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt update
$ sudo apt install -y nvidia-docker2=2.3.0-1

7.3.2. CUDA、及びNvidia-Driver

GPUカード搭載のサーバにてMANUFACIA(通常版)を動作させる為には、CUDA並びにNvidia-Driverがインストールされている環境が必要となります。以下、インストールのコマンドを参考として記載します。

7.3.2.1. 現在MANUFACIA v2.0/v2.1/v2.1.2をお使いの場合

既にCUDA10.x等がインストールされており、依存関係を解消する必要がある場合には、以下のコマンドをお使い下さい。

# sudo apt-get purge nvidia-*
# sudo apt-get purge cuda-*

7.3.2.2. 当該サーバのGPUカードに対応したDriverの調査

以下のコマンドを使うことで、現時点で対応しているドライバーがリスト表示されます。

# ubuntu-drivers devices

上記のコマンドでエラーが出る場合には、以下のコマンドでインストールします。

# apt install ubuntu-drivers-common

ubuntu-drivers devices での返値例

vendor: NVIDIA Corporation
driver: nvidia-driver-460-third-party free recommended
driver: nvidia-driver-415-third-party free

7.3.2.3. Nvidia-Driverのインストール

以下のコマンドを使うことで、所定のNvidia-Driverがインストールされます。

# sudo apt-get install nvidia-driver-455

既にインストール済のDriverの依存関係が解消できない場合には、以下のコマンドをご使用下さい。

# sudo aptitude install nvidia-driver-455

7.3.2.4. CUDA 11.1のインストール

以下のコマンドを使用してCUDA 11.1をインストールします。

# sudo apt install cuda-11-1

または

# sudo apt-get install cuda-11-1

エラーメッセージなどによっては、以下のコマンドも使用しCUDA11をインストール。

# sudo apt --fix-broken install

ホームディレクトリにある設定ファイル .bashrc を以下の要領で編集した後に、サーバを再起動 (sudo reboot)します。ファイルの編集に用いるエディタ、ツールは種別を問いません。 設定ファイルに以下の行を追加します。

# set PATH for cuda 11.1 installation
if [ -d "/usr/local/cuda-11.1/bin/" ]; then
  export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
  export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
fi

CUDA、Nvidiaドライバのバージョンが所望の通りか、以下のコマンドを利用して確認できます。

# docker exec -it manufacia_app_1 bash
:~/rb#cat public/docker-build-conf.txt

[表示結果例]
BASE_IMAGE: nvidia/cuda:9.2-base-ubuntu18.04-sha256:e2caae08d28e7026f7ce5334a7375c306b2279fc5a47ef031be4262e0e4e394a
COMPOSE_FILE: /nix/store/b35biq54rnby9aabnsz8rga84fpfbqrm-docker-compose.gpu.yaml
CUDA_VERSION: 11.1
DOCKER_IMAGE: manufacia:2.1.3-gpu
RAILS_ENV: production
USE_GPU: true

:~/rb# nvidia-smi

[表示結果例] (このCUDAバージョンは参考値で、必ずしも上記の出力とは一致しない)
+-------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00    Driver Version: 455.32.00    CUDA Version: 11.1 |
|-------------------------------+----------------------+------------------+

ドライバー等のインストール後はシステムを再起動し、NVIDIA Dockerの動作確認を行ってください。

$ sudo reboot
$ service docker start