GPUクラウドの経済学 — 借りるか・買うか・予約するか
同じGPUには4つの値段が同時についている。オンデマンド・予約・スポット・自前を1本の式で比べ、損益分岐の稼働率、中断込みのスポット実効単価、コミットの消化率、そして請求書に隠れる項目までを掛け算と割り算だけで追う。
同じGPUに、4つの値段がついている
「GPUが足りない」という言葉は技術の話に聞こえますが、中身はほとんど会計の話です。物理的に1枚も余っていない状況はまれで、たいていはその値段では割に合わないと言っているだけだからです。
同じ型番のGPUには、少なくとも4つの値段が同時についています。今すぐ使えるかわりに単価の高いオンデマンド、1年や3年ぶんの利用を先に約束して単価を下げる予約(コミット)、余った枠を安く借りるかわりにいつ取り上げられるか分からないスポット、そして自分で買って自分で電気代を払う自前。演算性能はどれも変わりません。違うのは、いつ払うかと、空振りしたときに誰が損をするかだけです。
この記事は、その4つを1本の式の上に並べて比べられるようにします。前提知識は要りません。掛け算と割り算だけで、最後まで行けます。
比喩: タクシー・定期券・相乗り便・自家用車
移動手段に置き換えると、4形態の性格がそのまま見えます。
- タクシー(オンデマンド): 乗りたいときに乗れる。1kmあたりは一番高い
- 定期券(予約): 先に払うと1回あたりが安い。使わなかった日のぶんは返ってこない
- 相乗り便(スポット): 極端に安いが、混んでくると途中で降ろされる。降ろされた地点までは進めている
- 自家用車(自前): 買った瞬間に大きな支出。あとは走っても走らなくても駐車場代と保険料がかかる
最後の1行が核心です。自前のコストは「走った距離」ではなく「持っている時間」に対して発生します。買うか借りるかは、性能の優劣ではなくどれだけ乗るかの問題になる。ここを取り違えたまま「自前のほうが安いらしい」と踏み込むのが、この分野でいちばん多い事故です。
借りる側の値段は、ただの掛け算
借りる場合の総額は素直です。
つまり、借りる側の請求額に登場する数字は「1時間いくらか」と「何時間ぶん要るか」の2つだけ、ということです。どちらかを2割読み違えれば、請求書もそのまま2割ずれます。
は1 GPU時間あたりの単価、 は必要なGPU時間の総量。「時給 × 時間」です。学習なら は「GPUの枚数 × 実時間」で数えます。8枚を10時間まわせば80 GPU時間。
厄介なのは、単価ではなく のほうが見積もりにくいことです。必要な計算量を実際に出せる速度で割った値はあくまで下限で、そこにデータ待ち・通信待ち・失敗した実験のやり直しが乗ります。枚数を増やせば実時間は縮みますが、通信のぶん は増える。この「増え方」は分散学習の基礎で扱っています。見積もりの誤差は、たいてい単価側ではなく時間側から来ます。
自前の値段は、稼働率で割り算する
自前は形が違います。買った金額は使っても使わなくても出ていくので、同じ支出を「実際に働かせた時間」で割ることになります。割る数が小さいほど、1時間あたりは高くなる。
記号を決めます。 はGPU 1枚あたりの導入費(本体だけでなく、筐体・ネットワーク・電源工事の按分まで含めた金額)、 は償却年数、 は保有する実時間。 は運用の人件費など保有期間の総額、 はGPUの消費電力(kW)、 は施設の電力効率 PUE、 は電力単価(円/kWh)。そして が稼働率——保有時間のうち、実際に計算をしていた割合です。
つまり「買うのにかかった金と面倒をみる金をひとまとめにして、実際に計算をしていた時間で頭割りし、そこに動かしている間だけの電気代を足す」ということです。
第1項は「持っているだけでかかる費用を、働いた時間で割ったもの」。第2項は「動かしている間だけかかる電気代」です。PUEは施設全体の消費電力をIT機器の消費電力で割った値で、必ず1以上——空調や電源変換のぶんだけ、GPUの銘板より多く電気を食います(チップの電力予算)。
コメント
コメントにはログインが必要です