Skip to content
Latchkey

GPU runnerとは?ML、CUDA、グラフィックスのためのCI

GPU runnerはGPU(グラフィックス処理ユニット)を備えたCI runnerで、機械学習の学習と推論、CUDAビルド、GPUアクセラレーションを使うテストに用いられます。

ほとんどのCIはGPUを必要としませんが、MLパイプライン、CUDAライブラリ、グラフィックスのワークロードは必要とします。GPU runnerは専用かつ高価なので、本当にハードウェアを使うjobだけに向けます。

GPU runnerが必要になるとき

  • 小さなものであっても、CIでモデルを学習またはfine-tuningする。
  • CUDAやGPUのコードパスを走らせるテストを実行する。
  • コンパイルや検証に実際のデバイスを必要とするGPUライブラリをビルドする。
  • GPUアクセラレーションを必要とするレンダリングやグラフィックスのパイプライン。

なぜGitHubホスト型はここで限定的なのか

GitHubホスト型runnerは歴史的にGPUオプションが限られてきたため、GPUのCIは通常、クラウドのGPUインスタンスでのself-hostingか、GPU runnerを直接提供するプロバイダの利用を意味してきました。

コストの現実

GPUインスタンスは借りられるコンピュートの中でも最も高価な部類なので、アイドル状態のGPU runnerは非常に高くつきます。job間でゼロにスケールするエフェメラルでautoscaledなGPU runnerは、アイドルのアクセラレータに金を燃やさないために不可欠です。

GPU jobのルーティング

専用のlabel(例: gpu)でGPU runnerを指定し、アクセラレーションを必要とするjobだけが高価なハードウェアに着地するようにして、それ以外すべては安価なLinux runnerに留めます。

ドライバとイメージの考慮事項

GPU runnerには、対応するドライバ、CUDA toolkitのバージョン、そしてコンテナランタイムのサポートがイメージに焼き込まれている必要があります。ドライバとフレームワークのバージョンの不一致はGPUのCI失敗のよくある原因なので、イメージはハードウェアがプロビジョニングされるのと同じくらい注意深く保守する必要があります。

重要なポイント

  • GPU runnerはML、CUDA、グラフィックスのCIワークロードのためにGPUを備えています。
  • ホスト型のGPUオプションは限られているため、GPUのCIはしばしばself-hostingを意味します。
  • GPUのコンピュートは高価なので、scale-to-zeroとエフェメラル性が重要です。
  • 専用のlabelがGPUを必要とするjobだけをハードウェアへルーティングします。

関連ガイド