2 ポイント 投稿者 GN⁺ 2023-08-30 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2023-08-30
Hacker News のコメント
  • コアあたり 66スレッドなら、何よりも バレルプロセッサに近く見える
    各スレッドが速いとは期待しにくいが、プロセッサに十分な仕事があれば、メモリ待ちをする代わりに、ほとんどの時間で有用な作業ができると考えられる

    • Intel がまた別の バレルプロセッサに挑戦する意欲があるのかは分からない
      バレルプロセッサの主な弱点は人間側にある。潜在力をきちんと引き出すコードを設計できる人がごく少数しかいない。普通のコードもそこそこ動くのでコードレベルでは馴染みがあるように見えるが、CPU向けのコードしか書いたことがない人には非常に奇妙に見えるやり方で書かないと、性能があまり出ない
      データ構造とアルゴリズムを設計するには特異なアーキテクチャで、バレルプロセッサ向けのアルゴリズム設計に関する文献も多くない
      昔の Tera システム以来、いくつものバレルプロセッサアーキテクチャ向けのコードを設計してきて、かなりうまくなったが、きちんと理解している人が使えば、同程度のシリコン予算の汎用コンピューティングでは、ほぼどんなアーキテクチャよりも計算効率が高くなり得ると思う
      ただし効率的なコードを書くには、CPU向けの同等コードよりもはるかに複雑なモデルを頭の中に保っておく必要がある。経済性は、平均的なエンジニアでもそこそこの効率を出せる CPU のようなアーキテクチャに有利に働く
      純粋な計算効率面での利点にもかかわらず、今では主流のバレルプロセッサを見ることになるという期待は捨てている
    • 66個のうち 64スレッドは遅いスレッドで、16スレッドずつのまとまりが1組の実行ユニットを共有し、64個全体がスクラッチパッドメモリとキャッシュを共有する
      このコアのその部分は、既存の GPU と非常によく似ている
      この実験的な Intel CPU で異なるのは、GPU のような部分とは別に、各コアが 非常に高速な2スレッドも含んでいる点だ。この2つはアウトオブオーダー実行を行い、遅いスレッドよりはるかに高いクロックで動作し、それぞれ共有されない実行ユニットを持つ
      2つの高速スレッドと64個の低速スレッドは、個別に見ると昔の CPU や GPU に似ているが、共有スクラッチパッドメモリとキャッシュを持つ単一コア内に結合している点が新しい
    • 元祖 同時マルチスレッディングである Tera を思い出す。1990年にコアあたり128スレッドだった
      https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
      この研究を支援した DARPA プロジェクトは、Tera が Cray を買えるほどの資金を得ることになった、あの3文字略語への関心の系譜と同じ側にあると賭けてもいい
    • プログラミング言語側の 非同期処理にも少し似ているように感じる
      「メモリを待つ」を「入出力を待つ」に置き換えると、ほとんど同じ構図になる
    • 必ずしもバレルプロセッサを意味するとは思わない。CPU性能が CPU とメモリ帯域幅に比べて高くなったため、同時マルチスレッディング数をさらに増やしたものに近いのかもしれない
      遅いフェッチが発生している間、システムは別のスレッドの命令をより多く並列に実行できる
  • Marvell は 768 Threads Per Node を掲げた SMT8 ARM CPU を作っていた
    https://www.servethehome.com/marvell-thunderx3-arm-server-cp...
    記憶ではデータベースのワークロードを狙っていて、中心となるロジックも同じだった。コアがたいてい RAM を待って遊んでいるなら、その間に別のスレッドを処理すればよいということだ
    IBM と Zen4C がある程度この需要を満たしてはいるが、こうした 低い命令処理率のワークロードを明示的に狙った SMT16 クラウドインスタンスがもっと増えるとよいと思う

    • Niagara、つまり UltraSPARC T1/T2 も同じことをしていた
      こうしたバレルプロセッサ的な設計では、CMT8/SMT8 がちょうどよい落としどころに見える
    • 「mind as well」と書いたり言ったりするのは初めて見た。住んでいる地域ではよくある表現なのか? 今までは「might as well」しか聞いたことがなかった
  • 電気信号を光信号に変換するための ダイコストと速度低下を償却できるなら、光インターコネクトでは実質的に距離に依存しない速度を高い効率で得られる、という提案のように見える
    もちろん完全にそうではないだろうが、単一シャーシ内のチップキャリア間距離程度に限れば、干渉が少なく、光ガイドの曲げ半径の範囲内で配線も自由になる
    私が読み違えている可能性もある。光学部品はダイ積層のような別目的のためかもしれないし、スーパーキャリア上にチップの格子を作り、光インターコネクトで接続しようとしているのかもしれない

    • コア同士を離して配置するだけでも 放熱には大きく役立つ
    • 1997年に私がそこにいた時点で、すでに Vixel があった。目標は層を積み重ね、垂直スタック内で Vixel を使うことだった
  • 実際のダイ写真と、TSMC 7nmで作られたという確認とは、Intelにとってはかなり痛い場面だと思う
    こういうもののために競合他社のファブを使わなければならないなら、チップメーカーとしてはかなり低い瞬間だろう

    • Intelには、Nvidiaがすでにテストして好意的に語った1.8nm試作ノードがある
      ただし10nmノードはIntelにとって災厄であり、チップ製造事業で同社を5〜10年ほど遅れさせた
    • TSMCプロセスは使いやすく、Intel内部プロセスにはないIPエコシステムが周辺に整っている
      研究プロジェクトならTSMCを好む姿は容易に想像できる
    • Intelのファブでは、論理CPUではないほぼすべてのものが二級市民扱いされる
      こうした変わったものがTSMCへ行く理由を説明している。たとえばSilicon Photonics自体も、消えかけていたサイトだったAlbuquerqueで進められている
    • IntelはPC向けではないプロセッサには、おそらく15年ほど前からTSMCを使ってきた
      Googleで2001〜2010年に期間を絞って検索すれば関連ニュースを見つけられる
      HNユーザーが半導体をよく知らないのには何か理由があるのだろう。たぶん主にソフトウェア寄りの読者だからだと思う。このサイトでは、自信に対する解説品質の比率が最も高い分野のように見える
    • NvidiaとAMDはすでにIntelのオングストローム級ファウンドリサービスを使う契約を結んでいるので、想像もできない話ではない
      AMDもGlobalFoundriesを諦めたときに同じことをしたし、それがIntelを追い抜く主な理由だったとも見なせる
      どうせ全社がASMLの露光装置を使っているのだから、誰がウェハを機械に入れるかは多少二次的な問題だ
  • これは販売可能な製品というより、概念実証CPUに近いように見える
    非常に特化しており、どんな問題やワークロードを解決するのかはまだ探している段階だ
    今後は汎用コンピューティングにも光子が導入されると予想している。少なくとも拡大する過剰発熱問題に対処するためにもそうなるだろう。特に目を引くのは、10nmから7nmへのプロセス変更だ

  • Sunもずっと前に似たようなことをしたが、その後のUltraSPARC CPUでは諦めた
    スレッドが飢えていたのだろうか。コア数を減らして高速化するほうがよいと判断したのだろうか。詳しい内容は見つけにくい
    HNのbcantrillが内部事情を教えてくれるといいのだが

    • 全盛期にそのシステムを使ったことがある。ある種のワークロードでは優れていたが、シングルコア性能が必要なものでは苦労した
      性能を出すには、パラメータをはるかに多く調整したり、再コンパイルしたりしなければならないことも多かった
      私にとってはSSL利用の必要性が大きく増えた時期とも重なっていたが、SSLはx86にはよく最適化されていた一方で、Sparcにはそうではなかった。そのためSSLオフロードカードやリバースプロキシのような複雑さまで扱う必要があった
      結局、いくつかのニッチ領域を除けば、うまく動かすのが難しすぎた
      大きな要因ではなかったかもしれないが、システム管理者の立場でも面倒だった。われわれが行う作業のかなりの部分は直列的で、シングルコア中心だったからだ。つまり、たいていベンダー支払いの承認を行う集団に対して、最悪の面を見せたわけだ
  • これはグラフ簡約とデータフロープログラミングに完璧に見える
    実際に量産に入れば、こういうものでかなり格好いいものを作れそうだ

  • 8コアで528スレッドとは、計算はどうなっているのだろう。512だと思って読み返す必要があった

    • 記事によると、Intelはソケットあたり8コア、コアあたり66スレッドのプロセッサを持っている。合計で528スレッドだ
      ワークロードのためにキャッシュはあまり活用されないようで、これはx86ではなくRISC命令セットだ
    • 簡単だ。528 = 8 * (2 + 64)だ
      ここで2は現在のCPUのような遅いスレッド数で、64はGPUスレッドに近い
      このアーキテクチャはGPU統合の次の段階かもしれない。標準数学ライブラリの効率的な実装をうまく書いてくれることを願う。1つのパッケージ内の別個のCPU+GPUより高速になり得る
    • 「コアあたり66スレッドの8コアプロセッサ」という意味だ。66*8 = 528だ
      なぜ66なのかは説明されていない
    • コアあたり66個というのは少し奇妙に見える。おそらく2個はルーティングやメタデータ用かもしれない
  • そろそろ、すべてのコードをイベント駆動、io_uringなどで書き直す作業を終えるときだ

    • こうしたアーキテクチャでは、通常、非同期性はハードウェアに任せるほうが成果がよい
      他の人たちが言及したTera MTAには、このためにメモリシステムにハードウェア同期があった、あるいはある
      割り込みはなく、誰かに起こされるのを待つスレッドだけがあった
  • 記事をちゃんと読めているのだろうか。チップ上に32GB DRAMがあるという意味なのか、それとも単に標準DIMMを使ったということなのか

    • オンチップではなく、依然としてDDR5 DIMM
      興味深いのは、カスタムDIMMとメモリコントローラを使って8バイト単位のアクセスをしている点だ。しかもダイ写真で見えるように、各コアが独自のメモリコントローラを持っている
      各メモリコントローラが4GB DRAMを管理するなら、チップあたり32GBを説明できる
    • [訂正: 私が間違っているようだ!] 同じ基板上のHBM、つまり高帯域幅メモリだとほぼ確信していた: https://en.wikipedia.org/wiki/High_Bandwidth_Memory
      さらに詳しく説明する資料もあり、NvidiaもGrace Hopperでこのようにしているようだし、AppleもMシリーズチップで似たことをしている
      更新: この場合は単なるDDR5、正確には「custom DDR5-4400 DRAM」のようだ
    • 一般的なDDR5