人間の限界を超え、新たな発明や発見につながるものとして、さまざまな産業界で注目されている人工知能(AI)。近年の、人工知能開発の飛躍的な進化を支えているのが技術面での進歩だ。前回は人工知能に関わる3つの要素を紹介し、その中の1つ「GPU」において、NVIDIAが大きな役割を担っていることを紹介した。今回は人工知能の発展において、GPUが具体的にどのような役割を果たしているかを見てみよう。

ディープラーニングは莫大な演算の繰り返し

人工知能のブレイクスルーである「ディープラーニング」。単純な変換を多層に繰り返すその手法は、数学的には『(x1 x2 x3)(y1 y2 y3)…』と記述する「行列演算」をひたすら繰り返しているのに似ている(実際にはもっと複雑だが)。

人工知能の最先端モデルのディープラーニングはすでに画像認識、音声認識、自然言語処理、ウェブの商品レコメンデーション、自動運転などに使われている

こうした演算の繰り返しはまさにコンピュータが得意とするところだが、コンピュータの中央演算装置である「CPU」は、行列演算だけでなく、さまざまな演算を汎用的に行うように開発されているため、行列演算はそれほど高速ではない。コンピュータの世界では、実行する処理が限定されているのであれば、その処理を専門的に処理するようハードウェア的に実装したほうが、より高速で効率良く行える。例えば動画を再生するなら、動画再生に最適化された回路を作ったほうが、ソフトウェア的に処理するよりはるかに高速なのだ。

ディープラーニングの学習過程で膨大な量のデータが取扱われる。上記の顔認識でもトレーニングデータは1000万から1億イメージ。これを処理するためにはCPUではなく特定の演算処理を行うGPUのほうが向いている

それでは行列演算に最適化された回路を開発すれば、より高速にディープラーニングを処理できるのだろうか?

答えはイエスだ。ただし、わざわざこれから開発するまでもなく、すでにそのような処理に特化された「GPUコンピューティング」が存在している。

GPUコンピューティングとは、本来3Dを中心にグラフィック描画を専門に行う「GPU」に特定の演算処理を任せようというものだ。GPUはゲームなどが要求する超高度なグラフィックを高解像度・高速に処理するため、グラフィック処理についてはCPUを上回るほどの処理能力を与えられているのだが、これを特定の演算に応用しようというのが「GPUコンピューティング」の考え方だ。

たとえば3Dグラフィックで、3次元空間にある立方体を回転させ、それを2次元であるモニターに投影する場合、各頂点の位置がどのように見えるかは、8つある頂点の、X、Y、Z軸それぞれの座標を行列変換するのに等しい。GPUコンピューティングこそ、まさにディープラーニングに求められている資質そのものだと言えるわけだ。

こうしたGPUコンピューティングをいち早く提唱し、実践してきたのが米NVIDIA社だ。同社はゲーミングPC用の「GeForce」、あるいはグラフィックワークステーション用の「Quadro」といったGPUで知られているが、いずれも同社のGPU用開発環境「CUDA」を用いたプログラムで、3Dグラフィックではなく特定の演算処理を行わせることができる。