Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

【編集後記】AI HWアクセラレートの話 〜 AIを身近なものにする「NPU」という存在

最近になってAIが急激な盛り上がりを見せた。第4次AIブームと呼ばれるこの盛り上がりはChatGPTやStable Diffusionがそのきっかけであると言われているが、ハードウェアとしてのAIの盛り上がりはもう少し先から起きている。

AIとハードウェア

そもそもとして、AIは特徴的な演算体質を持っている。CPUでもできない訳では無いが、並列演算できる装置、あるいはAIに特化した装置があれば高速に動作する。似たように、CPUでもできるが、専門の機構を備えることで高速化・効率化している例としてはGPUがある。現代のOSのデスクトップ環境がGPUアクセラレーションを前提としている関係でPCに必須要素のようになっているが、そもそもデスクトップ環境を使わない場合GPUは必要ない。VPSなどの一部のサービスではCPUのみでサービスを提供している。

AIの場合どうであろうか。AIももちろんCPUとGPUで処理できる。ただし、AIが必要とする巨大なベクトル演算などは、CPUやGPUにさせることもできるが、リアルタイムなレスポンスを受けるには性能不足な側面がある。また、ビッグデータなどで学習するのがAIとしての本質であるならば、CPUやGPUだけでトレーニングするのは不十分である。そこで登場するのがNPUである。

そもそもGPUは「グラフィック処理」を専門とするユニットであり、AIに特化していない。例えば、CUDAコアはFP32精度で演算を行っているが機械学習をする上では少ないビット数のほうが好ましいとされる。そのため、NVIDIAのNPUであるTensorコアではより低いFP8やBfloat16などのミニフロートと呼ばれる演算に特化している。このミニフロートが機械学習の処理に用いられる理由としては、メモリの読み書きが減りオーバーヘッドを削減できる点、演算速度の向上、情報伝達の効率化などの恩恵がある。汎用的な演算には向かないが一部の演算では大きなメリットがある。このようにGPUの補完を行うアクセラレーションこそがNPUなのだ。

NPUはもっというと、ベクトル演算を得意としている。これもAIの処理を向上させるための工夫である。先述の通りCPUやGPUでは、巨大なベクトル演算を処理するのには向かない。一方でそれ専用のユニットを用意することで、AIを高速化するというのが最近の方策だ。

NPUを必要とする理由

AIがHWアクセラレートを必要とする理由は、リアルタイム性が求められる場面がある上でCPUやGPUではそれに応えることができないことがあるためである。あるいは、ビッグデータを扱う上でCPUやGPUだけではあまりにも遅すぎるためである。

まず、普段われわれがパソコンやスマホを持っているとして、大体のリアルタイム性が求められる処理というのは、そもそもCPUやGPUが高速であったり、サーバーサイドに送られて後々サーバーでまとめて処理する(バッチ処理)などさまざまな要因で高速にレスポンスが受け取れる。一方で、AIは入力・出力に関してCPUやGPUではこなしきれないタスクをリアルタイムで行うことが求められる場面がある。そういったときにNPUを用いれば高速に処理することができる。

例えば、Siriのようなスマホ上で動作する音声アシスタントの処理は長らくローカルではなくサーバーサイドで行われていた。そのため、アラームの設定のようなローカルで完結する処理の指示をしてもインターネットがなければ利用出来ないという時期があった。しかし、Siriの処理を行う上で十分な性能があるAppleのNPU「Neural Engine」があるiPhone XR/XS以降のiPhoneiPadではオンデバイスでSiriが動作するようになった。

オンデバイスAIというのはセキュリティやプライバシーの声が高まる中で重要なものとなった。NPUというのはそれを実現するためにも必要なものなのである。

各社のNPU

NPUというのはまだ歴史が浅いユニットである。そのため、名称は各企業さまざまである。そして、そもそも一貫した名称が無いためブランド名のみで呼称している場合がある。

例えば、Qualcommは「Qualcomm AI Engine」という呼称を使う。そして「Hexagon」というブランドでSnapdragonに展開している。

NPUの各企業の呼称/ブランドを時系列順にまとめてみた。

企業 呼称 登場年
Google TPU(Tensor Processing Unit) 2015頃
Qualcomm DSP(Qualcomm AI Engine) 2016(Snapdragon 820)
Apple Neural Engine 2017(Apple A11 Bionic)
NVIDIA Tensor Core 2017(Volta)
Intel Vision Processing Unit 2017
Google Pixel Vision Core 2017
MediaTek APU(AI Processing Unit) 2018
Arm ArmML 2018
Google Pixel Neural Core 2019
Intel VNNI(DL Boost) 2020(Ice Lake)
Intel GPU Intel Xe Matrix Engine(XMX) 2022(Intel Arc A)
AMD GPU Radeon AI Accelerator 2022(RDNA 3)
AMD APU Ryzen AI(XDNA) 2023(Phoenix)
Intel Intel NPU 2023(Meteor Lake)

さらに、これらのNPUは大本は別の企業が開発したという例もある。例えばIntel VPU/NPUは元を正せばMovidiusという企業のIPであるし、Ryzen AIはXilnxのFPGAである。特にRyzen AIの面白いのは中身がソフトウェアでチップの機能を変更することができるFPGAであるため、他のNPUより後々の機能追加が容易であるなどの利点がある。

NPUの形

NPUは振興ユニットということもあり、様々な形がある。

例えば、NVIDIATensor Core、AMDRadeon AI、IntelのXMXはそれぞれGPUに搭載される「GPU内蔵タイプ」がある他、そうでなくても「CPU内蔵型」と「独立型」に分けられる。GPU内蔵型のNPUは基本的にGPUに対するアクセラレーションを提供するものであり、GPU支配下にある。その一方で「CPU内蔵型」「独立型」はGPUと対等であり、CPUが支配する。

それぞれの現状を見ていこう。

まず、最もトレーニングに人気であると目されるのが「GPU内蔵タイプ」である。OpenAIのGPTはNVIDIATensor Core搭載GPUによってトレーニングされたことが明らかになっている。「GPU内蔵型」の最大のメリットというのはその柔軟性である。GPUはCPUよりもスケーリングに自由がある。例えば、CPUの場合、ソケット単位でのスケーリングであり物理的なスケーリングに柔軟性は無い。一方でGPUはカード型であることが多くスケーリングにある程度わがままが効く。

もちろんそれだけではない。単純に大規模なNPUというのがそれほど多く存在しておらず、現時点でNVIDIAの一人勝ち状態であるからというのもある。特にNVIDIAマーケティングのところでAIのソフトウェアからAPIやらフレームワークに至るまでフルスタックで提供している。それに加え、圧倒的なAI性能。この実績やサポート面からみて、トレーニングにおいてはNVIDIA GPUが多く用いられる。

次に、CPU内蔵型。これもトレーニングに参入する可能性が高い。現状ではCPU内蔵型はコンシュマグレード中心の展開である。その一方で、Intelは将来的にCPUとGPU、そしてNPUをワンパッケージで提供するXPUというものを提供していくことを明らかにしている。このNPUの規模がどのようなものになるかは不明だが、XPUでは最強の技を使うことができる。それはパッケージ上でCPUとGPUとNPUが協調駆動することだ。AIというのはNPUだけで動くわけではない。あくまでNPUがCPUやGPUが行う演算の一部を担うことで高速化しているので、CPUやGPUも軽視してはいけない。これらが一つのパッケージで、そして一つのメーカーから協調駆動前提で登場するというのはインパクトがある。

同様のアプローチはすでにNVIDIAが「Grace Hpper Superchip」というプロジェクトで「GH200」という製品を発売し実現しているが、これはArmベース。Intelx86で投入してくる。大きな違いとしてx86の資産を使えるというメリットもある。Intelはこの長い期間の実績と資産を活かせられるプラットフォームづくりが今後の重要なキーポイントとなるだろう。

AMDも同様の製品を投入し、Intelと同じ恩恵を受ける。特にAMDはEPYCによってXeonのシェアをかなり崩せたので、この追い風に乗れるかどうかが鍵だ。

こう見ていただければわかると思うが、トレーニング市場においてIntelNVIDIAAMDの熾烈な戦いがうかがえる。

しかし、この状況は今後は変わる可能性がある。例えば、NPUがもっと主流になれば、GPUではなくNPUカードが搭載されることも、XPUよりも優れた形で統合されたNPUが登場することも考えられる。特にMicrosoftやOpenAIは独自でAIプロセッサを開発するとの報道もあるし、GoogleはTPUがNVIDIAGPUを凌ぐAI性能を持つと主張している。NPUが今後どのような進化を見せるのかは注目に値する。

俺等は?

ここまでトレーニング部分のお話をした。トレーニングは大規模にすると数千億どころかもしかしたら兆行くんじゃないかくらいのコストがかかる。現実味がない。

では次にコンシュマーレベルでのNPUのお話をする。

まず、AppleQualcommのNPU、そしてIntel NPUやXMXなどの小規模タイプは基本的にコンシュマー向けだ。例えば、Neural EngineはApple A11 BionicからiPhoneに搭載されているし、QualcommもSnapdragonはコンシュマー向けの製品だ。

これらのNPUはトレーニングには特化していない。するような規模ではない。どちらかというと作られたモデルを使う「推論」にフォーカスがあてられている。例えば、ビデオ通話などの背景ぼかしや、ノイズリダクション、写真撮影時の被写体切り抜きや自動エフェクトなどにAIを用いる場合、それほど大規模でなくてもリアルタイムに処理を行うことが可能。

そして最近話題の生成AIはモデルさえ用意すれば、コンシュマー向けパソコンやスマートフォンで生成することができる。その速度を向上するのがNPUの役割ということになる。

それ以外の利用方法としては、NVIDIAの「Deep Learning Super Sampling」、Intelの「Xe Super Sampling」、Appleの「MetalFX SuperResolution」はそれぞれ、Tensor Core、XMX、Neural Engineを用いたリアルタイムのアップスケーリングを提供している。

こう見れば、NPUの有意義さを理解いただけただろうか。ソフトウェアベンダーはAI機能の搭載を進めている。例えばAdobePhotoshopに生成AI機能を導入した。AppleiOSmacOSに積極的に機械学習機能を取り入れいている。そしてMicrosoftWindowsに「Windows Copilot」という新機能を搭載した。このような機能は今後増えていき主流になっていくことになるだろう。その中でNPUが前提となったOSやアプリケーションが登場することも予想される。

パソコン向けプロセッサの大手は、IntelAMDQualcommAppleの4社、スマートフォン向けにしてもAppleQualcommMediaTekSamsungの4社であるが、この4社共にAIアクセラレータの搭載を進めている。

スマホ向けプロセッサメーカとAppleQualcommはすでにAIアクセラレータを長らく前から搭載しているし、AMDRyzen 7040シリーズから、Intelも12月発売のCore / Core Ultra(Meteor Lake)からNPUの搭載を始める。

これはすなわち、今後数年以内に市場を出回るパソコンの大半がNPUネイティブになるということを意味する。

余談だが、IntelのNPUは内部構造がほとんどXMXであるということがおおよそ明らかになっている。さらに、Intel NPUのドライバの内部構造は、グラフィック機能を除いたGPUドライバだという。そのレベルなのだ。

まとめ

ということで、NPUをざっとまとめてみた。

おそらく今後AIはより身近なものになる。その中で今後のキーワードは「生成AI」とともに「オンデバイスAI」が加わるだろう。どんな辺境でも相手をしてくれるSF世界のAIアシスタントの未来はそう遠くない。

参考リンク