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だけをハードウェアへルーティングします。
関連ガイド
What Is an ARM Runner? Cheaper, Efficient CI on ARM64An ARM runner is a CI runner on ARM64 (aarch64) hardware. Learn why ARM runners are cheaper and faster per do…
What Is a Runner Label? How Jobs Choose Their RunnerA runner label is a tag that routes a job to a matching runner via runs-on. Learn how labels work, why mismat…
What Is Runner Autoscaling? Capacity That Follows DemandRunner autoscaling automatically adds and removes CI runners based on job demand. Learn how it works, why it…
What Is Runner Utilization? Are You Paying for Idle Time?Runner utilization is the share of paid runner time doing useful work. Learn how low utilization wastes money…