「CPUでは理論止まり、GPUなら現実になる」――CNNとGPUの出会いが“AIブーム”を呼んだAIとGPUの関係:(2)AIブームの萌芽

GPUはもともとグラフィックス処理専用で開発されたわけだが、AI処理のためのプロセッサへと進化する転記は2010年代初頭に訪れた。機械学習の急速な進展がGPUの可能性を引き出し、その役割を拡大させたその転換点と背景を振り返る。

» 2026年03月18日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 「GPU」(Graphics Processing Unit:グラフィックス処理装置)は、もともとグラフィックス処理(画像や映像を描画するための計算処理)のために開発されたものだが、今では機械学習などAI(人工知能)分野の大規模な数値計算を担うプロセッサとして広く知られるようになった。歴史的に、どういういきさつでGPUが汎用(はんよう)的な数値計算に使われるようになったのかは、第1回『いかにして「GPU」は画像処理チップから“数値計算の常識”へと進化したのか?』で紹介したが、今回は“AIブームの起点”となった過去の転換点において、GPUがAI処理の中核的な計算資源へと位置付けを変えていった過程に焦点を当てる。

 GPUを汎用計算に利用できるようにした仕組みが、NVIDIAの並列処理プラットフォーム「CUDA」(Compute Unified Device Architecture)である。CUDAはNVIDIA製GPU専用で、同様の技術としては一般的には業界団体が策定した「OpenCL」があり、これはNVIDIA以外のGPUでも利用できる。

 CUDAにせよOpenCLにせよ、GPUの性能を生かせるのは大量の並列計算が発生するようなシーンである。例えば表計算ソフトウェアで、表の大量の再計算が発生する場合には効果的だが、ワープロで文章を作るような際には逐次的に処理が進むため、GPUは役に立たない。この辺りが「CPU」(Central Processing Unit:中央演算処理装置)との違いになる。「GPUが効果的」というシーンは科学技術計算ではあっても、身近なタスクではいまひとつ、という感じだったが、こうした状況を変えたのがAI技術である。

CNNとGPUが出会った“AIブームの起点”

 AIとGPUの関係は、意外なところから始まった。2010年、米国で「ILSVRC」(ImageNet Large Scale Visual Recognition Challenge)というイベントが始まった。これはコンピュータを利用して、どれだけ正確に画像認識を行えるかを競うもので、スタンフォード大学が立ち上げた「ImageNet」というタグ付き画像(その写真がどのようなものかを説明するタグが画像に付加されている)を利用するものである。

 画像認識の技術は、例えば昨今だと自動車が道路標識や歩行者などを検知する仕組みの根幹として使われている。監視カメラで人の顔をきちんと認識できるようにするのも画像認識に該当する。実はこの顔認識は、デジタルカメラに2006年ごろから搭載され始めていた。当時の仕組みは「SVM」(Support Vector Machine)という広義にはAIの一種の技法を利用したものだったが、その画像認識の精度には限界があった。ILSVRCにおいて、SVMベースの手法の正解率は70%ほどにとどまっていた。

 ところが2012年にトロント大学のチームが、「CNN」(Convolutional neural network)という技法を採用し、10%以上高い正答率を達成した。CNNというのは人間の脳の構造(ニューロンとシナプスの組み合わせ)を計算的に模したもので、現在ではディープラーニング(深層学習)で広く使われる代表的なネットワーク構造の一つとして知られている。これには膨大な計算能力が必要とされた。そのため理論的な有効性は認められながらも、「まだ現実的ではない」と判断されていたが、そうした中でトロント大は、NVIDIAのGPUを2枚(おそらくマイクロアーキテクチャ「Fermi」ベースの「Tesla」と思われる)使い、2週間ほどの学習時間でこれを実現したのだった。

 これに触発された多くの研究者が、それまでのSVMの研究を放棄して一斉にCNNに飛びつくことになる。結果、ILSVRCはGPUを使ったCNNの実験場と化し、2015年にはMicrosoft Researchがエラー率3.57%という驚くべき結果を出すに至っている。ちなみに一般人に同じテストを行わせた場合のエラー率は5.1%ほどと言われ、この時点で「AIは人間を超えた」などと言われるようになった。ILSVRCそのものは2017年を持って終了するが、GPUを使うことでCNNが現実的に使えるものになった、ということを知らしめた意義は大きい。

研究者がGPUを買い占め始めた理由:“人間の脳を模す”CNNブーム

 こうした画像認識を研究していた人々はこぞってGPUを買い集め、さまざまな構成のネットワークを試作しては動かし、その結果をフィードバックして次のネットワークを試作し、という具合に研究を深めていくことになる。とはいえ、そもそもCNNは画像処理に特化した技法ではなく、人間の脳の仕組みを模したものなので、原理的には人間にできることは何でもできることになる。そのため、従来は実用的でないと考えられていた他の分野、具体的には自然言語処理や信号分析/信号処理といった分野でも、一斉にCNNを利用した研究が始まり、そうした人々は一斉にNVIDIAのGPUカードを購入することになった。

 ここでNVIDIAのGPUカードが好んで購入されたのは、ごく当然の流れであった。単に先行研究のいずれもがCUDAを用いて実装されており、部分的にでも参考にして利用するとなるとCUDAを利用するのが自然だったからだ。この結果として、2013年ごろからハイエンドのゲーミング用GPUカードを研究機関などが買い占め始め、市場在庫が乏しくなり、結果市場価格が上昇するといった笑えない現象も起き始めていた。

GTCから見えたNVIDIAの転換:機械学習と自動運転へ進んだGPUロードマップ

 こうした形でAIという新しい用途が立ち上がり始めると、その潮流をNVIDIAは見逃さなかった。2013年に開催された同社の年次イベント「GTC」(GPU Technology Conference)の基調講演では、当時のGPUアーキテクチャ「Maxwell」の後継として「Volta」を投入するというロードマップが示されていた。

図1 当時のロードマップでは「Maxwell」の後継として「Volta」が示されていた(出典:NVIDIA発表資料)

 この2013年のGTCでは、AIに絡んだセッションはわずか1件にとどまっていた。ドイツのZSR研究所が行った「Learn-O-Matic:A Fully Automated GPU Machine Learning Suite」という発表のみ。

 ところが2014年になると状況は一変する。基調講演の第3部全体がAI(当時の呼び方はまだAIではなく「Machine Learning」<機械学習>だった)に充てられた。CPUだけで構築された「Google Brain」というシステムと、スタンフォード大学のAI Labが構築した12基のGPUを用いるシステムを比較し、後者が同等以上の性能を示したことが紹介され、AIの利用におけるGPUの優位性が打ち出された。

 さらに第4部では、AI分野に向けてCUDAを利用するエコシステムが既に立ち上がっていることが強調された。その後で、AudiによるCUDAベースの自動運転車のデモまで行われた。NVIDIAは当時、自動車業界に足掛かりを作りたかったものの、この市場は既存の半導体メーカーが強い影響力を持っていた。そこでNVIDIAは「AIによる自動運転」という新しい武器で参入を図る方針を打ち出し、実際この後数年間のGTCでは、必ず自動運転が取り上げられるようになっていた。

 そして2015年のGTCで示されたロードマップでは、マイクロアーキテクチャ「Pascal」が追加された(図2)。その後に登場するVoltaマイクロアーキテクチャではAI用途を強く意識した本格的な変革が行われており、PascalはVoltaに向けた橋渡し的な位置付けの世代となった。Pascalでは、

  • FP16(16bit浮動小数点数)という、精度が低い(代わりに演算性能が倍増する)データ型をサポート
  • 「NVLink」と呼ばれる、複数GPUを連携させられる仕組みを搭載

により、CNNの処理能力を大幅に引き上げることに成功した。実はCNNの場合、「演算精度を高めるより、精度は落としても計算回数を増やした方が結果の精度が良くなる」という傾向が明らかになっており、FP16の採用もNVLinkもこれに向けた実装となっている。

図2 ロードマップに「Pascal」が追加された(出典:NVIDIA発表資料)

 これに続いて2017年にVoltaが発表された。図3では、PascalとVoltaの基本構成の違いを示している。SMというのは「Streaming Multiprocessor」の略で、これがNVIDIAのGPUの演算の基本単位である。Pascalベースの「NVIDIA Tesla P100」にはSMが60個、Voltaベースの「NVIDIA Tesla V100」にはSMが84個搭載されている。純粋にSMの数だけ比較してもVoltaでは40%増えているのだが、それよりも大きいのは、Voltaに追加された「Tensor Cores」(Tensorコア)と呼ばれる処理ユニットとFP16だ。PascalでもFP16はサポートしていたが、VoltaではFP16データを用いた行列演算を実行するための処理ユニットとしてTensor Coreが追加された。

図3 PascalとVoltaの基本構成の違い(出典:NVIDIA発表資料)

 Voltaの最大の目玉は、Tensor Coreである。CNNではConvolution(畳み込み)という演算が全体の9割以上を占める。Tensor Coreはこれを高速に実行できる(1サイクル当たり16個の要素の乗算および加算ができる)ということで、実際NVIDIAによればTensor Coreの性能はPascal世代と比較して9.3倍になる。まさにCNNのための仕組みが追加されたわけだ。

AI専用ハードウェアの一般化:Tensor Core、DLSS、Turingがもたらしたもの

 余談ではあるがこのTensor Coreは当初、普通のゲームなどでは全く使われないと思われていた。ところが2018年、NVIDIAはこれを利用した「DLSS」(Deep Learning Super Sampling)という技法を提供し始めた。ゲームなどでは高精細かつ大画面の画像が好まれるが、解像度を上げればGPUの負荷は高くなる。そこであえて解像度を低くして描画(例えば2.5Kの画面サイズであっても、2Kくらいで描画して拡大)することで負荷を減らすのだが、これだと精細度が落ち、いわゆる“ボケた”描画になる。そこでAIを利用してボケた画像をシャープにすることで、見かけの精細度を落とさずにGPUの負荷を減らし、フレームレートを向上させるという技法だ。このDLSSにはTensor Coreが利用されることになり、AIには無関係と思われていたユーザーがAIの恩恵を受けられるようになった形だ。

 第1回で説明したように、Voltaアーキテクチャはサーバ向けGPUとして開発されており、コンシューマー向けのブランドである「GeForce」用としては展開されていない。その代わりに、2018年10月にGeForce向けに発表されたマイクロアーキテクチャ「Turing」にもTensor Coreが搭載され、DLSSはこれを利用して稼働するようになっている。

 こうして、GPUにもAI対応の専用ハードウェアが入るのが一般的になってきたところで、生成AIが登場することになる。次回は大規模言語モデル(LLM)の進化とともに拡大するGPUへのニーズや、生成AIに最適化された仕組みを解説する。

筆者紹介

冨永 嘉之(とみなが よしゆき) NTTPCコミュニケーションズ

約15年にわたりWebARENAホスティングサービスの企画・開発に従事。VPS/IaaSサービス「Indigo」「Indigo Pro」の開発およびサービス立ち上げを主導してきた。現在はAIソリューション事業部にて、GPUクラウドやNVIDIA Omniverseを実行基盤とするVDIクラウドの企画・開発を担当。インフラ事業者としての技術的強みを生かしながら、AIを活用したアプリケーションを前提としたプロダクト設計や役割分担を意識し、フィジカルAI分野への展開を見据えたサービス企画を推進している。

大原 雄介(おおはら ゆうすけ) テクニカルフリーライター

ITよりもう少し下のレイヤー(半導体技術、OS、CPU・メモリ・I/O・ストレージ・ネットワークのアーキテクチャなど)と組み込み向けを分野とするテクニカルフリーライター。

過去のWeb掲載記事は http://www.yusuke-ohara.com/ に一覧あり。

最新の掲載記事は https://bsky.app/profile/yusukeohara.bsky.social に。


Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2026
人に頼れない今こそ、本音で語るセキュリティ「モダナイズ」
4AI by @IT - AIを作り、動かし、守り、生かす
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。