NHN Cloud Meetup 編集部
TOAST GPUサービスの紹介
2020.09.10
962
はじめに
GPUインスタンスは、インスタンスにGPU(Graphics Processing Unit)が追加設定された仮想サーバーです。
科学的発見からディープラーニングに至るまで、さまざまな分野で使用されています。
GPGPUとは
– GPGPU(General-Purpose computing on Graphics Processing Units)
– GPUをCPUが担っていた演算に使用し、演算速度を向上させる技術
– 単純なものを素早く計算する
CPUとGPUの違い
CPU:さまざまな環境のタスクを処理するため、制御装置(control unit)、キャッシュ、ALU(Arithmetic Logic Unit, CPU算術論理演算装置)の処理構造が複雑
GPU:特化した演算のみを処理するため、制御装置、キャッシュよりも多数のALUで構成される
【図1】GPUはデータ処理を計算するため、より多くのトランジスタを使用する
CPU:各スレッド内のレイテンシーを最小化する
すべてのスレッドはデータ取得時間(Waiting for data)を最小限に抑える。
単一タイムスライス(single time slice)間で、可能な限り多くのワークスペース(Processing)を実行する。
GPU:各クロック周期(clock cycle)で停止したスレッドを他のスレッドに切り替える
T1スレッドがデータ取得時間(Waiting for data)により停止した際、他のT2が処理する方法でT3、T4を使用する。
その間、T1は処理するデータを取得する。
【図2】Low Latency or High Throughput
GPU仕様
NVIDIA V100 | NVIDIA T4 |
---|---|
TOAST GPUサービス
GPUインスタンス仕様
GPUモデル | GPU数 | コア数 | メモリ容量 |
---|---|---|---|
NVIDIA V100(NVLink) | 1 | 8 core | 90 GB |
NVIDIA V100(NVLink) | 2 | 16 core | 180 GB |
NVIDIA V100(NVLink) | 4 | 32 core | 360 GB |
NVIDIA V100(NVLink) | 8 | 64 core | 720 GB |
NVIDIA T4(PCI) | 1 | 4 core | 32 GB |
NVIDIA T4(PCI) | 2 | 8 core | 64 GB |
NVIDIA T4(PCI) | 4 | 16 core | 128 GB |
NVIDIA T4(PCI) | 8 | 32 core | 256 GB |
NVIDIA T4(PCI) | 12 | 64 core | 384 GB |
インスタンスの基本ディスクは20GB〜1000GBまでです。
GPUはPCIパススルー方式(PCI PassThrough)で割り当てられます。
GPUインスタンスの作成
コンソールのCompute> GPU Instanceが有効になっている場合は、GPUインスタンスが作成できます。
インスタンスの作成ボタンをクリックします。
【図3】インスタンス作成画面(1)
インスタンスを作成します。
【図4】インスタンス作成画面(2)
GPUインスタンスに接続
インスタンスの作成が完了したら接続情報に従って接続します。
【図5】インスタンスの接続情報
GPU情報の確認
インスタンスに接続してnvidia-smiコマンドを実行し、GPU情報(下図)を確認します。
shell> nvidia-smi
バージョン情報
– NVIDIA Driver Version:440.33.01
– CUDA Version:10.2
GPU情報
– 使用可能なGPU数:GPU 0〜7(8個使用)
– GPUモデル:Tesla V100-SXM2
– Persistence mode状態:Persistence_mode On
– 現在のGPUの温度:Temp 52C
– 現在の電力使用量/最大電力使用量:Pwr Usage / Capacity 298W / 300W
– 現在のメモリ使用量/最大メモリ使用量:Memory-Usage 29283MiB / 32480MiB
– GPU Utilization:GPU-util 100%
Processes情報
– GPU別PID、Process name、GPU Memory Usage情報
– Type情報
– C = compute = CUDA or OpenCL
– G = graphics = DirectX or OpenGL