現在、我々が普段利用しているPCやスマートフォン、果てはちょっとした家電製品に至るまで、あらゆるデバイスに半導体は欠かせない。何気なく利用しているこれらのデバイスだが、その利用スタイルは日々変化をしており、場合によっては数年で人々の行動がガラリと変化してしまうことすらある。十数年前ならそれが「スマートフォンの普及」だったが、現在なら「生成AI(Generative AI)」の登場が変化の原動力となっている。
10月に米ハワイ州マウイ島で米Qualcommが開催した「Snapdragon Summit」での講演を通して、AI技術にまつわる半導体の進化が、日常生活にどのような変化をもたらすのか見ていこう。
●生成AIは「アプリ」のあり方を変える
Qualcommのクリスティアーノ・アモンCEOは、「生成AIがオンデバイス上で動作することで、ユーザー体験が大きく変化する途上にある」と述べる。
スマホ中心の世界となったことで起きた大きな変化の1つは「モバイルアプリ」の登場で、ユーザーは日々の作業をアプリを通じて行うことになった。そして、生成AIの登場によって、デバイス(スマホ)が人語を直接理解できるようになり、アプリの利用スタイルそのものも変わる可能性も出てきた。
アモンCEOは銀行アプリを例に挙げ、「従来までであれば、アプリを開いて残高を確認し、送金メニューで振り込みを行って……という一連の動作が、デバイスとの対話に変わり、必要な情報に素早くアクセスし、取り出すことが可能になる」としている。同様に、処理のマルチモーダル化が進んで画像や音声の情報も取り込んで理解できるようになれば、レストランでの明細をスマホのカメラで撮影し、割り勘すべき金額を割り出し、その場で隣の友人に送金するといったことも実現する。
生成AIというキーワードが注目されたのは、ここ2年のほどの話だが、AppleやGoogle、Microsoftなど、PCやスマホのプラットフォーマー各社は、AI機能を次々と自社プラットフォームに取り込みつつある。
他方で、PCやスマホの主要な部品の1つであるSoC(System on a Chip)を提供する半導体メーカーは、最低でも2~3年、長い場合は5年近くかけてSoCの開発を行う。少し言い換えると、少なくとも5~7年程度先を見据えた設計が求められる。
そういう観点から、この“AI時代”を見据えた半導体設計についてもう少し見ていこう。
●鍵を握る「NPU」のチューニング
Microsoftは5月に掲げた「Copilot+ PC(新しいAI PC)」の動作要件の1つに、「CPU/SoCが統合するNPUの性能が40TOPS以上」というものがある。
NPUは推論ベースのAIが用いる演算に特化したプロセッサのことで、NPUは脳のニューラルネットワークになぞらえた「Neural Processing Unit」の略称だ。NPUはAIのオンデバイス実行に重要であると同時に、NPUがAIのオンデバイス実行の全てではないことには留意したい。
繰り返しだが、NPUは推論演算に特化している。ゆえに当該の演算を高速かつ省電力で実行可能だ。同様の演算はGPU(Graphics Processing Unit)」でも行えるが、NPUの方が効率面でメリットがある。LLMを始めとして、オンデバイス動作を前提とする生成AIは「学習」は行わず、推論のみを行うことが多い。
ゆえにNPUの性能が、ほぼイコールでCPU/SoCのAI性能ということになりやすい。
ただし、NPUの性能指標とされている「TOPS」、つまり1秒当たりの命令処理回数が必ずしも実際の性能を示すものとは限らない点にも注意が必要だ。
例えば「Aの推論を実行するのに、○TOPSの性能が必要」というただし書きあると、そのNPUがどの程度の推論を実行する“キャパシティ”を備えるか、おおよその目安にはなる。しかし、「Aの推論」を「○TOPS」の処理性能を持つ“異なる”NPUで処理した場合、その結果(パフォーマンス)がイコールになるとは限らないのだ。
というのも、NPUによって得意とする(最適化している)演算方法や、演算結果をメモリに書き込む速度が異なるからだ。TOPSの数字はマーケティング的には分かりやすく、ユーザーにとっても参考になるものの、数値だけでNPUの“強み”と“弱み”を知ることは難しい。
そういう観点では、「MLCommons」が開発した機械学習ベンチマークテスト「MLPerfシリーズ」は、推論ベースのAIにおける客観的なパフォーマンスを知る手段としてデファクトスタンダードとなっている。
このあたりの話題は、Qualcommが2月に公表したブログエントリーやホワイトペーパーで詳細に解説されている。
QualcommのSoC「Snapdragonシリーズ」に搭載されているNPU「Hexagon(ヘキサゴン)」は、元々は信号変換処理を担うDSP(Digital Signal Processor)として搭載されていた。その出自から、かつてのHexagonは大量の積和(MAC:Multiply Accumulate)演算に特化していた。
しかし、昨今のAI処理では大量の行列(Matrix/Tensor)演算が発生する。行列演算とは、すなわち大量のMAC演算でもある。ゆえに、昨今のHexagonはAIにおける推論実行に最適化するチューニングが施されている。
先に紹介したホワイトペーパーでは、文中でHexagonがどのようなチューニングを施されてきたのか紹介している。例えば2022年12月に発表されたハイエンドスマホ向けSoC「Snapdragon 8 Gen 2」のHexagonでは、AI推論の実行におけるレイヤーが10層以上になっても、実行単位である「Microtile(マイクロタイル)」内でScalar演算/Vector演算/Tensor演算を独立して演算処理できるようにした。これにより、メインメモリへのアクセス回数が減少し、結果的に実効性能の大幅な引き上げに成功したという。
またAI推論では「浮動小数点」ではなく「整数演算」が主に用いられるが、実行する推論の内容によっては必ずしも高精度でなくても構わない。そこでSnapdragon 8 Gen 2のHexagonでは「INT4」演算をハードウェアレベルでサポートした。例えば「INT8」ならINT4の2倍の数を扱えるが、そこまでの精度を必要としない場合はINT8の演算器を「INT4×2」の演算器として運用することで、実効速度の向上と消費電力の削減を両立した。
そして2023年10月に披露されたハイエンドスマホ向けSoC「Snapdragon 8 Gen 3」では、メインメモリとしてLPDDR5X-4800をサポートすることでメモリのアクセススピードを改善した。
「AI推論とメモリって関係があるの?」と思うかもしれないが、LLMを実行する際には「モデル」がメモリ上に大量に展開されるため、NPUとメモリは頻繁にデータをやりとりする。言い換えると、メモリのアクセススピードが速ければ、その分だけLLMからの回答(レスポンス)も早く得られることになるため、メモリの容量とアクセススピードは重要なのだ。
メモリのアクセス速度の改善は、少なくとも今後数年にわたってLLMの実行に必要十分なパフォーマンスが得られるよう志向した結果だと考えられる。現に、Snapdragon 8 Gen 3を搭載するスマホにおいて、オンデバイスである程度の規模のLLMを動作させる試みは行われている。
今回、新たに登場したSnapdragon 8 Eliteでも、Hexagonの構造に少し手が入っている。ITmedia Mobileに掲載したレポートでも触れているが、今回のHexagonではScalar演算とVector演算を担うユニットが事実上2倍に増えた。Tensor演算ユニットは、大量の行列演算、AI推論的にいうと「畳み込み演算」を担い、Vector演算はトークン処理にまつわる演算に活用されている。
現在の生成AIの基本的な理論「Transformer」では、「プロンプト」など入力された文書をいったん推論エンジンが理解できるトークンに変換(エンコード)した上で畳み込み演算を行い、結果を人間が解釈できる形に復元(デコード)して出力するというプロセスを取る。現状のLLMは、トークンが長大化してしまう傾向があるため、特にVector演算を強化することが、実効性能の向上に直結するというわけだ。
先述の通り、CPU/SoCの開発では少なくとも5~7年程度先を見据える必要がある。5~7年先のユースケースをにらみつつ、CPU/SoCの“どこ”を“どのように”強化するのかという方向性を的確に探れるかどうかが、半導体メーカーの腕の見せ所となる。
●ターゲット市場に最適化されたハードウェアが重要
半導体メーカーは、エンドユーザーに届く最終製品を作っているわけではない。そしてCPU/SoCの企画開発段階から搭載製品が届くまで、非常に長いリードタイムを要する。
自らが市場をリードし、技術の方向性を決める立場にあるのならいいのだが、特にソフトウェアの世界において新しい技術的トレンドが突然出現し、その進化や変化が早い(激しい)となれば、先の需要を予測してCPU/SoCの機能強化をあらかじめ行うことは非常に困難だ。
この問題について、Qualcomm Technologiesで主に製品のAIディレクションを担うベニシュ・スカマー氏(製品マネジメント担当シニアディレクター)は次のように説明している。
QualcommのAIリサーチチームでは、「どのようなディープラーニング(深層学習)のアーキテクチャが今後登場するか」(の予測)に注力してきた。歴史的にいえば、まずは「RNN(Recurrent Neural Network)」であり、後に「CNN(Convolution Neural Network)」に移行し、2017年にGoogleが提唱した「Transformer」へとつながり、今日のLLMやその他全ての基礎の構築につながっている。そして今、人々はスタンフォード大学とカリフォルニア大学バークレー校によって2021年に発表された「MoE(Mixture of Experts)」「State Space Models(SSM)」といったものに取り組むようになった。 このような動きからいえることとして、まず(深層学習の)アーキテクチャに注目することが大切で、それを踏まえてQualcommのNPU(Hexagon)やAIスタックを含む各種ハードウェアで新アーキテクチャをサポートできるかを適時確認することが大切である。
次のステップとして、モデルが今後(より)大きくなることを理解しておくことが大切だ。モデルが大きくなったとしても、(モバイル)デバイスのフットプリントに収まるようにしなくてはならない。データの型でいえば、当初は浮動小数点型の「FP16」から始まり、「INT8」「固定小数点8」「INT4」と続き、現在では「INT2」の導入が検討され始めている。デバイスに合わせてモデルのサイズをどんどん小さくできることを確認するための動きだ。 そしてハードウェアに投資する段階になると、実際に16bitあった数字が2bitにまで縮小するわけで、当然精度の低下も生じる。そのため、「ダイナミックレンジ」や精度が失われないようにするために、ソフトウェアとツールへの投資も開始する必要が出てくる。
この他、メモリアクセスの帯域幅が限られているという指摘が入ることが考えられる。この問題を解決するオプションは複数考えられるが、重要なのはユースケースを想定した上で、どのようなモデルを使うと問題を解決できるのか、そしてモデルが想定するKPIを達成するためにハードウェア/ソフトウェア/システムにどのような変更が必要なのかを考えることだ。 Qualcommでは、これらスタック全体を注視した上で、方向性を見極めつつ、各領域でイノベーションを推進している。
RNNとCNNについては、2018年の拙著で解説している。
RNNやCNNでは、文章にある単語の前後関係を把握して翻訳を行っていたが、長文になるほど関係性が希薄になり、精度に問題が生じるという課題があった。その点、TransformerはRNNやCNNとは全く異なるアーキテクチャであり、Googleの技術者が執筆した論文で詳しい仕組みが解説されている。
スカマー氏も言及したこの論文で興味深いのが、主題が「文章翻訳の世界」だったことにある。今日の生成AIにおける驚異的な文章読解と生成能力は「ChatGPT」を始めとした最新のAI利用に大きな影響を与え、RNN時代とは異なるステージの世界を体験させてくれている。
ユースケースの想定も重要だ。例えば、昨今のNPUやGPUには、演算精度をあえて落とすための仕組みが積極的に搭載されるようになった。AI推論の高速化と、低消費電力化を両立するためだ。
ただ、スカマー氏は「重要なのは(低精度演算の)適用先だ」とした上で、次のように語っている。
例えば精度がより失われる「INT2」演算は、自動車の自動運転の世界には適用できない。ADAS(先進運転支援システム)では精度の高さが非常に重要で、これが失われるのは大きな問題となるからだ。 したがって、低精度演算は消費者向けのIoTデバイスやスマホにおける画質向上で使うなど、領域によって(演算精度は)使い分ける必要がある。
少し言い換えると、ハードウェアやソフトウェアスタックの構成はターゲットとする市場を見極めて設定されるべきということだ。現在、Qualcommは車載デバイス方面での活動も盛んに行っている。当然、ターゲット市場搭載されるハードウェアの構成も変更されることになる。「One size fits all」(1種類で全てをまかなえる)という状況にはなり得ない、という話だ。
●Snapdraonシリーズにおける「AIハードウェア」の実際
先述の通り、スマホ向けCPU/SoCのNPUでは、大量のMAC演算を高速かつ低消費電力で実行できるかが重要になってくる。個々の計算そのものには依存性はないため、並列処理をいかに効率化できるかが重要となる。
同様の処理はGPUでも可能で、元々は深層学習と推論の実行はどちらもGPUが得意とする領域だった。それは現在も変わらない。しかし、GPUとNPUを比べると低消費電力時における効率性において、最も大きな違いがデル。
他方、こうした大量の並列演算はCPUでも「SIMD演算」の形で命令系統に組み込まれている。代表的なものがIntelのCPUにおける「MMX(Multimedia Extensions)」や「SSE(Streaming SIMD Extensions)」だ。場合によっては、CPUがAIにまつわる演算を担うことが考えられる。
Snapdragonシリーズでも、CPUコアの「Oryon」、GPUコアの「Adreno」、そしてNPUコアのHexagonがAI処理を“分担”している。
例えば、従来からある「コンピュータビジョン」のような画像認識の世界では、Transformerモデルは利用されず、実行に最適な演算ユニットも異なる。またNPUは精度を犠牲にしてスピードと実行効率を重視する傾向にあるため、ADASのようにユースケースには不向きだ(この場合GPUの利用が好まれる)。この他、AI処理としては軽いものの、レスポンス(応答速度)を最優先するユースケースもある。
レスポンスと低消費電力を両立したい場合、特定機能を担う簡易的なNPUを用意するいう手もある。昨今のSnapdraonシリーズであれば、カメラの画像処理を担うイメージプロセッサ「Spectra」は補助NPU「Sensing Hub」を使って高速かつ低消費電力で画像に関する処理を行っている。
レスポンスそのものを優先するAI処理なら、処理系統としては最もレスポンスの良いCPUコアでSIMD演算を実行してAI処理を行うというケースも想定している。
このようにハードウェア全体でベストな実行形態を模索しているのがSnapdragonといえるだろう。
ただ、実際のところ、スマホのようなモバイル端末にとって、LLMのような処理はまだまだ“重量級”というのが実情のようだ。
Snapdragon 8 Eliteを搭載したリファレンスデザイン(QRD)のスマホで「Qwen2.5-14B」(※1)が稼働するデモを見たのだが、度重なるデモと周囲の外気温の暑さでサーマルスロットリングがかかったのか、応答が返って来るまでに数十秒程度待たされた。本来は「数秒」を想定したようだが、それよりも大幅に時間を要していた。
(※1)説明員は「Llama」が動いていると言っていたが、画面にはQwen2.5-14Bが表示されていた
NPUを活用したとしても、ハイエンドスマホでハイエンドモバイルゲームを高FPSで動かした時と同じくらいに発熱している状況なので、「優秀なAIエージェントを常にスマホでで動作させておく」というのは、もう少し先の未来の話なのかもしれない。