レイテンシと帯域幅とHyper TransportとFreedom Fabricと。

 個人的にどうしても気になる話があるので一つエントリを足しておこうかと。
 まあ年内最後ということでこんなすかしっ屁みたいなエントリでもいいよね。

 ◇

 季節柄、これからを振り返る~将来を見る、のようなネタが多い今日この頃。
 兎に角色々と瀬戸際なAMDプラットフォームについてもまぁ散々に言われている・・・が。
 AMD関連については兎に角テキトー、というか恐らく書いてる方が理解してない記事も多いので、どうにも酷過ぎる部分にちょっとコメントしてみる。それがコレ。

 Freedom FabricはInterConnect技術であって、CPU-Direct Transport技術でないよ?

 勘違いしている記事多過ぎやしません?
 AMDがInterConnectを手にしてARMの大規模クラスタを作れるようになったのは事実なのだが、これがHTの代替になる・・・ワケないでしょ、と。
 まあ帯域はバス幅で稼げるにしても、兎に角レイテンシ(=遅延)とコストが違い過ぎる。これは物理メモリが各プロセッサノード=ソケットにぶら下がる上に、普通にCPU跨いだメモリ空間にデータ展開されちゃったりする現在のx86の複数CPU構成では致命的問題なんですよ。
 具体的に製品を見ても、4ソケット使用を想定しているOpteron6000シリーズががわざわざHTを4系統も持っているのは「全てのCPU=メモリコントローラに(別CPUを経由することなく)1ホップで辿り着く為」で、仮に2ホップ接続としてしまったらそれだけでシステム性能に影響が・・・ってぐらい、レイテンシの問題ってのは重大なんですわ。

 ♯つかなんでIntelのQPIに何も言わない連中がAMDのHTは無くなるとか言っているんだろ?
  ここが理解出来ない。いやマジで。

 ◇

 一方、ARM版OpteronがIOにHTを持たなくともむしろその方が自然だし、下手したらオンチップでFreedom Fabric用の実装を持っていたとしても全然不思議ではない。

 それは何故かというと、そもそもARM版Opteronではプロセッサノード間のメモリ共有なんて想定されないだろうから。
 逆に言うとIOだけなので、多次元クロスバー構成のFreedom Fabricのような接続形態が実に理に適ってるワケですな。

 AMDが想定しているのはARMのクラスタリングで、メモリ境界は各プロセッサノードで独立している構成でしょう。例えばWebサーバなんて、「256セッションを超強力な1ノードで処理」するのが良いのか、「16ノードの小さなクラスタで各16セッションずつ処理」するか、最近の流れだと後者の方が良さそうだ、って話なので。

 ◇

 とはいえ、実はこれソフトウェア側から見ると結構大変なことなのよね。
 現在のソフトウェアは「256セッションを超強力な1ノードで処理」するのに熟成されていて、「16ノードの小さなクラスタで各16セッションずつ処理」というのはまだまだ開発途上。
 まぁ世間では「クラウド」の分散処理が持て囃されているが、現状のアレはものすごく粒度が大きいので、そのまま現状のARMに喰わせるのはかなり微妙なトコロ。

 そこで期待されているのが、多くのコアを一つのプロセッサノード=ソケットに封入したメニィコアなARM CPU。
 ノード内では複数コア間のメモリが共有なので、単一のプログラムでノード超えの高レイテンシ高コストなメモリアクセスを想定する必要がなく、現在のマルチスレッドプログラミングの延長線上で開発が出来る。
 幸いARMのマルチコアは立ち上がったばかりなので、x86のように「少数の複数コアには最適化」という中途半端な状態に留まることなく、一気にメニィコアに飛ぶことも出来る。

 ・・・というか、そっちの方に今何とか飛ぼうとしている。
 この辺りはハードウェアが先かソフトウェアが先か、みたいな面があり、また実際製品が出てきたところで処理性能どうなるんだ、ということもあり。
 実際いくらARMとはいえ例えば64コアでメモリ共有なんて言い始めたら帯域的に相当苦しいのは目に見えてるし、とはいえ現在のARMの性能考えたらこれぐらいは集積しないとサーバにガンガン使えるノードにならんし、そうなると1チップ当たりの集積コア数は減らしてメモリ帯域を確保する方向に走るか、それとも多chメモリプラットフォームを新しく作るのか・・・と。

 まあどちらにしろノード=ソケットを超えるメモリアクセスは想定されない筈。ノード間でのメモリ共有ってのは実は結構コスト高だし、そんなことしなくとも単一ノードの中に多数のCPUコアと十分なメモリ容量があり、それらをどうやって振り回すかソフトウェア屋は頭を抱える筈。

 ◇

 まぁこんな感じで、AMDが飛びついたARM Serverについても決してラクな道のりでも何でもなく、もしろバクチに近いってのが正直なところ。
 そして来年も、GFのプロセスは相変わらずgdgdのようだし(とはいえ28nは諦めて次で何とか立て直そうとはしている模様)、TSMCの28nは今以上に受注パンクって話だし(慌ててキャパ増やそうとしているがそんな簡単に出来る程甘い世界ではない)、AMDにとって「いい話」が聞こえてくる前兆は残念ながら見えていない。

 ♯結果としてPiledriverは32nのまま出荷だし、次世代APUとSteamrollerは28nだが前者は製造キャパ、後者はそれに加えて物理設計完了時期にまで不安を抱えるというハメになりそう。

 まあ兎にも角にも、2013年も「踏みとどまる」しか見通しの無い、AMD。
 残念ながらこの「来年の見通し」については当方も世間の大多数に同意せざるを得ない。

 幸い、奈落の底に落ちる前に何とかデスクトップ版Trinityで「蜘蛛の糸」を掴んだのが今年のAMD。
 来年も何とかこの細い糸を切らさずに、少しずつでもプレゼンスと収支の改善をして欲しいところなのだが・・・さてどうなることですかね。

Share