仕組みを知る

GPUはなぜAIの計算に向いているの?

GPUは、多数の小さな演算器と高いメモリ帯域を使い、ニューラルネットで多用する行列演算を大量に並べて処理しやすいためAI計算に向いています。映像用の装置がAIの学習や推論に使われる理由を、並列演算・行列計算・メモリ帯域の3点から考えます。

GPUはなぜAIの計算に向いているの?

30秒でわかる答え

GPUはなぜAIの計算に向いているの?

多数の小さな演算器と高いメモリ帯域を使って、ニューラルネットで多用する行列演算を大量に並べて処理しやすい。 映像用の装置がAIの学習や推論に使われる理由を、並列演算・行列計算・メモリ帯域の3点から考えます。

一文定義
多数の小さな演算器と高いメモリ帯域を使って、ニューラルネットで多用する行列演算を大量に並べて処理しやすい

TERM PRIMER

先に知っておく言葉

GPU
似た計算を多数の処理単位で同時に進めるのが得意で、画像処理やAI計算にも使われる装置です。
並列処理
一つの仕事を分け、複数の計算を同じ時間帯に進める処理方法です。
ニューラルネットワーク
数値を受け渡す計算単位を層状につなぎ、学習によって入力と出力の関係を調整するモデルです。
メモリ
あとで使うデータや状態を保っておく仕組みです。AIでは会話や処理結果を、量子メモリでは量子状態を保つために使います。

イト

GPUってゲームの映像のための装置でしょ? なんでAIの計算に使うの?

ユイ

私も、映像とAIがどうつながるのか説明できないです

ピコ

実は両方とも『同じ形の計算がたくさん』なんだ。並列演算ホールで確かめよう

GPUは、多数の小さな演算器と高いメモリ帯域を使って、ニューラルネットで多用する行列演算を大量に並べて処理しやすいため、AIの計算に向いています。

「GPUがAIに必要」とよく聞くけれど、映像用の装置がなぜ学習や推論に使えるのか。以下では、その疑問を並列演算・行列計算・メモリ帯域の3点に分けて考えます。前提としてCPU・GPU・NPUの違いを読んでおくと、役割の位置づけがつながります。

第98話「壁一面の掛け算」では、一列のレーンで渋滞した大量の掛け算を、イトたちが壁一面の並列レーンへ移す場面を描きます。

先に結論:計算の形が同じだから

映像処理とAI計算は、遠いようで似ています。

  • 映像: 画面の何百万個の画素それぞれに、色の計算をする
  • AI: ニューラルネットの何百万個の数値それぞれに、掛け算と足し算をする

どちらも「単純で同じ形の計算が、大量に並んでいる」仕事です。GPUはこの形の仕事のために作られた装置なので、映像でもAIでも力を出せます。ゲームのための装置がたまたま流用されたというより、仕事の形が最初から同じだった、と考えるほうが実態に近いです。

映像処理とAI計算に共通する形

もう一歩だけ具体的にします。

画面の描画では、「この画素の色 = 光の当たり方 × 素材の色」のような計算を全画素で繰り返します。ニューラルネットでは、「次の層の値 = 入力の値 × 重み の合計」という計算を全結合分だけ繰り返します。

共通点は次の3つです。

  • 計算のパターンが同じで、データだけが違う
  • 一つひとつは単純な掛け算と足し算
  • 隣の計算を待たなくても進められるものが多い

「待たずに進められる」が並列化の条件です。前の結果が要る仕事は列に並ぶしかありませんが、独立した仕事は何千レーンにも分けられます。命令を1つずつ処理する流れはコンピューターの命令処理で見た通りで、GPUはその流れを大量に横に並べた作業場と考えられます。

行列演算を並べるとはどういうこと?

AIの計算の中心は、行列演算と呼ばれる形です。

たくさんの数を縦横に並べた表(行列)どうしを、掛けて足し合わせる。ニューラルネットの学習も推論も、大部分がこの形に落ちます。

ラボのたとえで言えば、同じ形の計算箱が山積みになっていて、それを一人の職人が順番に開けるか、千人のレーンで同時に開けるかの違いです。

  1. 計算箱の中身は単純な掛け算と足し算
  2. 箱どうしは独立していて、順番を待たなくてよい
  3. だからレーンを増やしただけ、時間を短くしやすい

実際のGPUには、この行列演算を効率よく処理するための専用回路を持つ製品もあります。ただし箱の形が違う仕事、たとえば条件分岐だらけの処理では、レーンが多くても効果は出にくくなります。

16組の計算タイルが4本のレーンへ分かれ、同時に処理されて結果の格子へ集まる様子をイトとピコが見ている
互いに待たずに進められる同じ形の計算は、複数のレーンに分けて同時に処理しやすくなります。

同時に計算する場所を増やすと、全体の時間は何分の一になるのでしょうか。並列処理の時間模型では、計算以外の準備や待ち時間が残る理由を試せます。

VRAMとメモリ帯域の役割

演算器の数と同じくらい大事なのが、データを運ぶ力です。

GPUのそばには、VRAMと呼ばれる専用メモリがあります。AIのモデルはパラメータと呼ばれる大量の数値でできていて、計算のたびにこの数値を読み出します。

  • VRAMの容量: モデルの数値一式を手元に置けるかを決める
  • メモリ帯域: 1秒間にどれだけの量を演算器へ運べるかを決める

工房で言えば、レーンが千本あっても、材料を運ぶベルトが細ければレーンは待ちぼうけです。GPUが高い帯域のメモリを組み合わせているのは、演算器を遊ばせないためです。AIの体感速度が「演算器の数」だけでは決まらない理由が、ここにあります。

GPUを万能と考える誤解と苦手な処理

GPUを万能と考えると誤解につながります。

  • 条件分岐が多く、進む道がばらばらな処理
  • 一つ前の結果を待たないと進めない処理
  • データ量が少なく、並べるほどの仕事がない処理

こうした仕事では、少数精鋭で判断の速いCPUのほうが向いています。また、「GPUの搭載量が多いほど、どんなAIでも比例して速くなる」とも言えません。演算の精度、VRAMの容量と帯域、ソフトウェアの対応、複数GPU間の通信など、条件によって伸び方は変わります。

ニュースでGPUの調達数だけが話題になることがありますが、数は条件の一つにすぎません。どんな計算を、どんなソフトで、どんなメモリ構成で動かすのかまで含めて、はじめて速さの見当がつきます。

イト

速いか遅いかじゃなくて、仕事の形がレーン向きかどうかなんだね

ピコ

そう。形が合えば千本のレーンは強い。合わなければ工房長の出番だよ

CPU・NPUとの分担に戻す

端末やデータセンターの中では、装置が分担しています。

  • CPU: 全体の制御、データの準備、分岐の多い処理
  • GPU: 学習や推論の行列演算を大量に並べて処理
  • NPU: 端末内のAI処理を省電力でこなす

AIの計算がどこで動くか(手元の端末か、遠くのデータセンターか)によっても、この分担は変わります。その話はクラウドAIとオンデバイスAIの違いで続けます。AIそのものの定義から確認したい場合は、AIとはが入口です。

小さな並列計算ワークと確認クイズ

並列の感覚を、手を動かして確かめます。

ワーク: 同じ掛け算を16個やる課題を想像して、紙に2つの図を描いてみましょう。1本のレーンで16回流す図と、4本のレーンで4回ずつ流す図です。かかる時間の違いと、「レーンを増やせない仕事はどんな形か」まで考えられたら成功です。

Q1. GPUがAIに向く理由を3点でいうと?

並列に働く多数の演算器、行列演算という計算の形との一致、データを運ぶ高いメモリ帯域の3点です。

Q2. 演算器が多ければ、分岐の多い処理も速くなる?

なりにくいです。進む道がばらばらな処理は並べにくく、CPUのほうが向く場合があります。

Q3. GPUを増やせばどんなAIでも比例して速くなる?

そうとは限りません。VRAM、帯域、ソフトウェア対応、GPU間の通信などの条件で伸び方は変わります。

並列演算ホールから次へ読む記事

計算の置き場所という視点へ進むなら、クラウドAIとオンデバイスAIの違いが続きです。3つの装置の役割へ戻るならCPU・GPU・NPUの違い、処理の一番細かい流れへ戻るならコンピューターの命令処理へ。

ここから先、AI知能区の入口になるのがAIとはです。

LAB WHITEBOARD

自分の言葉で説明してみよう

「並列演算、行列計算、メモリ帯域の3点から、GPUとAI計算の相性を自分の言葉で説明できるようになる。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。