インテル、シリコンフォトニクスを用いた8コア528スレッドのプロセッサを公開
(servethehome.com)- Hot Chips 2023で公開されたこの研究用チップは、DARPA HIVEの超疎データ処理を狙い、8コアで合計528のハードウェアスレッドを提供する
- ワークロード分析の結果、並列性は大きい一方で、キャッシュライン活用と長いout-of-orderパイプラインの効率が低く、一般的なサーバーCPUとは異なる設計が必要だった
- プロセッサはx86ではなくRISC ISAベースで、コアあたり66スレッドとマルチスレッドパイプラインによって大規模な同時実行性を処理する
- チップ間通信はシリコンフォトニクスベースの直接mesh-to-mesh光ファブリックで接続され、スイッチやNICなしでシャーシ外のコアとも直接通信できる
- 実装はTSMC 7nm 8コア 75W CPUであり、電力の半分以上を光接続に使っているため、依然として研究室段階の実験的な設計にとどまっている
DARPA HIVEを狙った528スレッドCPU
- Hot Chips 2023でインテルは、一般的なサーバーチップとは別にdirect mesh-to-mesh optical fabric技術を展示した
- 設計の中心目標は、DARPA HIVEプログラムで求められる超疎データ処理である
- インテルのワークロードプロファイリング結果は、一般的なCPU設計に合わない特性を示した
- 大規模な並列性が存在する
- キャッシュライン活用が低い
- 長いout-of-orderパイプライン構造が十分に活用されない
- これに合わせて、プロセッサは8コアソケット構成で設計された
- コアあたり66のハードウェアスレッド
- 合計528スレッド
- x86ではなくRISC ISA
- 各コアはマルチスレッドパイプラインを使用する
シリコンフォトニクスでチップ間を直接接続
- このチップは、16個のソケットを単一のOCPコンピュートトレイに収め、光ネットワーキングで束ねる構成を採用している
- 高速I/Oチップは、電気信号と光機能の間を接続する
- オンダイネットワークにはルーターが配置され、16個のルーターのうち半分は高速I/Oにより多くの帯域幅を提供する役割を担う
- パッケージ内部の物理接続層にはEMIBが使用される
- オフダイ接続では、各チップがシリコンフォトニクスを通じて光ネットワーキングを駆動する
- コア間接続をチップ間で直接行える
- 同じシャーシ内でなくても、スイッチやNICなしで接続可能である
- チップ全体はEMIBベースのマルチチップパッケージで構成される
- シリコンフォトニクスエンジンを組み込むことで、パッケージから光ファイバー束へつながる部分に追加の課題が生じる
- 電力面では8コア 75W CPU実装であり、電力の半分以上がシリコンフォトニクスに使われる
- 実際のダイ写真からTSMC 7nmプロセスの使用が確認されており、作業は研究室で継続中である
- 光接続部分はAyar Labsの支援を受けた
- インテルがInnovation 2022で公開したプラグ式コネクタは、この実装では使用されていない
1件のコメント
Hacker News のコメント
コアあたり 66スレッドなら、何よりも バレルプロセッサに近く見える
各スレッドが速いとは期待しにくいが、プロセッサに十分な仕事があれば、メモリ待ちをする代わりに、ほとんどの時間で有用な作業ができると考えられる
バレルプロセッサの主な弱点は人間側にある。潜在力をきちんと引き出すコードを設計できる人がごく少数しかいない。普通のコードもそこそこ動くのでコードレベルでは馴染みがあるように見えるが、CPU向けのコードしか書いたことがない人には非常に奇妙に見えるやり方で書かないと、性能があまり出ない
データ構造とアルゴリズムを設計するには特異なアーキテクチャで、バレルプロセッサ向けのアルゴリズム設計に関する文献も多くない
昔の Tera システム以来、いくつものバレルプロセッサアーキテクチャ向けのコードを設計してきて、かなりうまくなったが、きちんと理解している人が使えば、同程度のシリコン予算の汎用コンピューティングでは、ほぼどんなアーキテクチャよりも計算効率が高くなり得ると思う
ただし効率的なコードを書くには、CPU向けの同等コードよりもはるかに複雑なモデルを頭の中に保っておく必要がある。経済性は、平均的なエンジニアでもそこそこの効率を出せる CPU のようなアーキテクチャに有利に働く
純粋な計算効率面での利点にもかかわらず、今では主流のバレルプロセッサを見ることになるという期待は捨てている
このコアのその部分は、既存の GPU と非常によく似ている
この実験的な Intel CPU で異なるのは、GPU のような部分とは別に、各コアが 非常に高速な2スレッドも含んでいる点だ。この2つはアウトオブオーダー実行を行い、遅いスレッドよりはるかに高いクロックで動作し、それぞれ共有されない実行ユニットを持つ
2つの高速スレッドと64個の低速スレッドは、個別に見ると昔の CPU や GPU に似ているが、共有スクラッチパッドメモリとキャッシュを持つ単一コア内に結合している点が新しい
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
この研究を支援した DARPA プロジェクトは、Tera が Cray を買えるほどの資金を得ることになった、あの3文字略語への関心の系譜と同じ側にあると賭けてもいい
「メモリを待つ」を「入出力を待つ」に置き換えると、ほとんど同じ構図になる
遅いフェッチが発生している間、システムは別のスレッドの命令をより多く並列に実行できる
Marvell は 768 Threads Per Node を掲げた SMT8 ARM CPU を作っていた
https://www.servethehome.com/marvell-thunderx3-arm-server-cp...
記憶ではデータベースのワークロードを狙っていて、中心となるロジックも同じだった。コアがたいてい RAM を待って遊んでいるなら、その間に別のスレッドを処理すればよいということだ
IBM と Zen4C がある程度この需要を満たしてはいるが、こうした 低い命令処理率のワークロードを明示的に狙った SMT16 クラウドインスタンスがもっと増えるとよいと思う
こうしたバレルプロセッサ的な設計では、CMT8/SMT8 がちょうどよい落としどころに見える
電気信号を光信号に変換するための ダイコストと速度低下を償却できるなら、光インターコネクトでは実質的に距離に依存しない速度を高い効率で得られる、という提案のように見える
もちろん完全にそうではないだろうが、単一シャーシ内のチップキャリア間距離程度に限れば、干渉が少なく、光ガイドの曲げ半径の範囲内で配線も自由になる
私が読み違えている可能性もある。光学部品はダイ積層のような別目的のためかもしれないし、スーパーキャリア上にチップの格子を作り、光インターコネクトで接続しようとしているのかもしれない
実際のダイ写真と、TSMC 7nmで作られたという確認とは、Intelにとってはかなり痛い場面だと思う
こういうもののために競合他社のファブを使わなければならないなら、チップメーカーとしてはかなり低い瞬間だろう
ただし10nmノードはIntelにとって災厄であり、チップ製造事業で同社を5〜10年ほど遅れさせた
研究プロジェクトならTSMCを好む姿は容易に想像できる
こうした変わったものがTSMCへ行く理由を説明している。たとえばSilicon Photonics自体も、消えかけていたサイトだったAlbuquerqueで進められている
Googleで2001〜2010年に期間を絞って検索すれば関連ニュースを見つけられる
HNユーザーが半導体をよく知らないのには何か理由があるのだろう。たぶん主にソフトウェア寄りの読者だからだと思う。このサイトでは、自信に対する解説品質の比率が最も高い分野のように見える
AMDもGlobalFoundriesを諦めたときに同じことをしたし、それがIntelを追い抜く主な理由だったとも見なせる
どうせ全社がASMLの露光装置を使っているのだから、誰がウェハを機械に入れるかは多少二次的な問題だ
これは販売可能な製品というより、概念実証CPUに近いように見える
非常に特化しており、どんな問題やワークロードを解決するのかはまだ探している段階だ
今後は汎用コンピューティングにも光子が導入されると予想している。少なくとも拡大する過剰発熱問題に対処するためにもそうなるだろう。特に目を引くのは、10nmから7nmへのプロセス変更だ
Sunもずっと前に似たようなことをしたが、その後のUltraSPARC CPUでは諦めた
スレッドが飢えていたのだろうか。コア数を減らして高速化するほうがよいと判断したのだろうか。詳しい内容は見つけにくい
HNのbcantrillが内部事情を教えてくれるといいのだが
性能を出すには、パラメータをはるかに多く調整したり、再コンパイルしたりしなければならないことも多かった
私にとってはSSL利用の必要性が大きく増えた時期とも重なっていたが、SSLはx86にはよく最適化されていた一方で、Sparcにはそうではなかった。そのためSSLオフロードカードやリバースプロキシのような複雑さまで扱う必要があった
結局、いくつかのニッチ領域を除けば、うまく動かすのが難しすぎた
大きな要因ではなかったかもしれないが、システム管理者の立場でも面倒だった。われわれが行う作業のかなりの部分は直列的で、シングルコア中心だったからだ。つまり、たいていベンダー支払いの承認を行う集団に対して、最悪の面を見せたわけだ
これはグラフ簡約とデータフロープログラミングに完璧に見える
実際に量産に入れば、こういうものでかなり格好いいものを作れそうだ
8コアで528スレッドとは、計算はどうなっているのだろう。512だと思って読み返す必要があった
ワークロードのためにキャッシュはあまり活用されないようで、これはx86ではなくRISC命令セットだ
ここで2は現在のCPUのような遅いスレッド数で、64はGPUスレッドに近い
このアーキテクチャはGPU統合の次の段階かもしれない。標準数学ライブラリの効率的な実装をうまく書いてくれることを願う。1つのパッケージ内の別個のCPU+GPUより高速になり得る
なぜ66なのかは説明されていない
そろそろ、すべてのコードをイベント駆動、io_uringなどで書き直す作業を終えるときだ
他の人たちが言及したTera MTAには、このためにメモリシステムにハードウェア同期があった、あるいはある
割り込みはなく、誰かに起こされるのを待つスレッドだけがあった
記事をちゃんと読めているのだろうか。チップ上に32GB DRAMがあるという意味なのか、それとも単に標準DIMMを使ったということなのか
興味深いのは、カスタムDIMMとメモリコントローラを使って8バイト単位のアクセスをしている点だ。しかもダイ写真で見えるように、各コアが独自のメモリコントローラを持っている
各メモリコントローラが4GB DRAMを管理するなら、チップあたり32GBを説明できる
さらに詳しく説明する資料もあり、NvidiaもGrace Hopperでこのようにしているようだし、AppleもMシリーズチップで似たことをしている
更新: この場合は単なるDDR5、正確には「custom DDR5-4400 DRAM」のようだ