GPU・HPCインフラ

Kubernetes GPUとは|要求と上限が必ず一致するので、詰め方だけで載る数が4.3倍変わった

どうやって割り当てるのか要求の書き方に制約はあるのか詰め方で何が変わるのか

同じ20台に600件を詰めると、大きい順なら60件、小さい順なら258件が載りました。

GPUでは要求と上限が必ず一致するので、余らせて詰め込むことができません。詰め方だけが効きます。

この記事の要点

  • 大きい順で60件
  • 来た順で127件
  • 小さい順で258件
  • 要求と上限は必ず一致

要求と上限が必ず一致する

多めに要求して余らせる書き方ができません。書いた数がそのまま押さえる数になります。

Kubernetes GPUの割り当ては、機器の差し込みを通じて行われます。公式はKubernetesは、まとまりの中の異なる節にまたがるAMDとNVIDIAのGPUを管理するための、安定した対応を、機器の差し込みを使って含んでいると述べています。

書き方には制約があります。公式は上限だけを指定して要求を書かないことはできる。Kubernetesが既定で上限を要求の値として使うためであると説明しています。

両方書く場合の制約も明示されています。上限と要求の両方にGPUを指定することはできるが、その2つの値は等しくなければならないという記述です。

この制約が意味すること

  1. 多めに要求して余らせられない。書いた数がそのまま押さえる数
  2. 足りない分を借りられない。上限を超えて使えない
  3. 1台に載る数が決まる。GPUの数を要求で割った値
  4. 空いた分は空いたまま。他の仕事が使えない

4番目が効きます。載らなかった分は、他で埋められません

使う量を多めに申告する余地がない代わり、詰め方の良し悪しがそのまま結果に出ます。次の節で数えます。

始める前に要るもの

節の側に、機器を扱うための差し込みを入れておく必要があります。入っていなければ、そもそも要求できません

入ったあとは、節が持つGPUの数が公開されます。その数を要求で割った値が、1台に載る仕事の上限になります。

出典Kubernetes 公式ドキュメント「Schedule GPUs」2026-08-18 確認
Kubernetes includes stable support for managing AMD and NVIDIA GPUs (graphical processing units) across different nodes in your cluster, using device plugins.
原文Kubernetes 公式ドキュメント「Schedule GPUs」 この内容の有効期限2027-02-18

詰め方だけで、載る仕事の数が4.3倍変わった

同じ台数・同じ仕事でも、置く順番で載る数が変わります。空いた分は使えません。

Kubernetes GPUでは、書いた上限がそのまま押さえる数になります。公式も上限だけを指定して要求を書かないことはできる。既定で上限が要求の値として使われると述べています。

だから詰め方が結果を決めます。順番を変えて数えました。

詰め方を変える

text
1台の容量 80・20台。仕事 600件の要求の合計は 8474
全部を隙間なく詰められたとしても 106台ぶんになる

詰め方              載った仕事  載らなかった  使えた容量  空いたまま
来た順に詰める                   127件          473件       99.2%          13
大きい順に詰める                   60件          540件       99.9%           1
小さい順に詰める                  258件          342件       97.3%          44

小さい順なら258件、大きい順なら60件です。4.3倍の差になります。

「使えた容量」の列は逆を向きます。大きい順が99.9%で最も高い値です。

使えた割合では判断できない

大きい仕事だけを詰めれば、隙間はほとんど出ません。1つの仕事が容量の多くを占めるためです。

それでも載ったのは60件です。使えた容量が高いことと、多く載せられることは別になります。

どちらを取るかは目的で決まります。件数を通したいのか、大きい仕事を通したいのかです。

使えた容量が最も高い詰め方が、載る件数では最少になる。

単位: 件小さい順に詰める258件来た順に詰める127件大きい順に詰める60件容量80の台20台に600件を詰めた実測。使えた容量は大きい順が99.9%で最も高い。
図1 ── 詰め方と、載った仕事の数
出典Kubernetes 公式ドキュメント「Schedule GPUs」2026-08-18 確認
You can specify GPU limits without specifying requests, because Kubernetes will use the limit as the request value by default.
原文Kubernetes 公式ドキュメント「Schedule GPUs」 この内容の有効期限2027-02-18

台数を増やすと待ちは減り、合計の所要は増える

分ければ順番は早く回ってきます。ただし1件あたりが遅くなる構成では所要が伸びます。

Kubernetes GPUでは、要求と上限が食い違いません。公式は上限と要求の両方にGPUを指定することはできるが、その2つの値は等しくなければならないと定めています。

押さえる数が決まっているので、1つの仕事にどれだけ割り当てるかが設計の中心になります。

1件あたりの割り当てを変える

処理能力の合計を同じにしたまま、分け方だけを変えた場合を数えました。

text
全体の到着は毎分 0.32件。処理能力の合計はどの構成でも同じで、使用率は8割になる
1台にまとめると1件あたりは速く、分けると1件あたりは遅くなる

構成                1件あたり  実測の使用率  平均の待ち  95%点の待ち  合計の所要
1台(速い)                   2.5分         78.9%        9.3分        32.8分       11.8分
2台(中くらい)                 5.0分         78.9%        8.2分        31.0分       13.2分
4台(遅い)                  10.0分         78.9%        6.8分        28.9分       16.8分
8台(もっと遅い)               20.0分         78.9%        5.2分        26.0分       25.2分

待ちは9.3分から5.2分へ減ります。分けるほど順番が早く回ります。

合計の所要は11.8分から25.2分へ増えます。2.1倍です。

どちらを選ぶか

1件を早く終わらせたいなら、まとめて割り当てます。学習のような長い仕事が該当します。

順番が回ってこないことを避けたいなら、細かく分けます。試行を多く回す場面が該当します。

並べ方でも同じ量が動きます。その計測はGPUスケジューラの記事にあり、短いものから流すと両方の待ちが減りました。

余談 この計測での注意

仕事ごとの要求の大きさは式で作った分布で、実際の構成の値ではありません。分布が変われば、詰め方ごとの差も変わります。台数を変える計測も、処理能力の合計を同じに保つという前提で、1台あたりの能力が下がる構成を想定しています。同じ性能の台を増やす場合には当てはまりません。ここで見せているのは、余らせて詰められない前提のもとでは詰め方がそのまま結果になるという関係です。

出典Kubernetes 公式ドキュメント「Schedule GPUs」2026-08-18 確認
You can specify GPU in both limits and requests but these two values must be equal.
原文Kubernetes 公式ドキュメント「Schedule GPUs」 この内容の有効期限2027-02-18

よくある質問

GPUはどうやって割り当てますか
機器の差し込みを通じてです。異なる節にまたがるGPUの管理に、安定した対応が含まれています。
要求の書き方に制約はありますか
あります。上限だけ書けば要求として使われ、両方書く場合は値が等しくなければなりません。
詰め方で何が変わりますか
載る仕事の数です。同じ20台で、大きい順なら60件、小さい順なら258件でした。
台数を増やすと待ちは減りますか
待ちは減ります。ただし1台あたりの能力が下がる構成では、合計の所要が増えました。

まとめ

  • 機器の差し込みで割り当てる
  • 要求と上限は必ず一致する
  • 余らせて詰められない前提がある
  • 詰め方が載る数を決める

今日から始められること

  1. 1台あたりのGPUの数を確かめる
  2. 仕事ごとの要求を並べる
  3. 空いたままの容量を測る
  4. 詰め方の指定を確かめる

実務で組んだKubernetes GPUのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る