Surface Pro 9 with 5GやProject Volteraと言われたArmプロセッサWindows PC「Windows 開発キット 2023」が発売され、ハードウェアレベルでのWindowsの進化がより進みつつあります。
ただ、ここで話が出てくるNPUとどのような関係があるのか?今後のWindowsはどのような展開があるのか書いてみたいと思います。
Windows 11のWindows Studio Effects
まず、Windows Studio Effectsについてお話ししまょう。Windows Studio Effectは、Windowsのカメラ映像や音声入力に下記の機能を与えます。
- 背景ぼかし
カメラに映っている人物の背景をぼかして映します。人物の映像をリアルタイムに検出して、背景をぼかかします。 - アイコンタクト(視線の補正)
カメラに映っている人物の「目」がカメラ目線になるように映像を補正します。 - 自動フレーミング
カメラに映っている人が移動するした場合に、人に合わせて画面の枠(フレーム)を移動させます。常に人を追うようにします。 - 音声フォーカス
「喋っている人の声」以外を除去します。近くにいる他の人の喋り声や騒音などを除去して鮮明でクリアな音声を入力します。
特定のアプリケーション向けではなくWindowsのカメラ入力、音声入力の機能になります。よって、TeamsだけではなくZoomやWebex、その他カメラと音声入力をするすべてのアプリケーションから使うことができます。
これらの機能には映像と音声をリアルタイムに識別して補正する処理が必要になります。ここでNPUが活躍します。Windows Studio EffectはNPUを搭載したデバイスでないと機能しません。現時点ではArmプロセッサのQualcomm SnapdragonとMicrosoft SQ3のみが対応しています。
NPUとは?
では、ここで出てくるNPUとは何かをお話しします。NPUとはNeural Processiong Unitを示します。
ニューラルコンピューティング
そもそもNPUで実現するニューラルコンピューティングとは何でしょう?
人間の脳細胞を模したもので、脳内の神経細胞(ニューロン)とニューロン同士を接続するつながりであるシナプスから構成されます。下図の丸がニューロン、線がシナプスです。一例ですが、入力した情報(例えば画像)から条件を抽出してそれらの関連性のかさみ漬けから答えを導きだしていきます。下図では左側が情報の入力、中間が推論過程、右側が答えになります。よくある例が、犬と猫の画像を読み込ませて、それぞれの特徴の情報から選別して最後に犬か猫かを判定するものを見たことがあると思います。
これが沢山の情報から判定する必要があり、「複数の処理を同時に」行わなければなりません。また、この過程で複雑な数値計算は必要としません、大抵は「行列計算」であり実際は「加算」か「乗算」を行います。よって浮動小数点演算のような機能ではなく単精度の整数演算で十分なのです。
もちろん、推論するための学習データを出すトレーニングと、推論する手法もあります。ここでは割愛させていただきます。
Windows Studio Effectsから見ると、背景ぼかしをするために「人の形」を見極めて、映像の中のどこまでが人でどこからが背景なのかを割り出さなけはなりません。映像から「人」である部分を推論するのです。自動フレーミングについても同様でしょう。映像の中から動いている人を割り出します。同様にノイズキャンセリング機能も主に話している人の声とバックの騒音、他の人の会話を分けなければなりません。それをリアルタイムに行っています。同時に入ってくる沢山の情報を同時に処理しなければなりません。
NPUがもたらすもの
さて、入力された沢山の複数の情報を同時に処理するものが必要です。CPUとGPUでできるんじゃない?と考えるとそれぞれ特性が違うのです。
- CPU
CPUは原則、シーケンシャルな処理をします。入力があって、計算をして、出力する。この処理を順番に一つ一つ行っていきます。しかも高度な計算を行います。マルチコア、マルチスレッドで同時に処理できるのですが、数十個くらいです。最新の第13世代CoreプロセッサのCore i9-13900でも32スレッドです。(まあ、厳密にはPコアEコアと処理能力も分かれるのですが)ただし、その一つ一つが高度な計算を行います。映像や音声などの非常に多くの複数の情報を同時にこなすのにも限界があります。 - GPU
GPUは基本的に、映像にしたい情報入力して、画像にするために計算をして、画像の情報にして出力します。こちらも複数の多くの情報を同時に処理しています。複数の処理をする単位としては(注:超乱暴な言い方をすると)NVIDIAのGeForce RTX4090は16,384の同時処理を行います。一方、CPUほど高度な計算を行うわけではありません。そういう意味ではニューラルネットワークなどのAI的な処理に向いていますし、現実的に扱われています。
一方、演算内容としては高精度な浮動小数点演算も行います。それと同時に処理費電力も高くなります。AIの処理としてはそこまでの演算能力は必要としません。 - NPU
NPUはGPU同様に複数の情報を同時に処理する仕組みを持ったAI処理に特化したプロセッサです。32ビット浮動小数点演算ではなく16ビットや8ビットの整数演算を高速に処理します。しかも、複雑な計算を行うこともなくGPUほど消費電力が高くありません。先にお話しした「行列計算」に最適化されたプロセッサとして誕生しました。
よって、ニューラルコンピューティングはCPUとGPUで賄えていたのですが、更に効率よく低消費電力で処理するNPUがあるということです。CPUとGPUにもそれぞれ仕事があり、その他のAI的な処理はNPUに任せるというトレンドになってきます。特にスマートフォンの世界ではカメラ機能や各種認識機能をはじめとしてNPUが活躍しています。
また、ニューラルコンピューティングにおいては「トレーニング」と「推論」というフェーズに分かれています。特にモバイル系では「推論」の機能に注力していることもあります。つまりトレーニング済みの学習情報を持っており、そこから推論する動きになっているようです。
Qualcommの展開
QualcommのSOC Snapdrgon 8cx Gen3には下記のトレーニング情報を持っています。ここからデータを入力して推論させてWindows Studio Effectsなどに適用しています。「オートフレーミング」「ノイズキャンセル」「音声アクティベーション」「顔検出」「ジェスチャートラッキング」などをサポートしています。
また、QualcommはMicrosoft SQ1の段階でWindows Studio Effectsのアイコンタクトの機能を実装し始めていました。(AI Accelerated Experiences & Security with Windows on Snapdragon – Qualcomm Developer Network)
Windowsにはどう展開されていくか?
Ignight 2022の動画(*1)ではMicrosoftのGroup Program managerのFred Balsigerさんがこのように言われています。
「Windows Studio Effectsは特定のハードウェアSnapgradon 8cx Gen3(Microsoft SQ3のベース)で動いている。他のOEMやハードウェアベンダーとも連携する。デバイスとWindowsエコシステムを構築し続けるためにも Windows Studio Effects は公開する。」
「将来、有望なNPUにWindows Studio Effectsを採用する計画もある。したがって、業界全体の将来の技術がこれらのNPUを活用し、すべてのWindowsマシンでWindows Studio Effectsのますます広範囲なエコシステムが見られるようになるでしょう」
そのためにはNPUを活用するライブラリが必要です。現時点ではQualcommのSnapdgrgonに特化した仕組みとなっているようです。
「Windowsの場合、QualcommはSnapdragonのNeural処理エンジンAPIを利用できるようにしている。(*2)これでNPUで直接処理できるようになっている。とはいえ、特定のハードウェアアーキテクチャを抽象化して、開発者向けのより包括的なソリューションに取り組んでいる。これについては来年のBuildまでに情報を提供していく。」(Fred Balsigerさん)
今後はCPU、GPUに続く重要なデバイスとしてNPUが活用されていくことをマイクロソフトは明言しています。Windows Studio Effectsだけではなく、AIの機能を生かした機能追加が望まれます。
(*1) Demystifying AI NPU and Machine Learning within Microsoft Surface to enable better | OD25
(*2) Mobile Development – Qualcomm Developer Network
Qualcomm Neural Processing SDK for AI – Qualcomm Developer Network
IntelとAMDのAI機能
NPUを活用したWindowsのAI機能はArm版Windowsマシンだけなのでしょうか?現時点ではそうなります。但し、上記に書いた通り「将来、有望なNPUにWindows Studio Effectsを採用する計画もある。」とマイクロソフトは言っています。インテルやAMDがNPUを出せばまたは現行CPUに内蔵すれば、自ずと対応されるのではないかという期待があります。
ここからは推定のお話になります。インテルとAMDはNPU(またはそれに準ずるもの)にどのように対応していくのでしょうか?
IntelはNPU外付けとNPU内蔵の流れに
インテルは「XPU」という考え方でCPU、GPU、NPUを統合を計画しています。インテルでは第10世代Coreプロセッサ(Ice Lake)でIntel GNA(Gaussian & Neural Accelerator)としてAIアクセラレータを投入しています。いくつかのOpenVINOとしてAIソリューションとしてSDKの公開はしているもののWindows Studio Effectsにはまだ適用されていません。
その中で第14世代CoreプロセッサにあたるMeteor Lake、第15世代Coreプロセッサと想定されるLuner Lakeには「Integrated AI Accelaration」としてAI処理の特化したNPU相当の機能が入ることが発表されています。(予定ですが)
2024年にArrow LakeとLunar Lakeを投入 インテル CPUロードマップ
CES2023を前にインテルは第13世代CoreプロセッサのノートPC対応版の発表を行っています。その中で、NPU(インテルではVPU(Visual Processiong Unit))を外付けにすることを可能としていることを発表しています。第14世代CoreプロセッサへのNPU(VPU)に内蔵に向けての布石と言えるでしょう。
ノート向け第13世代CoreにEコアが8つ増えた「HX」と、L2キャッシュ増量の「H/P/U」が登場。いずれも高クロック動作
AMDはZen5アーキテクチャでAIE搭載
一方、AMDはZen5アーキテクチャでAIE(AI Engine)と呼ばれる旧Xilinx(AMDが買収)の技術が適用されようとしています。
Zen 4は5nmと4nmを投入、Zen 5では3nmプロセスに AMD CPUロードマップ
モバイル版RyzenにRyzen AI Engineを搭載
2022/1/5 22:27追記
AMDがモバイル版RyzenにRyzen AI Engineの搭載を発表して、Windows Studio Effectsに正式対応することを発表しました。
AMD CES 2023 Update – Ryzen 9 7950X3DとCore i9-13900Kの比較など新製品の情報を追加、隠し玉も
これらのプロセッサメーカーの技術とつながる可能性は大きいと考えています。今後のハードウェアとWindowsの関係にも注目していきます。