IDCFクラウドのGPUインスタンス
IDCF Cloud Advent Calendar 2016 の12/10が空いていたので個人的に責任(ぉ)をとって埋めておきますね。
新リージョンこと東日本リージョン2と併せて、GPUインスタンスであるgpu.7XLM40がリリースされてます。
56vCPUなので7XL(XL=8vCPU)、NVIDIAのGPU TeslaのモデルからM40となってます。
このあたりのGPUなんちゃらの話は、12/8のアドカレの通りオフィシャルのテックブログに書かれてます。
手元にあるGPUとしてJetson TK1があったので、gpu.7XLM40と比べてみます。
本題の前に、上記テックブログのエントリーでは、CentOSにCUDA入れてますが、以降ではUbuntu14.04を使ってるので、インストールコマンドだけ書いておきます。
# apt update && apt upgrade -y && reboot # wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.44-1_amd64.deb # dpkg -i cuda-repo-ubuntu1404_8.0.44-1_amd64.deb # apt update # apt install cuda -y # reboot # export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}} # export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
ここでwgetしてるリポジトリファイルの最新は以下から入手してください。
昔と違ってCUDA入れるのも楽になりましたよねー、動作確認としてはCUDAと一緒に入る以下のコマンドで。
# nvidia-smi Fri Nov 25 21:36:06 2016 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 361.93.02 Driver Version: 361.93.02 | |-------------------------------+----------------------+----------------------+ | 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 On | 0000:03:00.0 Off | 0 | | N/A 38C P8 17W / 250W | 0MiB / 22944MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
では、Jetson TK1とgpu.7XLM40比べていきましょう。
前提として、Jetson TK1はCUDA6.5、gpu.7XLM40は上記のとおりCUDA8.0です。
Jetson TK1は、Keplerが 192 CUDA Core。
gpu.7XLM40は、Maxwellが 3072 CUDA Core。
では、CUDAのsmplesを動かして比較してみましょう。
まずはbandwidthTestでデータ転送速度を見ます。
$ ./bandwidthTest
Jetson TK1 | gpu.7XLM40 | |
---|---|---|
Host to Device(MB/s) | 998.2 | 7907.7 |
Device to Host(MB/s) | 5464.7 | 8288.7 |
Device to Device(MB/s) | 11901.5 | 211407.8 |
わかってましたが桁違いの差ですね。
次にnbodyでFLOPSを見ます。
$ ./nbody -benchmark -numbodies=16384 $ ./nbody -benchmark -numbodies=16384 -fp64 $ ./nbody -benchmark
Jetson TK1 | gpu.7XLM40 | |
---|---|---|
-numbodies=16384(GFLOP/s) | 13.356 | 3216.793 |
-numbodies=16384 -fp64(GFLOP/s) | 0.865 | 142.198 |
-numbodies=131072(GFLOP/s) | 13.393 | 4003.906 |
こちらも圧倒的な差ですね。Maxwell倍精度遅いと言っても、Jetson TK1と比べると圧倒的な差ですね。
今日はここまで、次回はTesla M40の用途に合わせてDeep Learningの性能を見ていきましょう。