さて、ここからはGPU周りである。まずグラフ11・12のVideo Rendering Testである。結果を見ると案外にLlanoのスコアが伸びないというか、GMA 3000と比べてもそれほど性能差が見られないのは面白い。CrossFireの有無で性能がほとんど差が無いのも特徴的であるが、こちらは後で3Dの結果をみながらまた説明する。ここで性能差がほとんど無く、一方GMA 3000を無効にしたGeForce GT 555が飛びぬけているのは、おそらく律速段階がメモリアクセスにあるためではないかと想像される。

そこでVideo Memory Bandwidthの結果をまとめたのがグラフ13~15である。グラフ11・12の結果は、もっぱらグラフ13のInternal Memory Bandwidthに関係してくる部分で、これと特にグラフ12あたりを見比べていただければ、かなり相似した結果になっていることがお分かりいただけようかと思う。ちなみに余談であるがVideo Renderigで、GMA 3000が現実問題としてDirectX 9でしかスコアが出てこないとか、おそらくはOptimusを構成している関係でか、これにひきづられてGeForce GT 555もOpenGLで動作しないなど、色々と面倒な状況になっている。これはSandraのみならず、後で出てくるCineBenchなどでも似たような状況が散見できる。

さて話を戻すと、そんなわけでGPUのInternal BandwidthはLlanoあるいはGMA 3000のように統合型グラフィックではどうしてもメモリの速度に引きづられるのは致し方ないところか。一方外部メモリ(というのも変だが、要するにGPU用のAllocateしたメモリ領域とその他のメモリ領域)のとの転送(グラフ14・15)結果もなかなか面白い。System to Device、つまりメインメモリ領域→GPU用メモリ領域の転送ではSandy Bridgeが最高速で、Llanoはいまいち、一番遅いのがGeForce GT 555という結果になっているのだが、逆にDevice to Systemでは最高速がGeForce GT555で、CrossFireを構成しないLlanoが一番遅いという、これもこれで理解しがたい結果になっているのが判る。このあたりはSystem Controllerがどう動いているか次第なのだろうが、単純なMemory to Memoryではなく、何かしらやっている印象を受ける。

さて、ここからはGPU Computingである。まずグラフ16~18はCryptgraphyで、OpenCL/Direct3D CS/CUDAの各APIを使って、AES256 Encryption(グラフ16)/AES256 Decryption(グラフ17)/SHA256 Hashing(グラフ18)を行ったケースである。一番汎用性があるのがDirect3D CSを使った場合だが、それが必ずしも成績が出ているとは限らない。Llanoの場合、OpenCLを使ったケースが最速で、しかもGPUとCPUの連動も可能になっているが、Intel GMA 3000やGeForce GT 555はまだそこまでの連動はできていないようだ。

ちなみにこのグラフ16~23までの縦軸の表記であるが、

GPU-IN 内蔵GPU(Llanoの内蔵Radeon HD 6620G もしくはIntel GMA 3000)
GPU-OUT 外部GPU(LlanoのRadeon HD 6630M もしくはGeForce GT 555)

である。

さて、結果を見ると、やっぱりGeForce GTX 555には一歩及ばないというあたりか。たとえばグラフ17のOpenCLのケースで見ても、GPU-IN/GPU-OUTの単独状態でLlanoの性能はおおむね460~600MB/secで、CPUは90MB/sec程度。全部をまとめて動かしてもオーバーヘッドがあるから、960MB/secにやや及ばない程度で、1.3GB/secのDecryption速度を出すGeForce GT 555にはかなわない。理論上は全部足せばほぼ互角になる(461MB/sec+605MB/sec+91MB/sec=1157MB/sec)筈だが、やはりオーバーヘッドが増えるのはどうしようもないということである。それでもIntelのGMA3000よりはだいぶマシではあるのだが、ちなみにグラフ16~18において、SandraではD3D CSのGPU-OUTでIntel GMA 3000が動作して640MB/secなり1335MB/secの性能が出ているとレポートされるのだが、これはおそらくOptimiusによりGeForce GT 555が動作しているものと思われる。

グラフ19・20は同じくGPGPUを使ってマンデルブロ図形を描画させた結果である。グラフ19がFloat、グラフ20がDoubleでの演算となっている。面白いのは、FloatではLlano系が圧倒的な性能を出しているのに、Doubleでは再びGeForce GT 555が優勢なこと。現在のGPGPUのI/Fでは、OpenCLにせよD3D CSにせよデフォルトはFloatであり、Doubleの演算はエミュレーション動作(内部は16bit演算)になるのだが、このエミュレーションではLlano系の性能の落ち方が激しい、という事になる。

最後がやはりGPGPUを使ってのメモリアクセスで、グラフ21がInternal、グラフ22がSystem to Device、グラフ23がDevice to Systemの結果となっている。

テスト内容は、先ほどのグラフ13~15に近いのだが、実際の結果はだいぶ違っている。特にLlano系の性能の高さが特徴的で、Radeon HD 6630Mの性能はGeForce GT 555とほぼ匹敵する性能になっている。ただOpenCL系だと高い性能が出ているのにD3D CS経由だとあまり性能が伸びないのは、ドライバの完成度の問題なのかもしれない。先ほどのグラフ13~15の結果を加味すると、Llanoの性能を生かすには現状Direct 3D系よりもOpenCL系で使うのが得策ということだろうか。

以上CPUとGPUに関して、大雑把にSandraで特徴を見てみた。GPU系については後はアプリケーションでの結果を見るしかないが、CPUについてはRMMAを使ってもう少し細かくみてみたいと思う。