Sandra 2012 Engineer Edition SP3(グラフ1~19)

SiSoftware
http://www.sisoftware.co.uk/

まずはこちら。今年3月末にSandra 2012もSP3がリリースされた。実はSP3でない前バージョンのSandra 2012をTrinity上で動かすと100%クラッシュする。という訳で、今回はSP3にバージョンアップをして実施した。ところがこのSandra 2012 SP3の場合、Java関係のベンチマークが残らず"Out of Memory"でエラーとなる関係で、今回はJavaでのベンチマークは無しである。

さてまずグラフ1・2がDhrystoneとWhetstoneである。正直微妙、というかA10-4660Mのスコアは2.3GHz動作のFX-4100と大差なく、これだけ見ているとTurboが効いているかどうかすら怪しい位だ。もっともDhrystoneでは殆ど差がないが、Whetstoneでは若干(3~6%)の性能の上乗せがある。おそらくDhrystone/Whetstoneの様に全コアがフルに動くケースでは、そうそうTDPにゆとりがある訳ではなく、性能の上がり代も少ないという事だろう。ただそれでも若干Whetstoneの方がゆとりがある分、ちょっとだけTurboが効いたというあたりか。A8-3870Kとの差は明確にあるのだが、A8-3870K(2.3G)との比較を行うと、意外に差が少ないというか、そう悪くない印象も受ける。

雰囲気がやや変わるのはグラフ3のMulti-Media Benchmarkとグラフ4のEncryption。こちらでは拡張命令(AVXやAES命令)が使えるため、A10-4660Mの性能はぐんと跳ね上がる。とは言えグラフ3ではFX-4100(2.3G)とスコアは大きく変わっておらず、Turbo Coreの効用はもとよりIPC改善の雰囲気もあまり感じられない。逆にA10-4660Mが最高速なのがグラフ4で、これはAES 1.1の対応も関係しているのかもしれない。

グラフ5はMulti-Core Efficiencyであるが、BandiwidthはFX-4100(2.3GHz)と大差ないのにLatencyはだいぶ改善されている印象がある。とはいえ、A8-3870Kと比べるとLatencyはかなり大きいので、一概に良いとも悪いとも言いがたいのだが。グラフ6がこのMulti-Core EfficiencyのDetailであるが、4×1K~16×4KあたりではFX-4100(2.3GHz)を上回るスコアなあたりがLatency改善の肝なのかもしれない。ただL3を持たない関係で、4×1M~4×4Mあたりのスコアはかなり悪く、このあたりの勘案が難しいところだ。

グラフ7はMemory Bandwidthの結果である。IntegerとFloatはStreamの結果、64M-1Gは(後でグラフ10で出てくる)Cache/Memory Benchmarkの64MB~1GBの結果の平均値である。このテストでは、案外にA10-4660Mのスコアが悪くないのが判る。勿論Streamに関してはA8-3870Kの性能が高いのだが、これはMemory ControllerそのものというよりはStreamのプログラムそのものの実行性能がA8の方が早いと解釈すべきに思われる。ちなみにグラフ8・9はそのStreamの結果の詳細を示したものだが、これは後でRMMAの最後で比較するために掲載しているもので、解釈は後回しにさせていただく。

グラフ10がそんなわけでCache/Memory Bandwidthの結果である。A10-4660MはL1~L2の有効な範囲では、FX-4100(2.3G)よりも良いスコアを出してはいるが、これはひょっとするとTurboが有効、という可能性は捨てきれない。比較的ギャップの大きい16KBでのスコアは、144.44GB/sec vs 117.86GB/secで性能差は22.6%ほどになるが、これはTurbo Coreによって2.8GHzあたりで動作しているのとほぼ等価だからだ。後述するが、RMMA実施中は常時25%前後のTurboが掛かった結果になっており、ここもおそらくそういう結果であろうと判断される。

グラフ11~13がLatencyである。どれをみても、L1が有効な範囲ではA10-4660MのLatencyが3cycleに減っており、これだけ見るとまるでStarsコアなみにLatencyが削減されたかのように見えるが、これもTurbo Coreの効用の可能性は否定できない。同じくTurbo有効なFX-4100が3.8cycleまで減っている(こちらは定格3.6GHz→最大3.8GHz)あたり、このあたりの数字はちょっと怪しい。ただ、どのケースでもL2が溢れてMemory Accessとなる2MB以上(Sandraでは全コアが一斉に動く関係で、2MBの共有L2は各コアが1MBづつ使った時点で飽和し、その先はL2キャッシュミスとなる)でのLatencyの低さはあまりTurboに関係ない(Memory Access待ちとなるので、Turbo動作をしなくなる)と思われ、そうなると比較的良好なLatencyに留まっていることが判る。大雑把に言えばFX-4100というよりはA8-3870Kに近い傾向がここからは見て取れる。

さて、ここからはGPUのテストをいくつか。さすがにRadeon HD 6850をそのまま持ってくるのも何なので、ここではA8-3870Kとの比較である。まずグラフ14がOpenCL及びDirectComputeを利用してのGP Processingである。OpenCLの場合、テストはCPU+GPU、GPUのみ、CPUのみの3パターンで行われるが、ここではGPUのみの結果を示している。結果はご覧の通りで、「あれ?」といったレベル。特にOpenCLにおけるNative Floatの場合はA10-4660Mの性能はA8-3870Kの1割ほどでしかなく、幾ら何でもこれはおかしい気がする。もっともGPU Cryptography(グラフ15)の結果も似たようなもので、GPGPUを使うAES Encryption/DecriptionにおいてA10-4660Mのスコアは「悲惨」でしかない。OpenCLのHasingに関してはなぜか良いスコアが出ているが、DirectComputeに関しては大きく落ち込んでおり、そもそも一貫性が無いイメージである。これはGPU Memory Bandwidthの結果(グラフ16)でも同じで、A8-3870Kに大きく水をあけられている。

ではDirectXでは? ということで、まずグラフ17がVideo RenderingのFloat、グラフ18がDoubleの結果である。どちらも概ね同じというか、やはり大差があるのがわかる。もっとも面白いのはグラフ17と18でOpenGLを比較すると、Floatでは3倍強の性能差がDoubleでは1.5倍強と性能差が縮まっている事で、このあたりがアーキテクチャの違いかもしれない。Video Memory Bandwidth(グラフ19)に関してもグラフ16の傾向がそのまま持ち込まれている感じだ。

総じて、SandraにおけるGPU関連テスト結果を見る限り、

  • TrinityのGPU性能が低い
  • Trinityのドライバが全然最適化されていない

のどちらか(もしくは両方)が考えられる。このあたりは、他のテストも交えてみないとちょっと判断がつきかねるところだ。