ハイエンドスマホ向け新型SoC「Snapdragon 8 Elite」にみる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の“どこ”を“どのように”強化するのかという方向性を的確に探れるかどうかが、半導体メーカーの腕の見せ所となる。