先日Intelはプロセスロードマップを紹介するIntel Acceleratedを開催したが、これに引き続き8月18日に、やはりオンラインの形でIntel Architecture Day 2021を開催して製品ロードマップや新製品の紹介を行った。

ちなみに来週開催されるHotChips 33でIntelはAlder Lake/Sapphire Rapids/Ponte Vecchio/Mount Evansに関して論文発表を行うほか、初日のTutorial Sessionでは"Intel packaging technologies for chiplets and 3D"と題したTechnology Providerセッションを行うことになっている。こちらの方はおそらくIntel AcceleratedのFollow upになるかと思うが、逆にCPU/GPUアーキテクチャに関してはhot ChipsのPreviewが行わることになった形だ。

さて今回のお題はこちら(Photo01)で、11のトピックからなる。8月19日にTwitterのIntel Technologyアカウントが謎のMentionを出したが、答えはこちらという訳だ。以下順に説明してゆく。

  • Photo01: これを2時間半で説明するという、なかなか密度の濃いものだった。

Efficient Core(E-Core)

これはAlder Lakeで投入される、Tremontの後継コア(GraceMont?)である(Photo02)。Tremontの構造は以前こちらで触れたが、この新しいE-Coreである。命令デコードは3命令/cycle×2で、命令キャッシュの大容量化と分岐予測の強化(Photo03)が行われた。ただしDecodeを連動させ、Single Thread動作だと6命令/cycleが可能という構造はTremontと同じである(Photo04)。

  • Photo02: Efficient Coreの全貌。Issue Portが17!である。

  • Photo03: Predictionの詳細は不明。このあたりはHotChipsで何か出てくるだろうか?

  • Photo04: Alder Lakeでは、なのでE-Coreは6命令/cycleで動作することになる。

これに続くAllocate/Rename/Issue段は5命令Allocation/8命令Issueという広大なもの(Photo05)。発行ポートは17に増えた。ALUは同時4つ、Load/Storeも4つで、Jump命令も同時2つ(+Store Dataも2つ)、さらにVector Storeが新設されており、FPUも3命令に強化と、全体的に大幅に性能が強化された(Photo06)。

  • Photo05: TremontはAllocation 4命令、発行ポートは10である。

Memory Subsystemには一見大きな差はない(Photo07)が、何しろAGUが4つもある上に、Buffeingのキューがより深くなるなど、性能向上への布石が打たれている。

  • Photo07: L2のサイズそのものはTremontが最大4.5MBだからあまり変わらない。4コアで共用、というのも同じ。

拡張命令系で言えば、VNNIの搭載とかFMAの性能向上などが挙げられているが、AVX512そのものの搭載は引き続き見送られた模様。まぁE-Coreはサイズに制約があるから、AVX512の実装は難しいだろう。

  • Photo08: んじゃ「Wide Vector」は何の意味かは不明。こちらはHotChipsでもう少し話が出てくることを期待したい。

この結果として、E-CoreはSkylakeと比較して、Single Threadの場合に同一周波数なら消費電力40%ダウン、同一消費電力なら性能40%アップとなり(Photo09)、Multi Trehadだとそれぞれ80%になる(Photo10)という説明であった。

  • Photo09: ただ当たり前だが、これ同一のプロセスとは言ってない訳で、プロセスに起因する分はどの程度かは不明。

  • Photo10: E-Coreは4C4T、Skylakeは2C4Tであることに注意。

Performance Core(P-Core)

こちらはAlder Lake/Sapphire Rapidsで投入される、Willow Coveの後継(Golden Cove?)である(Photo11)。まずフロントエンド、命令デコードはSunny Cove同様の6命令のままだか、キャッシュ容量の大容量化やPredicationの改良、Queueの大容量化などが挙げられている(Photo12)。これに続くSchedulerとIssue Portは大容量化しており、発行ポートも12に。さて、最大の特徴はついにALUが5つになったことだ(Photo14)。E-Coreでも4つだし、Sunny Cove/Willow Coveでも頑なに4つを守ってきたが、ついにここで5つに増えた格好だ。またVector側では、より高速なFADDが追加された。またLoad/Storeユニットでも、3つ目のAGU/Loadが追加され、より大量のLoad/Store発行が可能になった(Photo16)。

  • Photo11: さっきのE-Core(Photo02)に見るとまだ穏当に見えてしまうから恐ろしい。

  • Photo12: 図に出てくる数字は、対Sunny Coveではなく対Skylakeなのかもしれない。

  • Photo13: これで十分重厚な訳で、逆に言えばE-Coreの17ポートはどうかしているとしか思えない。

  • Photo14: ただこの5番目(Port 10)はALUとLEAのみと、ちょっとシンプル。将来の拡張を踏まえての事だろうか?

  • Photo15: AVX512のFP16対応も同時に実施。

  • Photo16: Load/Storeユニットそのものの高速化(というか低Latency化)も同時に行われている。

  • Photo17: ALUが4→5に増えていれば、確かにこのくらいの性能改善はあっても不思議ではない。

この結果として、Rocket LakeのCypress Coveと比較して、同一周波数であれば平均19%の性能改善が実現したとしている(Photo18)。

  • Photo18: こちらは同一周波数比なのでプロセスは無関係。

ついでAMXについて。これは主にSapphire Rapids向けの話になるが、Intelは新しいAMX(Advanced Matrix Extensions)と呼ばれる拡張命令を用意している。この詳細も公開されているが、ざっくり言えば行列演算向けに2次元のテーブルを2つあらかじめ用意して渡すと、その2つのテーブル間の行列演算を行って結果を返してくれるというアクセラレータである(Photo19)。これを利用する事で例えばint 8なら1cycleあたり8倍の2048演算が可能になるというものだ(Photo20)。こちらがそのAMXの構成であるが、CPUのパイプラインとは別のところに、コプロセッサの形で実装されることになる。構成的にはそんなわけでAlder Lakeには未搭載で、とりあえずはSapphire Rapidsのみとなりそうだ。

  • Photo19: AMXについては、そういえばまだ解説していなかった。改めていずれ。

  • Photo20: もっともスループットはともかくLatencyは? というのはちょっと気になるところ。

  • Photo21: Tileの定義はPhoto19に出てくるが、要するに行列そのものを格納するレジスタである。

Intel Thread Director

Alder Lake世代では本格的にbigコアとLITTLEコアを組み合わせたヘテロジニアス構成になる訳だが、これをどうスケジュールするかという問題がある。この分野では既にArmが先駆者であり、ArmはLinuxのスケジューラでこれをうまく扱うための作業を随分行ってきており、同種の作業がx64にも必要になる。対象となるOSもLinuxやWindowsを始め多岐に渡るわけだが、これをアシストする機能がThread Directorである。

Thread DirectorはハードウェアとOSスケジューラの間に介在し、必要なら(つまりOSがThread Directorをサポートしていなければ)Transparencyに動くが(Photo22)、OSが認識する場合はより賢明なスケジューリングが可能になる(Photo23)。具体的に例として挙げられたのはこちら(Photo24)。Windowsの場合、Windows 11でこのThread Directorに正式対応する事が表明された。

  • Photo22: これはE-CoreとP-Coreが介在する場合にしか意味が無いので、Sapphire Rapidsには搭載されない。

  • Photo23: 利用する命令セットレベルでの監視というのは、確かに従来のスケジューラでは行えない。

  • Photo24: どうBackground Taskと認識するのか、は不明。ところでSpin loopとかドライバ内とかで動いていると、煩雑にE-CoreとP-Coreが切り替わったりするのだろうか?

Alder Lake

さていよいよAlder Lakeの話である。Thread Directorを搭載する最初の製品になる訳だが(Photo25)。同じBuilding Block(構成要素は異なる)で、Ultra MobileからDesktopまでカバーする事を改めて表明した(Photo26)。こちらがそのBuilding Block(Photo27)であるが

  • Desktop :P-Core×8、E-Core×8、32EU GPU
  • Mobile :P-Core×6、E-Core×8、96EU GPU、ThunderBold×4
  • Ultra Mobile:P-Core×2、E-Core×8、32EU GPU、ThunderBold×2(いずれも最大構成)

となるとの話だ。まだこれはChiplet構成ではなくモノリシックダイの構成であるが、構成要素そのものは綺麗にBuilding Block化された、という話である。

  • Photo25: 概ね発表済の話ではある。

  • Photo26: PCHそのものは引き続き別チップになる模様。

  • Photo27: 勿論例えばCore i5グレードならDesktop向けもP-Core×6とかになるかもしれない。

さてそのDesktop向けだが、E-CoreはHyperThreadingが無効化されており、なのでトータルで16core/24Threadになる。またLLCは最大30MBであるが、IntelによればこのLLCはE-CoreとP-Core、それとGPUで共有できるという話であった(Photo28)。ちなみにMemoryはDDR4-3200/DDR5-4800/LPDDR4x-4266/LP5-5200にそれぞれ対応する。パッケージそのものはPhoto26にもある様にLGA1700で共通であるが、メモリはDDR4とDDR5の両対応であった。勿論両方が同時に使えるわけではない。PCIeは、Desktop向けはPCIe Gen5 x16+Gen4 x4構成。Ultra MobileはGen4 x12+Gen3 x16構成だそうだ(Photo30)。また内部のFablicの帯域は1TB/secに及ぶという話であった(Photo31)。

  • Photo28: GPUは32EUのみがラインナップされるらしい。ちょっと残念である。

  • Photo29: ということでマザーボードはLGA1700でもDDR4版とDDR5版が混在することになる。両方のスロットを持つ変態マザーボードも、あるいはありえそうだが。

  • Photo30: Mobile向けはおそらくUltraMobileと同じかと思う。それはともかく、NVMe向けのx4がPCIe Gen4なのはちょっと残念(既にGen5対応NVMeコントローラは存在する)。

  • Photo31: このFabricの構成がTigerLake同様のDual Ring Busなのかどうか確認したのだが、回答を聞いてる最中にクライアントが落ちてしまい、返事が聞けていない(T_T)。

HPG(Intel ARC)

Intelは8月16日に、突如Discrete GPUのブランドとしてIntel ARCを発表した。最初の製品、つまり従来Xe DG2と呼ばれていたものはAlchemistというコード名になったことが明らかにされている(Photo32)。さてそのIntel ARCだが、既にソフトウェアの用意はできており(Photo33)、また今回発表された事として独自メカニズムを利用するSuperSampling(XeSS)を搭載する事も明らかにされた(Photo34)。ちなみに内部は? というとAIベースでのSuperSamplingだそうだ(Photo35)。これにより、高解像度でも負荷を低く抑えられつつ高画質を得られるとしている(Photo36)。このXeSSのSDKは今月提供開始という話であった(Photo37)。

  • Photo32: この時点で少なくともAlchemistに2種類のSKUがあるのが確認できる。

  • Photo33: 問題はドライバの質ではないかという気もする。

  • Photo34: わずかなクオリティの低下で高い解像度表示が出来る、というわけでDLSSやFSRと思いっきりぶつかる形に。

  • Photo35: DLSSはTensor Coreを用いるが、XeSSはXMXを利用する模様。

  • Photo36: 具体的な数字が出てこないので何とも言いにくいところではある。

  • Photo37: ただFSRと違い、XMXを使うという時点でIntel ARC以外では利用できそうにない。

さてそのXe Coreであるが、基本的なBlockはVector EngineとMatrix Engine(XMX)がそれぞれ16個、それにLoad Store Unitとキャッシュが組み合わされたものになる(Photo38)。このBlockにRay Teacing UnitとSampler、Pixel Backendなどを組み合わせたものがIntel ARCとなる訳だが(Photo39)、そのRay Tracing Unitの概略がこちら(Photo40)。これにL2を組み合わせたのがPhoto32の手前のダイに見える。では最上位は? というと32コア構成も用意されるようだ(Photo42)。ちなみにXe LPと比較して1.5倍の性能/電力比とされ(Photo43)、TSMCのN6を用いて製造(Photo44)とされる。またこれに続きBattlemage/Celestia/Druidという後継製品も予定されているが、これは8月16日にもアナウンスがあった話だ。

  • Photo38: Matrix EngineはAI処理とかGPUの描画以外の用途向け(NVIDIAのTensor Coreに近い扱い)と思われる。

  • Photo39: これがおそらく最小構成。

  • Photo40: このままだと説明がラフすぎて、性能が想像できない。このあたりもいずれ詳細が明らかになってほしいところ。

  • Photo41: もっとも手前が4core、奥が32coreだとサイズが変わらなすぎなので、Photo32の手前のものは16core位なのかもしれない。

  • Photo42: これはGeForce RTX 3080/90とかRadeon RX 6800 XT/6900 XTあたりとの対抗馬になりそうだ。

  • Photo43: 比較対象がローパワー向けのXe LPなので、正直これで十分といえるのかどうか、良く判らない。

  • Photo44: これは前から言われていた話。ただN5、という話もあったがこれで確定した形だ。

  • Photo45: 某氏曰く「中二病感溢れるコード名」。確かにそうかもしれない。

現状で言えば、そもそもMemory Subsystemがどうなっているのか? という一番肝心な話が無いので何とも言いにくいのだが、プロセスだけ見ればAMDのTSMC N7とかNVIDIAのSamsung 8N(8LPPのNVIDIAスペシャル版)より一歩進んでいるだけに、ちょっと楽しみではある。

Sapphire Rapids

次はData Center側のSapphire Rapids。IntelのXeonとしては初のチップレットアーキテクチャである(Photo46)。4つのChipletがそれぞれ単独でも動作するし、接続してコア数を増やすことも出来るという、AMDのEPYCと同じ仕組みだ(Photo47)。ちなみに今回は4ダイの構成のみの説明だが、当然SKUに応じて1/2/4ダイのものが存在するだろう(Photo48)。

  • Photo46: 基板の側に小さく4つのダイが埋め込まれているが、これはEMIBと思われる。

  • Photo47: これを見ると、鏡対称になった2種類のダイが必要になりそうな気もするのだが、それとも1種類のダイを90°づつ廻しながら接続しているのだろうか?(パッケージ側が地獄になりそうな気もする)。

  • Photo48: それぞれのダイに必要なものが全部用意されている格好。

さてまずCPUコアそのものはP-Coreを利用する。こちらはAVX512をサポートしていると思われる(Photo49)。コアの特徴はこんな感じで、AMXのサポートとかAiAに関してはAlder Lakeでは無効化されている機能だろう(Photo50)。コアそのものはAlder Lakeと同じだが、大きく違うのがアクセラレータの存在。先に説明したAMXのほか、IPU(Infrastructure Processing Unit)などが搭載されており、これらを活用する事でCPUの負荷を下げられるとする(Photo51)。そのうちの一つがData Streaming Acceleration Engine(DSA)。要するにDMA的にI/O処理を勝手に処理してメモリとの間で転送を行ってくれるエンジンで、これによりCPU負荷を最大39%下げられるとする。またこちらは以前からあるIntel QATでは、最大でCPUの負荷を98%下げられるとする(Photo53)。

  • Photo49: L2は2MBとなる。

  • Photo50: CLDEMOTEに関しては詳細は不明。これはHotChipsを待ちたい。

  • Photo51: Acceleratorとコアの間にはCache Coherencyが確保されているとする。おそらくはL3を共有するのだと思うが。

  • Photo52: Intel DSAで検索すると"Intel Driver & Support Assistant"が出てきてしまうのがご愛敬。判る人には判る比喩で言えば、MicrochipのMCUに採用されているCIP(Core Independent Peripherals)が近いかもしれない。

I/O周りに言えば、UPIは外部に24レーン×4が用意され、またPCIe 5.0/CXL 1.1にも対応する(Photo54)。メモリは各ダイに2chづつなので、最大8ch構成。またOptane Persistent Memory 300シリーズにも対応するとしている(Photo55)。そして一部のSKUにHBM2が搭載されるという話は以前からあったが、ダイあたり1つづつHBMを搭載できる。この際にはHBM Flat ModeとHBM Caching Modeがサポートされる(Photo56)。

  • Photo54: 説明では省かれたが、おそらくEMIBを利用したダイ同士もベースはUPI(ただし外部に引き回さないし短距離なので、電圧を落としたスペシャル版)が利用されているように思う。PCIeのレーン数などは現時点では未公開。

  • Photo55: 4ダイ構成のSKUは8chのメモリバスが全部使えるが、1/2ダイの場合は2/4chのみ有効という形になると思われる。まぁこれは初代EPYCとかも同じだが。

  • Photo56: 以前Knights LandingではDDR3+MCDRAMという似たような構造になっていたが、このKnights Landingでサポート予定だったHybrid Modeはサポートされないらしい。

さて性能であるが、まずAI周りで言えばAMXのお蔭で圧倒的なAI処理性能を実現としており(Photo57)、またアクセラレータなどの効果もあってMicroserver向けで言えばCascade Lake比で69%の性能向上、といった数字が示された。

  • Photo57: ただInt8の方はともかくFP32とBF16の比較は無茶であって、要するにAMXはFP32はサポートしていないという事だろうか?

  • Photo58: Ice Lake-SP比では36%向上ということになる。思ったより大きくない気もする。

肝心のコア数とかに関しては現時点では未公開で、これはHotChipsあるいはさらにその先まで待たないと情報は出てこなそうだ。

IPU+Ethernet Offload Engine

サーバー向けでは今年6月、IntelはIPU(Infrastructure Processing Unit)を発表したが、この詳細が明らかにされた。これは要するにCPUとデバイスの間に入り、定型的な処理を行う事でCPUの負荷を減らすというものだ(Photo59)。実際にFacebookにおいては、様々な処理の負荷が31~88%程度に減ったとする。また、IPUを使ってStorage処理を行う事で、Diskless Serverを構築するのも容易となる(Photo61)。

  • Photo59: 一番初期の例がEthernetカードに搭載されるTCP Offload Engineだが、これをもっと進化させたのがIPUということになる。

  • Photo60: 出典の論文はこちら。ちなみに論文を読む限り、別にこれはIntelのIPUを使った場合の数字ではない。

  • Photo61: IPU上に仮想NVMe SSDを構築し、その実体は例えばNVMeoF経由でネットワークの先のストレージ、なんてことが容易に可能になる。

これに向けてIntelはDiscrete NPUのほか、FPGAベースのFPU、さらにFPGA搭載Ethernetカードなどをラインナップするとしている(Photo62)。今回発表になったのは、Storage Accelerator向けのOak Springs Canyon(Photo63,64)、100G Ethernet×2とIPUを組み合わせたArrow Creek(Photo65,66)。さらに200G Ethernetに向けたIPUとしてMount Evansが発表された(Photo67)。Network Subsystemの構造はこんな感じ(Photo68)。Compute Complexはもっと不思議で、最大16コアのNeoverse N1である。個人的な勘だが、このMount Evans、Intelの手によるものではなく、Intelが2019年に買収したBarefoot Networkが開発していたものではないかと思う。この辺もHotChipsで説明がありそうである(初日午後に" Intel’s Hyperscale-Ready SmartNIC for Infrastructure Processing"というセッションが予定されている)。

  • Photo62: Sapphire RapidsにもIPUが搭載されている模様。

  • Photo63: 搭載しているFPGAはAgilexだが、Passive Coolingなあたりはそれほど動作周波数が高くない模様。

  • Photo64: AgilexをそのままEthernet Controllerとして使っているのはともかく、その先にIntel Xeonまで搭載されている。こちらがオフロード作業用だろうか?

  • Photo65: Oak Springs Canyonの上位機種がこちらのArrow Creekと位置付けられている模様。

  • Photo66: 右上になぜかMax 10が載っている。Ethenet自身がPCIe Gen4x8、AgilexがPCIe Gen4x8をそれぞれ占有するというちょっと面白い構造。DDR4が合計20GB搭載されているのは、上の4GBが内蔵するArmコア用、右がPacket Processing用だろうか?

  • Photo67: 従来とは全く違う構造なのが目を引く。

  • Photo68: RDMAエンジンがわざわざ搭載されているあたりも不思議。最大4つのHostに同時に対応できるとしている。

  • Photo69: ちなみに説明ではP4に対応という話だった。

Xe HPC & Ponte Vecchio

サーバー向けの中でも、特にHPCに向けたGPUがXe HPCである。その設計目標がこちら(Photo70)。これに向けたXe HPCであるが、基本となるXe-Coreは、先のIntel ARC向けの半分となる8エンジンである。このXe-Coreが1個あたりの性能はこちら(Photo72)。これを16個並べたのがSlice(Photo73)であり、一つのSliceには8MB L2(Photo74)となぜか16個のRay Tracing Unit(Photo75)を搭載する。このSliceを4つ集積したのがStackで、さらにHBM2eのコントローラ×4とMedia Engine、さらにXe Link×8が集積される(Photo76)。ちなみにPonte VecchioはこのStackを2つ、実装する格好だ(Photo77)。

  • Photo70: FP64性能、AI性能、メモリ帯域のいずれもIntelのソリューション(青線)は業界標準(緑線)を大きく下回っており、これを2022年にキャッチアップして追い越す、という訳だ。

  • Photo71: 粒度がHPC向けだと16コアでは大きすぎる、ということだろうか?

  • Photo72: やはりMatrix EngineはTF32は使えてもFP32は使えない模様。ところでVector EngineとMatrix Engineは同時に動けるのだろうか?

  • Photo73: 1 Sliceあたり、FP32/FP64が4096 Ops/cycle、FP16なら8192 Ops/cycleとなる。Matrix Engineを使えばINT 8だと131072 Ops/cycleに達する。

  • Photo74: 8MBで足りるかはちょっと「?」(このSlice上で何Thread走るのか、次第ではある)

  • Photo75: Xe HPであればまだ判るのだが、HPC向けのXe HPCでRay Tracing Unitを搭載する理由は今一つ判然としない。

  • Photo76: これがXe HPCの最小単位になると思われる。

  • Photo77: つまりPonte Vecchioは1チップで、FP32/FP64なら32768 Ops/cycleを実施できる。仮に1GHz動作なら、32.768TFlops相当だ。

昨年6月、Raja Koduri氏は"And..they let me hold peta ops in my palm(almost:)!"というMentionをしている。これ、仮にINT 8だとして換算すると、なんせMatrix Engineを使ってBF16/FP16の場合だと1048576 Ops/cycleで処理が出来るから、1GHz動作でも1PFlopsに到達する計算になり、一応辻褄はあっていることになる。

さて、このXe HPCの外部I/FがXe Linkである。Linkそのものはこんな感じ(Photo78)で、このLinkを各Stackあたり7本使う事で、8つのStackを密結合できる計算になる(Photo79)。

  • Photo78: 内部構造は普通のRouter。8本のLinkが出る形。

  • Photo79: 余った合計8本のLinkは、外部への接続用ということだろうか?

この2 Stackを1つのパッケージに集積したのがPonte Vecchioである(Photo80)。Compute TileはTSMCのN5で製造され(Photo81)、これとRambo Cacheを搭載するBase TileはIntel 7+Foverosの構成。Xe LinkはTSMC N7で製造される(Photo83)。チップ1個あたり45TFlops以上の性能であり、このモジュールを4つとSapphire Rapids×2がHPC向けシステム向けの基本構成となるようだ(Photo85)。今年末の納入が間に合わなかったAuroraは、この構成をベースに構築される事もちらっと紹介された(Photo86)。

  • Photo80: つまりこのチップ4つで、Photo79の構成が出来る形になる。

  • Photo81: つまり2 Tileで1 Sliceという計算になる。

  • Photo82: HBM2eのコントローラとかPCIeはここに載る形。

  • Photo83: Xe Link TileはBase TileとEMIBで接続されるようだ。

  • Photo84: チップというか、チップを搭載したモジュールという形で使う事になりそう。

  • Photo85: NVIDIAのA100も、そういえばこんな形状で提供された。

  • Photo86: 水冷配管が走り回っているのが判る。

ということで簡単ながらArchitecture Dayの概要をご紹介した。今回は個々の紹介はかなりラフであり、個別の詳細はHotChips以降ということになりそうだ。