65nm Athlon64 X2のL2キャッシュレイテンシ増加
和田さんの65nm Athlon64 X2のベンチマークが出ている。http://pc.watch.impress.co.jp/docs/2006/1227/tawada93.htm一応ハードを確認しておくとCPU以外に変更点はないようだ笑。注目はメモリアクセス性能がどの程度低下しているかだった。
CPUに計算させるとき一回に利用するデータをキャッシュに載る範囲で最大限にした方が効率がよいのだけど、これを越えてしまうと必要なデータがキャッシュから押し出されて失速といってもいいような性能低下になってしまう。IntelのC2Dが4MB!と極端に大きなL2キャッシュをもっているので、これに最適化したプログラムをL2キャッシュの容量が1/2〜1/4しかないAthlonで動かすと、著しく遅いものも出かねない。
AMDもあたらしいプログラムが出てくる頃までにL2キャッシュを増やす必要があり、そのための変更としてL2キャッシュへのアクセスにかかる時間が12cycleから20cycleへと6割増しになっている。L2キャッシュのコントローラと容量を一度に変更できないのは会社のリソースが小さいためか。http://northwood.blog60.fc2.com/blog-entry-448.html
【表3】PCMark05 Memory Testの結果を改変してL2変更前後のCPUの性能比にした
Read | |
---|---|
16MB | 0.97 |
8MB | 0.97 |
192KB | 0.79 |
4KB | 1.00 |
Whirte | |
16MB | 0.98 |
8MB | 0.98 |
192KB | 0.88 |
4KB | 1.00 |
Copy | |
16MB | 0.97 |
8MB | 0.97 |
192KB | 0.90 |
4KB | 1.00 |
データがL2キャッシュにのる192KBで性能が大きく低下している。特にReadでの性能低下がおおきくて8割以下になっている。192KBというのは64KBのL1dataキャッシュをもつAthlonからするとおおよそ1/3がL1, 2/3がL2に載る。L2キャッシュ本体の性能は0.68でアクセスサイクルから単純に出せる理論値0.60より良い。write側は081でさほど低下していない。レイテンシは12→20cycleで正しいようだからhttp://www.techreport.com/onearticle.x/11486、スループットを改善する工夫がされていそうだ。
面白いところは、これまでのAthlonの2read1writeのアーキテクチャからRead性能が良かったのがR/Wが1:1に近づいている。プログラムの実行性能は0.1割以下の低下なので、Athlonが誇っていたRead性能って、実際のプログラムにはあまり影響しなかったのもしれない。CISCだから、この比率のほうがよかったのかなー?それとL2のメモリ帯域とDRAMのメモリ帯域はほとんど同じってどういうこっちゃ。