元半導体設計屋 筑秋 景のシリコン解体新書

今までできなかったパーソナルAIをもたらす鍵となるIntelのCore Ultra

 今話題のAI、そして新たに注目を集めつつある「AI PC」という観点から、Core Ultraのマイクロアーキテクチャと、そのNPUのアーキテクチャについて、これから2回に渡って説明する。

 現在のAIは、ほとんどがクラウド上での処理に依存している。スマホのような携帯端末でも、「あの音楽は何ですか」などと聞くとき、携帯電話のセンサーを経由はしているものの、処理はほとんどクラウドで行なわれている。これには、いくつかの課題がある。

 まず、レイテンシーが問題になる。もし演算処理をローカルでできると、今より品質がはるかに向上し、レイテンシーを大幅に低下させることができる。

 クラウドサービスではプライバシーの問題もある。たとえば、自分のことをなんでも知っているようなデジタルアシスタントが欲しいとしよう。デジタルアシスタントに対して、全ての財務情報や、医療情報、電子メールにアクセスを許可する。そうする理由は自分専用の高度なデジタルアシスタントを築くためだ。

 ただ、情報にアクセスさせる必要があるが、その情報はクラウドに流したくはない。そこで、ローカルで処理することで、このような新しいユースケースが現実的になるのだ。

 おそらく、利用コストもずっと安くなるだろう。なぜなら、今日のAIはISVが自らクラウドサーバーを構築するか、レンタルする必要があり、多くの小規模なISVにとって大きな費用が負担としてのしかかるためだ。

 クライアント上でAI処理をアクセラレーションすることで、AIの利用状況は劇的に変わると言える。少なくともIntelはそう思っている。視線補正、背景除去、ノイズリダクションなど、クライアントAIとしてすでに実現されているものは理解しやすい。では今後はどうなるのだろうか?

Windows向けに戦略的にMicrosoftと協業を行なうIntel

 まず、現時点で利用可能なユースケースを見てみよう。IntelはMicrosoftと協力して、OpenVINOのWindows Studioエフェクトパッケージへの統合に取り組んでいる。Windowsには、Windows Studioエフェクトと呼ばれるAI機能が実装されている。これはライブラリとして提供されており、ビデオ会議向けにWebカメラでのぼかし、フレーミング、ノイズリダクションなどをより迅速に利用できる。

 そして、おそらく最も重要なことになると思うが、NPUでのネイティブアクセラレーションを実現するDirect MLなど、IntelはMicrosoftが提供する全ての主要なAPIとCPUを直接連携できるようにしている。

 IntelとMicrosoftとの戦略は非常にシンプルだ。それはIntelがMicrosoftにとって最高のプラットフォームになりたいと考えているということだ。これまでIntelは、PCアプリケーションを通じてMicrosoftと長い間協力関係を築いてきた。今はソフトウェアAPIが全てになっている。

 推論アプリケーションは、基本的に非常に抽象化されたAIを実行する方法であるWinMLのような非常に高水準の言語で記述できる。または、DirectMLで少し低いレベル(ハードウエア側に近くなるという)にすることもできる。

 ちなみに、Microsoft TeamsはWindows Studioエフェクトを使用している。ソフトウェアスタックでどのように見えるかというと、上図の紫色のパスになる。Windows Studio、Microsoft Teamsがそのエフェクトライブラリ、ウィンドウを呼び出していると想像できる。Windows Studioエフェクトは、効果的にOpenVINOを統合しており、紫色のパス全体は、アプリケーションに対してほぼ透過的なっているのが分かる。

 Windows Studioエフェクトのライブラリには、ドライバ、ファームウェア、ハードウェアなどが含まれているので、高いレバレッジポイントになる。

 そして多くの人々がONNXランタイムを利用しているが、これは多くのプラットフォーム向けにAIコーディングを行なうためのオープンな方法になる。

 Adobeは、AIアプリケーションを作成するためのインターフェイスとしてDirectMLを使用している。クリエイティブ系アプリケーションで、フィルタや生成機能を使うと、DirectMLが使用される。GPUのUMDドライバからソフトウェアスタックを経由し、ファームウェアを介して、最終的にはGPUのハードウェア上で実行される。

 AdobeはソフトウェアレイヤーでどのIPをどこのAI処理で実行したいかを選択することが可能であり、APIの非常に高いレベルで行なうので、NPUで実行したいと考えた場合にもすべてのスタックが動作する。いままでならAIエンジンがほぼ一択であった状況から、複数IPの選択が可能になり、使用者にとっての最善の環境に対応できるように進化したということになる。

Core Ultraでもたらされる新たなAI利用シーン

 PCは我々に近い場所に存在しているので、我々の生活で何が起こっていることを理解できる。PCは家のセンサーを読み取ることができ、PCが存在している近所のことも理解できる。そしてコンテキスト認識型AIの支援により、PCは何をすべきかを所有者にアドバイスできるようになるだろう。

 コンテンツ生成ではどうなるだろう? クライアント上での生成AIはどのような意味を持つのだろうか? クライアントでは個人データにアクセスできるので、本人のデータを使って新しい写真や、スピーチを生成するなどができるようになるだろう。現在想像できることよりもっと個人的な要求に対する支援だと考えられる。何が起こるかは無限大といえる。

 このような今までになかった新しい体験を実現するため、言い換えるとクライアントでの推論処理のためのハードウェアアクセラレーションが必要となる。この「AI PC」への移行をうまく実現するために、Intelは2つのことをしなければならないと説明している。

 まず、可能な限り電力効率の高いAI推論エンジンを作らなければならない。何百万台ものモバイルデバイス向けの話だからだ。効果的かつ高効率なAI処理エンジンが重要になる。

 もう1つは、ソフトウェアに関するもの。簡単なソフトウェアベースがなければ、導入に苦労することになる。Intelの戦略は、オープンAPIをスタック全体で使用することだ。Intelは企業として、これらの活動を他人に頼ることはできないと言っている。その結果、Intelによる直接的なスタック開発がますます増えていくだろう。

 そして次のステップはマルチIP戦略だとIntelは明言している。AI処理を行なうチップには、CPU、GPU、NPUがある。ほとんどの半導体企業の製品では、3つのうち1つは実装しているだろう。

 そんな中、Intelが直近の成果として投入したCore Ultraがその3つとも実装するのは、それらの最適な用途が違うからだ。

 現在クライアントで発生しているAIワークロードのほとんどは、VNNI命令アクセラレーションを使用してIntel CPU上で実行できる。このソフトウェア環境を有効に使用してもらうためにIntelは、この1年間で何百ものISVと協業してきたという。

 だが一般的にAI処理にはCPUよりGPUの方が適している。ローカルに大容量のメモリがあり、帯域幅が非常に広く、計算密度が非常に高くなるためだ。Core UltraのGPUにはDP4A命令があり、AIの主要な操作である行列の乗算を最適化するため使用されている。

 Core UltraにはNPUもある。NPUは長時間の持続的なAIワークロード、あるいは中程度の集中的なアプリケーションに向いている。

AIワークロード処理の複雑さと性能の相関

 上の図の横軸はAIワークロード処理の複雑さを示す。この複雑さとは、モデルのサイズの種類や、作業しているデータセットの大きさなどで、コンピューティング密度と言える。縦軸は基本的には1秒あたりの推論性能になる。

 この図で示されているのは、複雑でないAI処理はデータをどこにも移動する必要はなく、作業を開始することができ、CPUでより効率的に実行されるということだ。デバイス内のタスクの切り替えに関するオーバーヘッドが少ないためだ。つまり、CPUは小さな推論を非常に効率的に迅速に実行できる。しかし、複雑さが増すにつれて、NPUの方がCPUよりもパフォーマンスが向上し、かつ消費電力が低下するのが分かる。

実際のAIアプリでのCore Ultraアーキテクチャの効果

 実際のアプリとしてStable Diffusionでの猫の画像生成の手順を例に、Core Ultraでの3つのAIエンジンによる比較を見てみよう。

Stable Diffusionでの猫の画像生成の手順

 まずStable Diffusionでは、テキストプロンプトを受け取る。そして、ノイズリダクションエンジンに対するヒントを生成する役割を持つニューラルネットワークがあり、そのあとにイテレーションを行なう。

 時系列では、テキストプロンプトを一度実行し、2つのユニットで画像生成の拡散、そして複数回のイテレーションを行ない、そのサイクルを繰り返す。やっていることは、ノイズを除去し、画像に近づけることだ。

 さらに複雑さを低減させる手法として、実際の画像空間で動作させるのではなく、潜在空間と呼ばれるもので動作させる。潜在空間とは、圧縮された画像と考えることができる。ピクセルではなく、40分の1に圧縮した潜在的なデータで動作させている。最終的にイテレーションが終わると、変分オートエンコーダ/デコーダを使って、潜在空間からピクセルに拡大する。

Stable DiffusionでのCPU、GPU、NPUの性能と消費電力の比較

 この推論処理の結果と使用したAIのエンジン(CPU、GPU、NPU)IPを見てみる。一番左側はCPUでそのアルゴリズムを実行した場合を示している。CPUでの処理だとかかる時間は43秒、消費電力は40Wになる。

 これがGPUでの処理だと14.5秒、37Wになる。つまり、GPUでの処理はCPUのみの場合より3倍ほど高速になる。

 左から3番目ではNPUでの処理になる。この例では主にUnetが動いているケースになる、Unetなのでイテレーションが繰り返し行なわれる。処理時間は約20秒で、GPUより少し長い。しかし、電力は10Wに下がっている。

 ここで興味深いのは一番右側の結果で、ワークロードを3つのIPに分散させるケースだ。NPUで1つのUnetを実行し、GPUで別のUnetを実行する。結果としてこれが最速になる。最速の11.3秒だが、GPUを使用するため消費電力が上昇する。

 このようにAI推論処理はIPを組み合わせることで効率を上げられる余地が多いことが分かる。そこでソフトウェアスタック側は、アルゴリズムを複数のIPに対応させる必要がある。

 IPで分割すると、CPUがベースとすると、GPUの方が電力効率が約3倍高い。推論結果の1秒あたりの消費電力は新しい指標であり、NPUはCPUよりも約8倍高くなっている。そしてGPUと組み合わせると、最高のパフォーマンスが得られるが、電力効率の低い推論エンジンも使用するので電力効率は低下する。今後、新しいIPがたくさん登場すると思うが、ほとんどの新しいIPは利用するのに複雑さが生じると予想される。

 AI PCの別の応用例としてテキストからオーディオへの変換を行なうデモを紹介しよう。まず、Audacityに組み込まれたOpenVINOとRiffusionプラグインを使って、オーディオを音楽トラックとボーカルトラックに分ける。次に、Stable Diffusion v1.5のモバイルモードルパイプラインを利用し、テキストプロンプトに基づいて音楽の雰囲気をEDM風に変更するということができる。

 ここでは、CPU、NPU、GPUを使って処理を行ない、ノイズ除去とノイズ除去ヒントの生成を何度も繰り返し、徐々に元の曲からEDM調の歌へと変えている。Core Ultra PC上でクラウドのサポートなしにAI推論処理が性能が飛躍的に高まったからできることで、今後、飛躍的にAIの利用シーンがクライアント上で増えてくる可能性を示している。

 今日のエコシステムが新しいAIアプリケーションを実行し、作成する方法は、少なくとも4つのAPIに分かれている。そして4つの異なるAPIから、3つの異なるIP(エンジン)に到達する必要がある。難しいことなのだが、その3つのIPの最適化が実現できれば、性能と効率において大きな進化が期待できる。

 それは、OpenVINOを使って実現できる。つまりソフトウェアスタックがAPIの間でIPまでの接続を確保するということになる。ハードウェアには複数の異なるレイヤーがあり、このレイヤーを利用して、IPとアプリケーションの間で活用を最大化している。

 これらがIntelのクライアントでのAIの全体像、特にソフトウェア戦略の概要になる。個人的にこの考え方は正しいと思う。PC上での新しい使い方が登場してきたときと同じ道筋を辿っているからだ。

 始めはソフトウェアとCPUの性能を最大限に利用して新しい利用シーンが実用になり始める。その後、アクセラレーター機能をハードウエアで実装していく。

 AIのクライアント側の処理もソフトウェアの力を利用できるエンジンがCPUとGPUの2つがあり。アクセラレーターとしてのNPUがすでに実装されてきた。これはヘテロジニアスアーキテクチャの環境への進化をしつつの正常なPCの進化の変曲点をみているのだと思っている。