2024年のIntel NPU
Meteor Lake世代ではMyriad XをDual構成にしたものがNPUとして搭載される、という話はこちらの記事でご紹介した通りであり、Arrow Lake世代もこれを引き継ぐことになる。Meteor LakeベースのCore Ultraの場合は動作周波数が1.4GHzと発表されており、性能は11TOPSとなっている。このNPUは第3世代という扱いであるが第2世代、つまりDiscrete製品で投入されていたMyriad X VPUは4TOPS以上という説明だったから、ユニットを倍増した他に動作周波数の向上(Myriad Xは933MHz駆動)やActivation専用ユニットの搭載、効率の向上などによりさらに性能を引き上げた格好である。
ではArrow Lake世代は? という話であるが、昨年10月に開催されたIntel Innovation 2023の基調講演で、Acerが披露したLunar Lake搭載の試作ノート上でRiffusion及びStable Diffusionをローカルで実行するデモが行われている(Photo02)。この際の説明が"Gen 3 NPU"だったので、基本的にはMeteor Lakeの延長というか、大きくは変わっていないと考えられる。ただ動作周波数がもう少し上がっているという事は考えられるが、Meteor Lake世代で11TOPSだからこれが20TOPSになったり、という事はちょっと考えにくい。
もっともArrow Lake-Sの場合、そもそもNPUはどこに入るんだ? という話がある。Meteor LakeはSoC Tile上に実装されていた訳だが、Arrow Lakeでは別にPCHが搭載されるからそもそもSoC Tileの機能の半分くらいが不要になる。Meteor LakeのSoC Tileの構造はこちらで、これをArrow Lakeも引き継ぐのは間違いない。ただし、Arrow Lake-Sはこのブロックで言う上半分、NOCに繋がった所だけが有効化され、IO Fabricにぶら下がった周辺回路は全て無効化され、代わりにIO Fabric経由で繋がったIO Tileの先にDMIが用意され、その先にPCHがつながる格好になると思われる(Photo03)。こういう状況であれば、SoC Tileの動作周波数を全体的に引き上げるのは難しくないだろうし、そうなるとNPUの方ももう少し動作周波数を引き上げて15TOPS位を狙うのは難しくない様に思われる(20TOPSまで引き上げるのはやはり厳しいだろう。勿論NPUを3 Engine構成とかに出来れば実現可能だが、その公算は低いと判断している)。
Intel NPUの問題は、性能云々より前にソフトウェア側の問題である。とにかくOpenVINOが安定しないのが最大の問題で、Release毎に動いたり動かなかったり、という話は結構流れてくる(なんとなくIntel Arcのドライバが安定しない事を連想させる)。Release 2023からはAPI 2.0も導入されているが、これが既存のMyriad Xの開発者に不評、という話は何度か耳にした(まぁArrow Lake世代でこうした既存の開発者がどの程度対応を予定しているのか? というのはまた別の問題ではあるのだが)。現時点での最新リリースである2023.0.2のリリースノートを見ても、Release 2024.0で削除される機能の一覧とかが結構並んでいて、大変そうである。まずこれを安定化させるのが先という気もする。
2024年のAMD NPU
こちらもRyzen AIという名称でまずRyzen 7040シリーズで10TOPSのXDNAエンジンが搭載、Ryzen 8040シリーズで動作周波数を1.6倍にして16TOPSの性能を実現した訳であるが、これに続きStrix PointではXDNA 2が搭載されることが予告されている。このXDNAは、元はXilinxのVersal AI Edgeに搭載されていたAI Engine-MLである。オリジナルはVersal AI Coreに搭載されていたAI Engineで、これはこちらの記事で説明したようにVLIWベースのPE(Processing Element)を2D配置にした仕組みである。AI Engine-MLではこれにINT 4やBF16の対応を追加することで、特にInference性能を大幅に引き上げている。
既にVersal AI Edgeの世代でINT 8で7~228TOPS、INT 4ならその倍近い性能を持つ訳で、例えば元々のRyzen 7040シリーズにはVE2102と同じ構成(AI Engine-MLが12個)のものが搭載され、Ryzen 8040はハードウェア構成を変えずに動作周波数だけ引き上げたものと考えられる。ではStrix Pointは? というと、従来比3倍という話なので、恐らくはVE2202と同じくAI Engine-MLが24個搭載され、それをRyzen 8040と同じく1.6倍位の動作周波数で動かすことで3.2倍というあたりかと思われる。ただひょっとすると、FP8とかINT 1のサポートも追加され、同じ構成でピーク性能は2倍(FP8)~4倍(INT1)というあたりなのかもしれない。
ちょっと気になるのは、このXDNA EngineがDesktopの場合どこに搭載されるか、である。Ryzen 7040の場合はMonolithicだったのでGPUとかに並んで搭載されていた(Photo04)訳だが、Desktop向けのRyzenでは恐らくIoDになるのだろう。という事は製造プロセスはTSMC N6と思われるし、そんなに大規模なエリアサイズは取れないだろう(GPUもあるのだし)。となると、Desktop向けのRyzen 8000シリーズに搭載のNPUもStrix Point同様のXDNA2のままで、性能的も同程度(30TOPS前後?)に落ち着くかもしれない。
ちなみにソフトが問題なのはAMDも一緒であるが、幸か不幸かZenDNNなどの旧来のフレームワークを使っている開発者は非常に少ない。同社はもうONNX Runtimeを前面に押し出し、アプリケーション開発者はONNXを使う様にすればいいという形で互換性をアピールしている分、OpenVINOを抱えるIntelより状況はマシかもしれない。