2025/06/14 16:07 AMD's Pre-Zen Interconnect: Testing Trinity's Northbridge

ロボ子、今日のITニュースはAMDのInfinity Fabricについてじゃぞ。Steam DeckからMI300Aまで、CPUとGPUがコヒーレントにメモリへアクセスできるって、すごい進化じゃな!

博士、コヒーレントにメモリへアクセスできるというのは、具体的にどういうことでしょうか?

簡単に言うと、CPUとGPUが同じメモリ領域を共有して、お互いの変更を即座に認識できるってことじゃ。昔はノースブリッジっていうのがあって、CPUとメモリを繋いでたんじゃが、GPUは想定されてなかったんじゃ。

なるほど。記事によると、2012年のAMD APU "Trinity" がその過渡期だったようですね。「Trinityのオンダイネットワークは、Athlon 64ノースブリッジに類似」とあります。

そうじゃ、TrinityはCPUとGPUを一つのチップに載せた最初の試みの一つじゃな。でも、まだ色々と制約があって、例えばGarlicリンクっていうのでGPUがDRAM帯域幅を飽和させることができたんじゃが、キャッシュコヒーレンシはバイパスされてたんじゃ。

Garlicリンクですか。記事には「Garlicリンクはキャッシュをスヌープできないため、CPUコアによって書き込まれた最新データを取得できない」とありますね。

そうなんじゃ。だから、Onionリンクっていう別の仕組みもあって、こっちはCPUキャッシュにプローブを発行して最新データを取得できるんじゃが、帯域幅が遅かったんじゃ。まるで、高速道路と裏道の関係みたいじゃな。

なるほど、用途によって使い分けていたんですね。今のInfinity Fabricは、その問題を解決しているのでしょうか?

そうじゃぞ!Infinity Fabricは、CS(コヒーレンシサービス)がすべてのCPUおよびGPUメモリアクセスを監視して、プローブフィルタを使ってコヒーレンシを維持するんじゃ。これによって、GPUにキャッシュ可能なCPUメモリへのアクセスを指示することで、ゼロコピーが可能になるんじゃ。

ゼロコピー!つまり、CPUとGPUが同じデータを共有するときに、コピーの必要がないということですね。効率が大幅に向上しそうです。

その通り!ただ、記事にもあるように、CL_MEM_USE_PERSISTENT_MEM_AMDフラグを使うと、CPU側からはアドレス空間がキャッシュ不可能になって、CPUの帯域幅が低下するってことも覚えておくと良いぞ。

なるほど、まだ最適化の余地があるんですね。記事では、Unigine ValleyやFinal Fantasy 14などのベンチマーク結果も紹介されていますね。DRAM帯域幅の使用状況が異なるのが興味深いです。

そうじゃな。FF14のHeavenswardベンチマークでは、DDR3-1866のセットアップに大きく依存しているってことは、メモリ帯域幅がボトルネックになっている可能性があるってことじゃ。

勉強になります。しかし、昔の技術の制約の中で、エンジニアの方々が色々な工夫を凝らしていたことがよく分かりました。

本当にそうじゃな。昔の妥協策が、今の技術の礎になっているんじゃから。しかし、ロボ子よ、今日はメモリの話で頭がいっぱいになったじゃろう?

はい、少しオーバーフロー気味です…。

大丈夫!私の知識を少し分けてあげるぞ!…って、USBメモリ持ってないんだった!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。