Part 2 : TLB Cache DisableやMemoryのUnganged Modeがアプリケーションに与える性能

このパートでのグラフ中の表記は、

Phenom : MemoryはGanged / TLB CacheはEnabled
Unganged : MemoryはUnganged / TLB CacheはEnabled
TLB Cache Disabled : MemoryはGanged / TLB CacheはDisabled

となっている。

Sandra XII

グラフ41

グラフ42

グラフ43

さてまずSandraだが、Arithmetic/Multi-Media(グラフ41,42)を見ると目だった差は無いと言ってよい。これはプログラムやデータがほぼキャッシュに載ってしまうからであろう。キャッシュに載ってしまえば、TLB Cacheの有無とかMemory Access性能にはまず関係はない。Cache & Memory(グラフ43)も、Cacheが効いている範囲では当然差が出るはずもなし。16MB以降は若干差が出ているが、これはあとでグラフ50あたりで確認してみたい。

グラフ44

グラフ45

ただThroughputは変わらなくても、Latencyは悪化する。特にRandom Access(グラフ44)ではひどくなる、という話はPart 1でも述べた通りで、今回も再確認できた。またLinear Access(グラフ45)では、UngangedでのLatencyが目立って悪くなるのも面白いが、これは理由が簡単に想像できる。恐らくSandra VIIのLatency Testでは、両チャネルにまたがるような形でMemoryをアクセスすることになるのだろう。こうなると、2つのチャネルの同期を取る分オーバーヘッドが大きくなる訳だ。Linear AccessならGanged Modeの方が有利なのは自明で、逆に言えばこの程度のペナルティがUnganged Modeに発生する、ということがわかったのは有意義である。

グラフ46

最後にMulti-Core Efficiency Detailをグラフ46に示すが、転送サイズが小さいとUngangedが有利なのに、大サイズでは一気に悪化すること、またTLB Cacheの有無もThroughputに関係してくることが見て取れる。これは特にMulti-Threaded Testなどで影響を与えそうだ。