2016年11月25日、IDCFクラウドに新しいリージョンが追加され、あわせて「GPU BOOSTタイプ Tesla M40」がリリースされました。 www.idcf.jp
ディープラーニング等、通常のCPUでは計算性能が足りなくなるシーンでの利用を想定したGPU搭載仮想マシンです。本記事では、GPUを使い始めるための手順について紹介いたします。
1. GPUコンピューティング
GPUコンピューティングとは
主に3DCGなどの画像処理を行うデバイスであるGPUを、計算分野で利用することをGPUコンピューティングといいます。 昨今の「ディープラーニング(深層学習)」「ビッグデータ」「IoT」「AI(人工知能)」「機械学習」など注目ワードには、GPUコンピューティングが密に関係しています。
なぜGPUを利用するのか
CPUとGPUは、それぞれ下記の特徴をもちます。
- CPU:数コア~数10コアを持ち、逐次処理が得意
- GPU:数百コア~数千コアを持ち、並列処理が得意
このそれぞれの特徴を活かして、逐次処理をCPU、並列処理をGPUに割り当てることで、CPU単体よりも圧倒的な速度で演算することができます。
2. IDCFクラウド GPU BOOSTタイプの特長
大容量GPUメモリ搭載のGPUを採用
「GPU BOOSTタイプ Tesla M40」は名前の通りNVIDIA Tesla M40 (24GBメモリ版)を搭載しています。ディープラーニングなどのGPUを用いた計算では、GPUメモリ容量がボトルネックになりやすいため、Tesla M40の中でもGPUメモリが多い24GB版を採用しています。
専有タイプで他仮想マシンからの性能影響無し
GPU BOOSTタイプは1物理サーバーに1台だけ仮想マシンが稼働する占有タイプとして提供しているため、共有環境で発生しうる、他の仮想マシンからの負荷による影響を受けず、物理サーバーの全性能を使う事が出来ます。
IDCFクラウドの通常の仮想マシンと同じ操作で利用可能
GPU BOOSTタイプは通常の仮想マシンと全く同じ操作で作成・削除などが実施できます。また課金についても上限金額ありの従量課金となっております。ただし、ハードウェア占有タイプである事と、GPUを仮想マシンに直接認識させているため、以下の制限があります。
- 仮想マシンが起動した状態でのボリュームのスナップショットの取得ができません
- 物理サーバーが故障などで停止した場合の別サーバーへのフェイルオーバー機能はありません
3. GPUを利用するためのCUDAライブラリの導入方法
Tesla M40などのNVIDIA社製GPUを用いて計算を行うためには、GPUのドライバと計算を行うためのCUDAライブラリを導入する必要があります。本記事では、IDCFテンプレート「CentOS 7.2 64bit」仮想マシンを前提に、CUDAライブラリのインストール手順を解説いたします。
GPU BOOSTタイプの仮想マシンの作成
GPU BOOSTタイプは現時点では「東日本リージョン2(jp-east-2)」でのみ提供しています。そこで、仮想マシンを作成するためにIDCFクラウドのポータルから東日本リージョン2のコンピューティングを選択します。
次に、仮想マシン一覧画面から「仮想マシン作成」をクリックします。
仮想マシン作成画面で、ゾーンを「weber」もしくは「lux」を選択し、次の「マシンタイプ」で「GPU」タブをクリックします。するとマシンタイプ一覧に「gpu.7XLM40」が表示されるので、選択します。
以後は通常の仮想マシンと同じように設定します。ここではテンプレートとして「CentOS 7.2 64bit」を利用して、設定を確認の上で作成を実行します。
CUDAインストール用のレポジトリRPM取得とインストール
NVIDIA社のCUDA Toolkit配布サイトから、次の図のようにOS等を選択します。そして図内の「rpm (network)」をクリックし、RPMをダウンロードします。
ダウンロードしたRPMをGPU BOOSTタイプの仮想マシンにアップロードし、以下のコマンドでインストールを行います。
$ sudo rpm -i cuda-repo-rhel7-8.0.44-1.x86_64.rpm 警告: cuda-repo-rhel7-8.0.44-1.x86_64.rpm: ヘッダー V3 RSA/SHA512 Signature、鍵 ID 7fa2af80: NOKEY (以下省略)
CUDAライブラリのインストール
CUDAおよびNVIDIAドライバを配布するレポジトリ情報が登録されたので、次はCUDAのインストールを行います。
$ sudo yum clean all 読み込んだプラグイン:fastestmirror, remove-with-leaves, show-leaves リポジトリーを清掃しています: base cuda epel extras updates Cleaning up everything Cleaning up list of fastest mirrors $ sudo yum install cuda (以下省略、大量のパッケージが導入されます)
万一、パッケージのダウンロードやインストールが一部失敗するようなことが発生した場合は、yum clean all
から再インストールをもう一度実行します。インストールが無事に完了したら、仮想マシンのOS再起動を実行します。
GPUが認識された事の確認
NVIDIAドライバが導入され、正常に認識されると、nvidia-smi
コマンドでGPUのステータスが確認できます。
# nvidia-smi Tue Nov 22 15:00:36 2016 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 367.48 Driver Version: 367.48 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla M40 24GB Off | 0000:03:00.0 Off | 0 | | N/A 39C P0 60W / 250W | 0MiB / 22939MiB | 100% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
なお、正常にGPUが認識されていない場合は、以下のようなエラーが表示されます。
# nvidia-smi modprobe: FATAL: Module nvidia not found. NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
再起動後も上記のエラーが表示された場合、もう一度OS再起動をすると認識される場合があります。
以上でGPUを利用するためのCUDAライブラリの導入が完了しました。ディープラーニングで利用するためには、下記のような各種フレームワークを導入する必要があります。
- Tensorflow(https://www.tensorflow.org/)
- Chainer(http://chainer.org/)
- Caffe(http://caffe.berkeleyvision.org/)
フレームワークの導入に関しては、今後の記事で紹介していきたいと思います。
まとめ
- ディープラーニングするにはGPUコンピューティングによる強力な計算リソースが必要
- IDCFクラウドなら、GPU「NVIDIA Tesla M40」搭載の仮想マシンを利用可能
- CUDAのインストール・フレームワークの導入だけですぐ使える
IDCFクラウド「GPU BOOSTタイプ Tesla M40」のパワーを、ぜひ体験してみてください!