この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
re:invent 2018でArmベースのEC2 A1が発表され、翌年2019年には Graviton 2 が発表されました。 Graviton 2の大きな特徴の一つは、同性能の他社プロセッサーに比べるとコスパが非常に優れていることです。 現在では、EC2/Lambda/Fargate/RDSなど様々なサービスで利用できます。
Graviton2 の登場から2年経過し、今度は主要クラウドとして初めてとなる Arm ベースの GPU インスタンス G5G が登場しました。
- New – Amazon EC2 G5g Instances Powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs | AWS News Blog
- AWS Launches First NVIDIA GPU-Accelerated Graviton-Based Instance with Amazon EC2 G5g | NVIDIA Developer Blog
NVIDIAと協力して開発され、NVIDIA T4G Tensor Core GPUを搭載し、NVENC, NVDEC, nvJPEG, OpenGL, Vulkan, CUDA, CuDNN, CuBLAS, TensorRTなど各種ライブラリを利用できます。
- Androidゲームのストリーミング
- 機械学習の推論
- 自動運転シミュレーション
などに向いています。
EC2 G5g インスタンスは東京を含む以下のリージョンで利用可能です。
- 東京
- ソウル
- バージニア北部
- オレゴン
現時点では見当たりませんでしたが、 AWS Deep Learning AMI でも提供されるそうです。
最小スペックは GPUを1基搭載した g5g.xlargeで、 最大スペックは、GPUを2基搭載した g5g.16xlarge とベアメタルのg5g.metal です。
Instance Size | GPU | vCPU | Memory (GiB) | Instance Storage | Network Bandwidth (Gbps) | EBS Bandwidth (Gbps) |
---|---|---|---|---|---|---|
g5g.xlarge | 1 | 4 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.2xlarge | 1 | 8 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.4xlarge | 1 | 16 | 16 | EBS-Only | Up to 10 | Up to 3.5 |
g5g.8xlarge | 1 | 32 | 16 | EBS-Only | 12 | 9 |
g5g.16xlarge | 2 | 64 | 32 | EBS-Only | 25 | 19 |
g5g.metal | 2 | 64 | 32 | EBS-Only | 25 | 19 |
GPUが異なるので単純な比較はできませんが、バージニア北部でNVIDIA A10を搭載したG5(今月リリースされたばかり)と今回のT4Gを搭載したG5Gのxlargeタイプのオンデマンド単価を比較すると
- g5.xlarge : $1.006
- g5g.xlarge : $0.42
と6割も安いです。
Androidゲームストリーミングの例では、30%までコストを抑えられたそうです。
These instances provide up to 30 percent lower cost per stream per hour for Android game streaming than x86-based GPU instances.
https://aws.amazon.com/blogs/aws/new-amazon-ec2-g5g-instances-powered-by-aws-graviton2-processors-and-nvidia-t4g-tensor-core-gpus/
Ubuntu 18.04 に CUDA をインストールしてみる
Ubuntu 18.04 で最小サイズの G5g.xlarge インスタンスを起動し、公式ドキュメント に従って、CUDA Toolkit 11.5 をインストールしてみます。
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/sbsa/cuda-ubuntu1804.pin
$ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda-repo-ubuntu1804-11-5-local_11.5.1-495.29.05-1_arm64.deb
$ sudo dpkg -i cuda-repo-ubuntu1804-11-5-local_11.5.1-495.29.05-1_arm64.deb
$ sudo apt-key add /var/cuda-repo-ubuntu1804-11-5-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
ツールキットは /usr/local/{cuda,cuda11,cuda11.5} 以下にインストールされます。
GPU プロセッサに「NVIDIA T4G」の文字を確認できますね。
$ uname -p
aarch64
$ nvidia-smi
Mon Nov 29 20:20:48 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 495.29.05 Driver Version: 495.29.05 CUDA Version: 11.5 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA T4G On | 00000000:00:1F.0 Off | 0 |
| N/A 43C P8 9W / 70W | 0MiB / 15109MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
$ ls /usr/local/
bin cuda cuda-11 cuda-11.5 etc games include lib man sbin share src
CPU はもちろん Gravition 2 です。
$ lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: ARM
Model: 1
Model name: Neoverse-N1
Stepping: r3p1
BogoMIPS: 243.75
L1d cache: 256 KiB
L1i cache: 256 KiB
L2 cache: 4 MiB
L3 cache: 32 MiB
NUMA node0 CPU(s): 0-3
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Not affected
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
最後に
最近は機械学習の広まりにより、AWS利用費に高額なGPU系インスタンスの占める割合が増えています。
コスト削減のためには、スポットインスタンスだけでなく、今後はArmベースのGPUインスタンスの活用も肝になってきそうです。
それでは。
参考
- 製品ページ
- New – Amazon EC2 G5g Instances Powered by AWS Graviton2 Processors and NVIDIA T4G Tensor Core GPUs | AWS News Blog
- Announcing new Amazon EC2 G5g instances powered by AWS Graviton2 processors
- AWS Launches First NVIDIA GPU-Accelerated Graviton-Based Instance with Amazon EC2 G5g | NVIDIA Developer Blog