Sandra 2014(グラフ51~73)

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

Basemark CLではNVIDIA系がかなり動かなかったので、もう一つOpenCL系というかGPGPU汎用ということでこちらも実施してみた。ちなみにOpenCL系のベンチーマークはGPU単体のみを記載しており、CPU+GPUとかCPUのみの結果は全部省いてある。

まずはGPGPU Processingで、これはマンデンブロ図形の描画計算である。Float(グラフ51)だとAMD系はCUDAとCompute Shaderであまり差が無いのに、NVIDIA系では結構差がある(しかも最速はCUDAではなくComputeShaderである)あたりが面白い部分であるが、GTX 750 TiのスコアはGTX 650 Ti寄りのケース(CUDA)とGTX 760寄り(OpenCL)の両方があって、明確なポジションを定めにくい。とはいえ、R7 275には結構差をつけられた結果となった。

面白いのがDouble(グラフ52)で、ここではGTX 750 TiはGTX 650 Tiにも劣ることになっている。NVIDIAの場合、Doubleユニットはデフォルトでは搭載しない(か、無効になっている)からこれはFloatユニットを使って処理を行っている訳で、この結果GTX 650 TiやGTX 760ではFloatの1/4~1/5程度の性能になるのは筋が通っている(例えば64bitの乗算は、32bitの乗算×4+加算が必要になるから、4倍以上の性能差になる)。

GTX 750 Tiがこれ以上に落ち込んでいる、というのはおそらく内部構造かコントロールのどちらかが変化している事を物語っている。

ではもう少し現実的なベンチマーク、ということでEncryptionを見てみる。まずはAES128のEncryption(グラフ53)とAES256のEncryption(グラフ54)、AES128のDecryption(グラフ55)とAES256のDecryption(グラフ56)である。R9 270がブッチギリで高速なのはおいておくとして、これらのテストではGTX 750 TiがGTX 760と同じか、それをしのぐほどのスコアを出している事が見て取れる。

その一方、256bitのCUDAのスコアがないのはエラーでテストが実行できなかったためで、内部構造が結構変わったのではないかという推測を裏付ける結果になっている。一方のR7 265の成績もそう悪いものではない。

面白いのはHasingである。SHA1(グラフ57)やSHA1-256(グラフ58)では、AMDの性能の高さが明確である。これがSHA2-512では見事に逆転するあたりは内部キャッシュのデータの持ち方の問題か、もしくはメモリアクセスに関する何らかのボトルネックがあるのかもしれない。

256bitまでの連続データはうまく扱えても、512bitだと破綻するのがAMD、それなりに扱えるのがNVIDIAという感じだ。ちなみにSHA2-512では相変わらずGTX 750 Tiがエラーを出す。

次がFinancial Analysisであるが、Black-Scholes/Binomial/Monte Carloの3つの手法をFloat/Doubleでそれぞれ実行したものだが、全てのケースでGTX 750 TiはCompute Shaderが動作しなかった。このあたりになってくると、ドライバの問題も確実にありそうな気がする。

それはさておき、面白いのはFloatとDoubleの性能差である。まずBlack-Scholes(グラフ60~61)であるが、Radeon系はFloatだと結構良いスコアなのにDoubleだと急激に性能を落とす。

ただそれもAPIによって落ち方が違い、OpenCLだと10分の1以下に落ちるのにComputeShaderだとそれほどではなかったりする。一方のGeForceはというと、こちらもCompute ShaderにおけるGTX760のスコアはちょっと理解不能で、何か動作がおかしい気がする。

ただそうした問題はともかくとして、全般としてRadeon系が比較的高いスコアを出しているとはいえる。R7 275はまぁ順当なスコア、GTX 750 TiはDoubleで大きく落ち込む傾向が変わらない。

Binominal(グラフ62~63)もこうした傾向は変わらず、特にOpenCLにおけるGTX 650 TiとGTX 760のスコアは、CUDAの結果と比較すると明らかに何かおかしい気がする。

比較的まともな結果に落ち着いたのがMonte Carlo(グラフ64~65)であるが、傾向そのものは先の2つのテストと同じであった。

次はメモリアクセス。まずはInternal Memory(グラフ66)で、要するにオンボードのGDDRのアクセス性能比較である。こうなるとほぼスペック通りということになるが、OpenCLを使うとRadeon系が異様にスコアが悪い。

例えばR7 265なら256bit/5.6Gbpsだから理論上180GB/sec弱の帯域がある。で、ComputeShader経由だと136GB/secなのにOpenCL経由だと51.17GB/secというのは、ドライバの問題かベンチマークの書き方の問題か、判断しがたいところだ。

ただ同じコードを使うNVIDIA系はちゃんとまともな数字がでているあたりは、ドライバの問題な気はする。ともかく、ComputeShaderの数字を見る限りは妥当なスコアといえると思う。

面白いのは次のSystem to Device(グラフ67)とかDevice to System(グラフ68)で、NVIDIA系はほぼ変わらず11GB/sec程度を確保できているのに対し、AMD系はAPIによって結構差が出ている。この現象そのものは前からあって珍しくはないのだが、取りあえずR7 275でも変わっていない事は確認できた。まぁPitcainコアそのものだとすればそれも無理はないのだが。

グラフ69とグラフ70はDirectX/OpenGLを使っての、まずはComputationである。要するにマンデンブロ図形描画であるが、R7 265がGTX 760と同程度かやや勝る程度の良いスコアを出している(というべきか、GTX 760が振るわないというべきか)。

唯一の例外がDirectX 9.3のDoubleで、何か異様にGeForce系列が突出している。3製品全部が突出しているあたりは、もうGeForceはそういう特性なんだろうと思うしかないが、どうしてこういう不思議な結果になるのか理由が知りたいところだ。

続くグラフ71~73はDirectXを使ってのメモリアクセス性能だが、今度はR7 260とR7 265がどうしてもテストを実行できなかったので結果から抜いている。さて結果は? というとこれもグラフ66~68とほぼ同じく、GeForce系は理論メモリ帯域に比例した数字になっており、一方のR9 270は理論値の半分以下という結果となった。