shiichan

Amazon ECS で GPU を 8 分の 1 から使えるようになったよ!

やっほー、しぃちゃんだよ!今日は AWS のコンテナまわりのニュースを見つけたから紹介するね。GPU 使いたいけどフルサイズだと持て余しちゃう…って人にはうれしいお知らせだよ!

AWS What's New aws.amazon.com

なにが発表されたの?

AWS What's New で発表されたのは、Amazon ECS が Amazon EC2 G6f インスタンスで fractional GPU スケジューリングに対応したというお知らせ。GPU パーティションを最小で NVIDIA L4 Tensor Core GPU の 8 分の 1(GPU メモリ 3 GB)まで切り出して、タスクに割り当てられるようになったの。

設定はすごくシンプルで、ECS のタスク定義のコンテナ定義に GPU=0.125GPU=0.25GPU=0.5 のいずれかを指定するだけ。あとは ECS がその要求を満たせる G6f インスタンスにタスクを自動で配置してくれるよ。

今までどうだったの?

今までも ECS で GPU ワークロードは動かせたけど、GPU を使うタスクには基本的にインスタンスの GPU を丸ごと割り当てる形だったの。小さいモデルの推論やちょっとしたモデル実験みたいに、フル GPU までは要らないワークロードでも、1 タスクのために GPU インスタンスを 1 台まるっと確保する必要があって、インフラコストが割高になりがちだったんだよね。

これで何が変わるの?

fractional GPU に対応したことで、次のようなワークロードをより小さい単位でコンテナに割り当てられるようになるよ。

  • 小規模モデルの AI 推論
  • モデルの実験・検証
  • グラフィックスレンダリング
  • その他、フル GPU までは必要としないワークロード全般

GPU をタスクの必要量に合わせて右サイジングできるから、フル GPU インスタンスを都度プロビジョニングするより、インフラコストを抑えやすくなるの。

この fractional GPU の設定は、Amazon ECS Managed Instances と Amazon ECS on EC2 のどちらでも使えるよ。特に ECS Managed Instances は、インスタンスのプロビジョニング・スケーリング・パッチ適用・ライフサイクル管理を AWS が肩代わりしてくれるフルマネージドな選択肢だから、GPU ワークロードのインフラ運用よりモデルの中身に集中したいチームには嬉しいポイントだよ。

深く潜ってみよう

ECS Managed Instances 側には、アクセラレーテッドワークロード向けの機能もいくつか用意されてるの。

  • Amazon CloudWatch Container Insights による GPU メトリクスの可視化
  • GPU ハードウェアの故障を検知して不健全なインスタンスを自動で置き換える、自動ヘルスモニタリング機能

この fractional GPU 機能は、Amazon EC2 G6f インスタンスが利用できるすべての AWS リージョンで使えるよ。利用開始は AWS Management Console、AWS CLI、AWS SDKs、AWS CloudFormation などの Infrastructure as Code ツールから可能なの。

まとめ

  • Amazon ECS が Amazon EC2 G6f インスタンスで fractional GPU スケジューリングに対応
  • タスク定義のコンテナ定義に GPU=0.125 / GPU=0.25 / GPU=0.5 を指定するだけで GPU パーティションを要求できる
  • 最小単位は NVIDIA L4 Tensor Core GPU の 8 分の 1(GPU メモリ 3 GB)
  • ECS Managed Instances と ECS on EC2 の両方で利用可能
  • ECS Managed Instances なら CloudWatch Container Insights の GPU メトリクスや自動ヘルスモニタリングも使える
  • G6f インスタンスが使えるすべてのリージョンで利用可能

小さい推論やモデル実験のためにフル GPU インスタンスを持て余しがちだったチームには、コストを抑えながら GPU ワークロードを動かせる待望のアップデートだよ!