投資コストに対して得られる計算量は、GPUと演算強度(Arithmetic Intensity)によって大きく異なります。Runpodの価格設定に基づき、`batch_size=1024` (tokens) でLLMを事前学習した場合、0.5Bパラメータ未満のモデルではL4が、それ以上の規模ではH100が圧倒的なコストパフォーマンスを示します。
時間やお金と同じように、計算リソース("compute")はいくらあっても困ることはありません。これはモデルの事前学習であれ推論であれ、変わらぬ真実です。
インターネット上には「GPU選択ガイド」のような記事が溢れていますが(例: 1 2 3)、残念なことに、それらの多くは最も重要な経済的な問いに答えてくれていません。
すなわち、「私のAIワークロードにおいて、1ドルあたり最大のFLOPs(計算量)を叩き出すGPUはどれか?」 という問いです。
現実には、多くの研究者やエンジニアが「慣習だから」という理由だけでGPUを選んでいます。とりあえずA100を選んでおけば間違いない、と。その結果、彼らは自分たちのワークロードの演算強度(Arithmetic Intensity)にマッチしないハードウェアに高い金を払い、本来なら同予算で得られたはずの大量のFLOPsをドブに捨てていることになります。この無駄を見て見ぬふりはできないはずです。
そこで本記事では、あなたの深層学習ワークロードに最適なGPUを推定するための実証的な手法を紹介します。これは私自身がスケーリング則(Scaling Law)の研究を行う上で、限られた予算を最適化するために編み出したアプローチです。
ケーススタディとして、Transformer LLMを異なるGPU上でスケールさせ、その費用対効果(FLOPS/$)を測定していきます。
公平な比較を行うため、測定は以下の統一条件下で実施しました。
- アーキテクチャ: Qwen3
-
最適化 (Optimization): AdamW optimizer,
autocasttobfloat16 -
データ:
torch.randintによるダミー生成データ(CPUやI/Oのボトルネックを排除するため) -
バッチサイズ: 更新ステップあたり1024トークン(4 seq
$\times$ 256 tokens/seq) -
モデルスケーリング: モデルの幅(Width)と深さ(Depth)をスケーリング則
$\text{depth} \approx 0.77... \cdot \log_2(\text{width}) - 2.5...$ に従って調整しつつ増加させました。幅はタイリング最適化のため256の倍数としています。 -
GPU: L4, A100-80GB, H100
- 価格はRunpodの "Secure-Cloud" pricing 4 を参照(vCPUコスト込み)。
このセットアップにより、現実的な学習設定における経験的なパフォーマンスとコスト効率を観測します。
まず、各GPUにおける純粋な処理性能(FLOPS)を見てみましょう。
当然ながら、ハイエンドなGPUほど処理速度は速くなります。しかし重要なのは、モデルをスケールさせる(=サイズを大きくする)ことで**演算強度(Arithmetic Intensity)**が高まり、すべてのGPUにおいてFLOPSの利用効率が向上している点です。
Tip
ここで重要なのは「行列積演算の強度」を高めることです。そのため、モデルサイズの代わりに batch_size をスケールさせても同様の効率向上パターンが期待できます。
我々の目的は、投資する1ドルあたりで得られる計算量(FLOPs / $)を最大化することにあります。データを分析すると、「最適な」GPUはモデルサイズによって明確に切り替わることがわかります。
コストあたりの計算量という観点では、L4 と H100 が支配的な選択肢として浮かび上がります。
-
小規模領域: 500Mパラメータ (
$~2^{29}$ FLOPs/step) 未満のモデルでは、L4が最も財布に優しい選択肢となります。スケーリング則の推定や、小規模な検証を行うならL4一択です。 - 大規模領域: 分岐点を超えると、H100が最も高い投資対効果(ROI)をもたらします。
興味深いことに、LLM研究の論文でデファクトスタンダードとして扱われる A100 は、このセットアップにおいて純粋なコスト効率の面ではあまり利点がありません。A100が有効な選択肢となるのは、「L4ではVRAMが足りないが、H100の演算性能(およびコスト)を正当化できるほどの演算強度($2^{41}$ FLOPs/step以上)がない」という、限定的な中間領域においてのみです。
この記事が、"GPU-poor"が1FLOPでも多く計算量を絞り出す助けになれば幸いです。
ベンチマークを取ること自体にそれほどコストは掛からないので、ぜひ各自の目的やセットアップで検証することをお勧めします。適切なGPUを選ぶだけで、小規模なプロジェクトなら数万円、規模が大きければ数百万円単位の節約になるかもしれないのですから。
Note
最適なGPUは多くの条件によって動的に変化することに注意してください。例:
- 料金体系: RunpodではなくModal5のようなプロバイダを利用する場合、料金設定の違いによりA100が最適となる領域が発生する可能性があります。
- アーキテクチャ: Transformerではないアーキテクチャ(例: MLP, CNN)では、演算強度の特性が大きく異なります。
- 複数GPU (Multi-GPU): 分散学習を行う場合、メモリ帯域幅やインターコネクト速度が主要なボトルネックとなり、最適化の力学が変わってきます。


