全国高校eスポーツ選手権運営の舞台裏。Threadripperを投入する。12nmプロセスのZEN+コアをベースにしている。Threadripperによって、AMDはデスクトップに最大32コアまでの製品ラインナップを揃える。2016年前半までは、HEDTのCPUコア数は1桁台だったのが、一気に膨れ上がる。Threadripperの動作周波数とTDPは、この製品の最大の疑問点だ。Threadripperでは、16コア版は基本クロックが3.4GHz、ブーストクロックが4GHz、TDPは180Wだった。単純に倍増させると360Wになるが、さすがにそれは難しい。Threadripperのクーリングソリューションは250Wまで対応できるとヒントを出している。Threadripperも、最大でも250W止まりであることが予想される。AMDとしては、実際の製品版のテストで、プラットフォーム側が250Wでパスできるのなら、250Wで投入する可能性が高い。同じ4ダイのEPYCの電力入力ちなみに、EPYCの32コア版はTDPが180Wで、ベースが2.2GHz、ブースト時は最大で3.2GHzだ。動作周波数は、このケースではTDPによって制約されている。そのため、TDPが250Wまで引き上げられるなら、動作周波数はさらに上げられるだろう。ブースト周波数は、ピーク周波数で動作するコア数が限られるため、上げやすい。ベース周波数がどこまで引き上げることができるかがポイントとなる。好材料の1つは、製造プロセスが12nmになっていること。LPPプロセスだった。AMDは12nmでも14nmプロセスと同じセルハイトのスタンダードセルライブラリを使っているため、12nmになってもダイサイズはシュリンクされない。Threadripperより向上する。Symposia」で発表する予定となっている。AMDはRyzenについては、同じ動作周波数でも14nmに対して12nmプロセスでは、平均で駆動電圧が50mV下がると説明している。これはアベレージの数字であり、選別品の特性はさらに良好になっている可能性がある。コアアーキテクチャのパフォーマンス向上も図られている。2700は、14nmのZENの1700より、同等の電力時に16%もパフォーマンスがアップするとしている。Threadripperについても当てはまるはずだ。12nmプロセスのZen+ベースのRyzenでは電力効率が向上ちなみに、性能については、AMDは12nmのZEN+でキャッシュアクセスレイテンシを短縮している。Threadripperについても、同様のキャッシュアクセスの高速化が図られている。2000番台で、ブースト制御の向上を図った。2」となり、ブーストされるCPUコア数が可変となった。Threadripperにも搭載されるという。Threadripperでは、CPUコアブーストは、16コアすべてのオールコアブーストと、4コアのピークのブーストの2モードだった。2では、中間のコア数のブーストがサポートされる。Threadripperの場合は、おそらく31コアから9コアまでの段階的なブーストがサポートされると推測される。なめらかなブーストが実現される。Drop-Out)タイプの電圧レギュレータによるコア単位の電圧制御を行なっている。CPUコア毎に個別の電圧供給を行ない、チップ全体での電力消費の低減を図っている。オンボードのプラットフォームボルテージレギュレータ(VRM)から、CPUコアの最も高いVIDで入力されたコア電圧RVDDを、各コア毎に個別のVDDに落とし込む。CPU毎に最適な電圧となるため、電力効率が向上する。Threadripperのコア数を引き上げることができるのは、CPU設計において、マルチダイのアーキテクチャを取っているからだ。1種類のCPUダイの組み合わせによって、CPUコア数の異なる複数の製品系列を産み出す。Threadripperでは、その強味が活かされている。32コアまでの製品を、低い開発コストと低い製造コストで提供する。マルチダイを前提としたZEN世代では大きなダイのCPUは製造する必要がなくなったPDF版はこちら初代のZENのCPUは、「Zeppelin(ゼッペリン)」と呼ばれるダイをベースにしていた。ZEN+世代でも、ダイアーキテクチャの基本は変わらない。Express/高速I/Oを載せている。On-Package)」も備える。Threadripperのカギとなる技術で、基本アーキテクチャはZEN+世代も同様となる。Zeppelinのダイでは、IFOPが4個、ダイ上に分散して配置されている。4個のダイを並べた時に、それぞれのダイ上のIFOPの間の距離がうまく最短になるように配置されている。パッケージ上でダイのうち2個は180度回転させて配置するようになっている。Zeppelinダイの長辺に2個隣接して並んでいるIFOPは、4ダイを並べた時に内側にくるIFOPだ。この2個のIFOPのうち、ダイ中央側になるインターフェイスは、斜めのクロスするダイ接続に使われる。1つは、横に並んだダイとの接続に使われる。逆サイドの長辺に配置されている2個のIFOPは、外側から回り込む配線に使われる。上のEPYCの配線の例を見ると、外側になる2つのIFOPは、DRAMインターフェイスの両側に配置されており、DRAMの配線を邪魔しないように配線できるようになっている。EPYCではパッケージの2層を使って、IFOPの配線をすべてと、左上と右下のダイの各2チャネルのDRAMインターフェイスの配線が実装されている。見てもわかる通り、4個のIFOPのうち3個だけが使われている。これは、DRAMの配線を避けてダイ同士を接続するためで、IFOPは1個が無効になるが、配線がずっと容易になっている。EPYCのパッケージの2つの配線層。Express/IFISと残りの4チャネルのDRAMインターフェイスは、別な2配線層に配置される。Express/IFISはダイの対角に配置されているため、これも見事にDRAMの配線を避けている。Threadripperでも、IFOPの配線は上のEPYCと同様になる。4個のIFOPのうち3個を使って4ダイが接続される。DRAMチャネルと高速I/Oが半分となるので、パッケージ基板の配線はずっと楽になるはずだ。IFOP配線は、クロスする配線があるのでどうしても2層必要になる。Expressは短い方の配線だけで済むはずで、最もやっかいなDRAMにいたっては、2層分の配線が不要になる。全体に、EPYCよりかなりパッケージ配線は楽になるはずだ。ThreadripperとEPYCで共通する技術で、マルチダイアーキテクチャの要だ。FabricやIFOP、IFISはDRAMに同期して動作するためだ。同期させることで、データ転送のレイテンシを最小にし、バッファ類を最小にしている。Threadripperは3,200Mbpsもターゲットに含めている。Threadripperで51.2GB/sとなる。(CAKE)」インターフェイスを介して、IFOPやIFISのSerDesとデータが交換される。unit)」にエンコードして、異なるタイプのI/Oにフィットさせる。FLITを転送している。Threadripperでは、2ダイの間でのメモリ転送がフル帯域でできるように構成されている。上の図のようになっている。ちなみに、以前の記事でこの図を掲載していたが、数字を間違えており、これが正しい。IFOPは、1つのリンクが片方向転送の32-bitリンクのペアで構成されている。Threadripperの場合は片方向が計算上25.6GB/sとなる。Threadripperの場合は、2リンクIFOPでダイが接続されているため、片方向51.2GB/sとなる。3200の場合は、3,200Mbps転送でx64のインターフェイスが2つ。両メモリチャネルともメモリリードなら、2つのx64で合計51.2GB/sとなる。2チャネルのDDR4のメモリリードを、そのままの帯域でもう片方のダイの転送ができる。いえ、ダイをまたいだDRAMアクセスにはレイテンシが生じる。Memory)と呼んでいる。Threadripperでは、ニアメモリアクセスは78ns、ファーメモリアクセスは133nsとされていた。Threadripperは2つのメモリアクセスモードを備えている。Mode(ディストリビューテッドモード)」とAMDが呼ぶモード。Mode(ローカルモード)」とAMDが呼ぶモードだ。UMA/Distributedモードでは、メモリアクセスはインターリービングで4チャネルに同時に分散アクセスする。アプリケーションが4メモリチャネルのメモリ帯域をフルに活かすことができるが、半分のアクセスはレイテンシが長くなる。ThreadripperにおけるUMAとNUMAのメモリアクセス平均レイテンシの違い一方、NUMA/Localモードでは、メモリアクセスはそのアプリケーションが走っているCPUコアのダイに接続されているメモリチャネルが優先される。NUMA/Localモードでは、基本のメモリアクセスは2チャネルとなるため、アプリケーションあたりのメモリ帯域は半減する。メモリアクセスのレイテンシが短縮されるため、一部のゲームなどでは性能が上がる。Threadripperで、各ダイごとにDRAMインターフェイスを1つずつ有効にする方が合理的だ。4つのダイそれぞれにDRAMインターフェイスがある場合は、どのCPUコアも、ニアメモリを持つため、メモリレイテンシを最短にできるからだ。その場合は問題もいくつかある。DRAMアクセスがニアメモリは1チャネル単位になる。ファーメモリは3チャネルで、収まりが悪い構成となる。ニアメモリの帯域は1チャネル分に制約される。トータルのメモリ帯域のうち4分の1の帯域となってしまう。短レイテンシの利点があると言っても、不利は大きい。Threadripperは、1ダイにつき1メモリチャネルが合理的な構成だが、その場合は、問題も生じる。Threadripperの方が不利になりかねない。Threadripperの方が16コア版より、ローカルメモリ帯域とレイテンシで不利となってしまう。Gen2の推測される2つの構成パターンPDF版はこちらそう考えると、DRAMチャネルを有効にしたダイを2つに限定する構成も想定できる。その場合は、CPUコアは4個のダイに分散しているが、16個のCPUコアは同じダイ上にDRAMが2チャネル接続されており、残りの16コアはDRAMアクセスは必ず隣のダイにアクセスしなければならない。ゲームを中心に考えるならこの構成の方が向いているケースもありそうだが、CPUコアとメモリの関係はより複雑になる。Threadripperでは、ゲームモード時にはメモリアクセスがNUMA/Localモード、クリエータモードではメモリアクセスがUMA/Distributedモードとなっていた。Threadripperは、想定される4ダイに分散したメモリの場合は、どちらかというと、後者のクリエータモード向けの色彩が強くなる。Expressインターフェイスはすべて有効にされていた。下の図のような構造となっていた。DRAMは各ダイそれぞれに2チャネルで合計4チャネル。Expressは各ダイそれぞれに32レーンで合計64レーン。Expressのうち4レーンは、X339チップセットとの接続に使われている。Expressデバイスの接続に使うことができるのは、60レーンで、すべてGen3だ。IFOPは2リンクが無効、低速I/Oも無効だ。Threadripper、32コアの構成は下のようになる。4つのダイは各ダイに3つずつのIFOPによって相互接続されている。各IFOPリンクのデータ帯域は、双方向51.2GB/sまでと推測される。説明したように、ダイ上の4つ目のIFOPリンクは無効にされる。Expressのインターフェイスが各ダイに分散されていると仮定した場合のものだ。Threadripperの推定ブロックダイアグラム。Threadripperのダイ同士の接続はEPYC同様となる。各ダイのインターフェイスは半分が無効されたかたちになる可能性が高い。DRAMチャネルは半分の1チャネル64-bit幅になると見られる。Expressとして使われると考えられる。Expressでは、16レーンのうち4レーンがX399チップセットとの接続に使われることになるだろう。Threadripperがこの構成だとしたら、DRAMアクセスはどうなるのか。DDR4-3200の場合、各ダイに接続されているDRAMは1チャネルなので、ダイ当たりのメモリ帯域は25.6GB/sとなる。Fabric回りはメモリクロックに同期する。そのため、IFOPの帯域も計算上で片方向で25.6GB/sとなる。メモリリードでのフル帯域のまま、ダイ間の接続帯域も維持されることになる。Threadripperの推測される構成の場合、ダイ間の帯域はEPYCと変わらず、メモリ帯域だけが半分になる。そのため、メモリアクセスについては、フル帯域でそのままダイ間も転送できるようになる。これは、メモリアクセスのレイテンシを若干低減し、帯域をフル活用できる。Threadripperも同様だ。大きな視点で見ると、AMDはZEN世代になってマルチダイのモジュラーアーキテクチャとしたことで、製品展開の自由度を得たことがわかる。以前にAMDの単一ダイのアプローチでは、32コア版CPUをタイミングよく投入することは難しかった。マルチダイになった今は、ダイ構成が許す限り多彩な製品構成を投入できる。ダイが分散するため、ダイ間接続と、CPUコアとメモリやI/Oをどう構成するかが難しくなる。したトレードオフがあるものの、ZENのマルチダイアプローチは、開発リソースと資金に限界があるAMD向けと言えそうだ。