Container

機械学習環境をKubernetesで構築する

2019/01/15

ゴール

kubernetesのPod作成時にGPUを使うようにします。

環境

Nvidia Driverの設定

デフォルトで読み込まれているドライバを読み込ませない
下記の2ファイルを作成して、nouveauドライバを読み込ませないように設定します。

ファイル編集後、設定を読み込ませて再起動させます。

ドライバーのインストール

NVIDIAのダウンロードページでGPUの情報をプルダウンから選択し、ドライバーのバージョンを確認します。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp

GeForce GTX 1080Tiのバージョンは390でした!

GPU Nodeマシンでコマンドを実行してドライバのインストールを行います。インストールが完了したら再起動が必要です。

ドライバのインストールコマンド

再起動後、ドライバがインストールされたか確認します。

無事、インストールできました!

NVIDIA-dockerのインストール

nvidia-dockerをインストールしていきます。

試しに実行してみます。

No Problem!!

GPU Nodeの設定変更

Dockerのデフォルトランタイムを変更

まず、GPU Node上のデフォルトのランタイムとしてnvidiaランタイムを有効する必要があります。
/etc/docker/に通常あるdaemon.jsonファイルを編集します。

DevicePlugins機能の有効化

次にすべてのGPU NodeでDevicePlugins機能を有効にします。

設定を読み込ませて、kubeletを再起動します。

Masterの設定変更

NVIDIA GPU device pluginのデプロイをMasterで行います。

Masterで実行

※k8sの公式ドキュメントには上記コマンドは載ってなかったですが、githubにはソースコードがあったので実行してみたら動きました。

pod作成

GPUを1つ割り当てたpodを作成してみます。

Dashboardで見ると起動してすぐにコンテナが落ちていますが、エラーはないので問題なし。のはず。。。

参考サイト

https://kubernetes.io/docs/tasks/manage-gpus/scheduling-gpus/
https://github.com/NVIDIA/k8s-device-plugin

ubuntu16でNVIDIA Docker2を使ってみる(CUDA,cDNN)
ubuntuにNVIDIAのドライバーをインストール Download→Linux→x84_64→Ubuntu→16.04→dev(network) [crayon-5c3da7c68fe3b281976751/] apt-keyコマンド実行時に下記のエラーが出力された場合 gpgkeys: protocol `https' not supported sudo apt-get install gnupg-curl gnupgをインストールすれば解決します。 再起動後、nvidia-smiコマンドが使えるようになっている。 cat /proc/driver/nvidia/version gpuの使用状況の確認 [crayon-5c3da7c68fe44007274678/] Dockerをインストール [crayon-5c3da7c68fe49655927704/] 一般ユーザにもdockerコマンドの実行権限を付与する [crayon-5c3da7c68fe4d513583468/] コマンドを一度抜けて(exit)、再度一般ユーザでログインするとdockerコマンドが使えます。 NVIDIA docker2のインストール [crayon-5c3da7c68fe51354088234/] 下記のコマンドを実施してnvidia-smi -lの結果が出力されれば成功。 [crayon-5c3da7c68fe55246417305/] nvidia-docker-composeのインストール [crayon-5c3da7c68fe59023986153/] nvidia-docker-composeコマンドは使えなくなっているみたいです。 docker-composeのデフォルトのruntimeをdaemon.jsonファイルで設定し、dockerを再起動します。 [crayon-5c3da7c68fe5d648648406/] docker-compose upを実行してnvidia-smiの結果が出力されれば成功。 version2.3からruntimeオプションが使えるとDocumentにありましたが、できなかったので。。。 cuDNNのインストール cuDNN 7.1 for CUDA 9

-Container
-, , , , , ,

Translate »