コンテンツにスキップ

GPUとは

GPU(Graphics Processing Unit)とは、画面に絵を描くための計算を専門に担う演算ユニットです。 描画は画素の数だけほぼ同じ計算を繰り返す仕事なので、GPUは演算ユニットを大量に並べる方向へ伸び、その形が生成AIの学習にも使われています。並んだスレッドが同じ道筋をそろって進めるかが、速さを大きく左右します。描画から育った形なので、手元の機器でAIを動かすと電力と発熱がかさみます。

描画は画素の数だけ同じ計算を繰り返すので、並べるほど速くなる

Section titled “描画は画素の数だけ同じ計算を繰り返すので、並べるほど速くなる”

ルネサスの車載向けSoC「R-Car D3e」は、3DグラフィックスプロセッシングユニットとしてPowerVR Series8XE GE8300を搭載しています1。2Dグラフィックスプロセッシングユニットも並び、ルネサスは描画性能を既存製品「R-Car D1」の約6倍としています。このGPUの仕事は、運転席の計器画面へ3次元の絵をなめらかに描くことです。ルネサスは、車載用液晶ディスプレイの大型化と高解像度化が進んで計器画面へ表示する情報量が増えたことを、このSoCを開発した背景に挙げています。

絵を描く仕事は、画面の1点ずつに対して、ほとんど同じ計算を画素の数だけ繰り返す点で、ほかの計算と際立って異なります。1点の計算結果を隣の点が待つ場面は少なく、まとめて同時に走らせられます。そのためGPUは、入り組んだ1つの計算を速く終える方向より、単純な計算をいくつ同時に走らせられるかという方向へ伸びました。演算ユニットの数を増やせば、そのぶん1秒あたりに塗れる画素が増えます。

スレッドは束で動き、同じ束が同じ道筋を通るときに速い

Section titled “スレッドは束で動き、同じ束が同じ道筋を通るときに速い”

GPUで動かすプログラムでは、計算を大量のスレッドに分けます。NVIDIAのCUDAでは、スレッドをスレッドブロックにまとめ、ブロックをさらにグリッドにまとめます2。グリッドは1次元から3次元まで取れます。

warpの中の道筋
経路がそろう1つのwarpのスレッドそろって進む経路が分かれる経路A経路B分かれた区間で性能が落ちる
同じwarpのスレッドがそろって同じ道筋を進むと速く、途中で経路Aと経路Bに分かれると、その区間で性能が落ちます。

CUDAの実行モデルはSIMTと呼ばれ、各スレッドが自分の状態と制御の流れを持ち、機能の上では別々のコード経路を実行できます。それでもNVIDIAは、同じwarpのスレッドが分岐して別々の経路をたどる場面を減らすと、性能を大きく伸ばせるとしています2。描画の画素のように全員が同じ計算をする仕事は、この条件に自然に合います。

記憶は段になっていて、チップに近い段は取り合いになる

Section titled “記憶は段になっていて、チップに近い段は取り合いになる”
GPUの記憶の置き場所
SMSMSMレジスタレジスタレジスタ共有メモリL1同じ物理領域L2(全SMで共有)グローバルメモリ(全スレッドから読める)レジスタの退避と読み戻し
各SMのレジスタと、同じ物理領域を分け合う共有メモリとL1がチップの近くにあり、L2は全SMで共有され、溢れたレジスタの値はグローバルメモリまで往復します。

GPUの記憶は段になっています。いちばん外側のグローバルメモリはカーネルの全スレッドから読み書きでき、CPUのシステムでいうRAMに近い役割です2。全スレッドから触れるので、スレッドどうしのデータ競合を避ける注意が要ります。L2キャッシュはデバイス上にあって全SMで共有され、各SMの中には共有メモリとL1キャッシュがあります。

この段の中に、取り合いがあります。共有メモリとL1キャッシュは同じ物理領域を分け合うので、カーネルが共有メモリを多く使うほど、使えるL1キャッシュは小さくなります。レジスタが足りなくなるとレジスタの退避が起き、チップ上のレジスタにあった値をいったんグローバルメモリへ書き出して、あとで読み戻します。レジスタの値が、いちばん外側の段まで往復することになります。

同じ形が、車載SoCの1基からABCI 3.0の6,128基まで繰り返される

Section titled “同じ形が、車載SoCの1基からABCI 3.0の6,128基まで繰り返される”

この形は、チップ1個の中でも、システム全体の規模でも同じように繰り返されます。産業技術総合研究所が運用するAI向け計算システム「ABCI 3.0」は、2026年8月時点で766台の計算ノードからなり、6,128基のNVIDIA H200 GPUアクセラレーターを備えています3。ノード1台はH200を8基と、第3世代Intel Xeonスケーラブルプロセッサー2基、NVMe SSD 2基、2TBのDDR5メモリを備えます。ノードどうしは高速なInfiniBandネットワークでつながり、合算で75PBの物理容量を持つ共有ファイルシステムとオブジェクトストレージを共有します。

ノード1台の性能は半精度の浮動小数点演算で8,122 AI-TFLOPS、つまり1秒間に8千兆回で、システム全体では半精度で6.2 AI-EFLOPSです。産総研は2023年10月、国立情報学研究所が主宰するLLM-jpや東京工業大学と協力し、1750億個のパラメタを持つ大規模言語モデルの構築へABCIを提供すると発表しました4。生成AIの学習は、GPUを大量に搭載したシステムの上で走っています。

答えの細かさを落とすほど、1秒あたりの回数が伸びる

Section titled “答えの細かさを落とすほど、1秒あたりの回数が伸びる”
ABCI 3.0のノード1台の性能
半精度8,122 AI-TFLOPS倍精度542 TFLOPS倍精度の棒15本ぶん
同じノードで、半精度の性能は倍精度の棒をおよそ15本並べた長さになり、答えの細かさを落とすほど1秒あたりの回数が伸びます。

ABCI 3.0のノード1台あたりの性能は、科学技術計算で使う倍精度の浮動小数点演算では542 TFLOPSです。機械学習に使う半精度の8,122 AI-TFLOPSを542で割ると、およそ15倍の開きがあります。同じハードウェアで、同じ1秒のあいだに、答えを細かく求めるか回数を稼ぐかが入れ替わります。学習が半精度で走るのは、桁の細かさより回数のほうが結果を左右する計算だからです。

描画のための形はAIの計算で電力と発熱がかさみ、手元の機器では専用ユニットを隣に載せる

Section titled “描画のための形はAIの計算で電力と発熱がかさみ、手元の機器では専用ユニットを隣に載せる”

GPUがAIの計算へ向くとしても、設計の出発点はあくまで描画です。このずれは、データ量と発熱の測定値に表れます。

GPGPUの高並列演算で広く使われるim2colという手法は、行列演算の並びに合わせて画像データをあらかじめ並べ直します5。3×3のフィルタを使う畳み込み演算では、1画素のデータが9か所へ複製されるので、データ量が9倍にふくらみ、消費電力と通信帯域が増えます。

ルネサスは、市販のGPUと自社の試作品を同じ条件で走らせ、TinyYolov2を動かしてサーモグラフィーでデバイスの表面温度を測った実験の結果も示しています。市販のGPUはヒートシンクを付けた状態で表面温度79.0℃、同社の試作品はヒートシンクなしで40.9℃でした。そのときのフレームレートは42fpsで、ルネサスはGPU側を同等以下としています。NEDOとルネサスは2022年12月の共同発表で、100Wクラスのパソコンで動かすようなAI演算を数W以内へ収める性能が、機器へ組み込むには要るとしています6。熱はデータセンター向けでも制約になり、imecのシミュレーションでは、GPUの上にHBMを積んだ構成で熱を抑えるためにGPUの周波数を半分にすると、AI学習の処理量は2.5D構成の通常周波数の72%に落ちます。

そのため手元の機器では、GPUの隣にAI専用の演算ユニットを載せます。ルネサスのMPU「RZ/V2L」は、同社独自のAIアクセラレータ「DRP-AI」と1.2GHzのデュアルコアArm Cortex-A55 CPU、3Dグラフィックス、ビデオコーデックエンジンを載せています7。3D GPUはArm Mali-G31で、NPUも備えます。1つのチップの中で、絵を描く側と、NPUとしてAIの計算を担うAIアクセラレータの側が同居しています。GPUを選ぶか専用ユニットを選ぶかは、計算の規模と、電力と熱にどれだけ余裕があるかで決まります。

GPUとは何ですか?

画面に絵を描くための計算を専門に担う演算ユニットです。ルネサスの車載向けSoC「R-Car D3e」は、3DグラフィックスプロセッシングユニットとしてPowerVR Series8XE GE8300を搭載しています。

なぜ絵を描く装置が生成AIの学習に使われるのですか?

計算の中身が近いためです。描画は画素ごとにほぼ同じ計算を繰り返す仕事で、AIの学習も掛け算と足し算の反復です。どちらも単純な計算を大量に同時へ走らせる装置に向きます。

CPUとはどう使い分けますか?

手順が入り組んだ計算はCPUが担当し、同じ計算を大量に繰り返す部分をGPUが引き受けます。ルネサスのRZ/V2Lのように1つのチップへCPUコアと3D GPUを同居させる構成が広く採られ、ABCI 3.0の計算ノードもGPU 8基にXeonプロセッサー2基を組み合わせています。

半精度と倍精度とは何ですか?

小数を何桁の細かさで表すかの区分です。ABCI 3.0の計算ノード1台あたりの性能は、半精度で8,122 AI-TFLOPS、倍精度で542 TFLOPSです。細かさを落とすほど1秒あたりの回数が伸び、この例ではおよそ15倍の開きがあります。

GPUは1つのシステムにいくつ載るのですか?

用途で規模が大きく開きます。ABCI 3.0は計算ノード1台あたり8基のGPUアクセラレータを搭載し、766台でシステム全体では6,128基です。車載SoCのR-Car D3eに載る3D GPUは1つです。

GPGPUとは何ですか?

描画以外の計算へGPUを使う手法です。GPGPUの並列演算で広く使われるim2colは、画像データを行列演算の順へ展開するため、3×3のフィルタではデータ量が9倍にふくらみます。

手元の機器でもGPUでAIを動かすのですか?

電力と発熱が壁になります。ルネサスの試作実験では、市販のGPUがヒートシンク付きで表面温度79.0℃、同社のAIアクセラレータ試作品がヒートシンクなしで40.9℃でした。組み込み機器ではNPUなどの専用ユニットを併用します。

7件を表示
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7