Sandra 2015 SP1b(グラフ93~115)

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

もう一つ、Sandra関連のOpenCLベンチマークも行ってみた。ちなみにSadnra 2015からのUpdateでは、新しくHalf-Float(16bit浮動小数点)やQuad-Float(128bit浮動小数点演算)の扱いも加わった。

ということで、以下順に。まずはマンデルブロ図形描画のSingle-Float(グラフ93)で、まぁこれはセオリー通り。Half-Float(グラフ94)は、流石に今のGPUは16bit Float×2をまとめて処理するような仕組みは持っていないので、ほぼグラフ93に等しい結果である。

ではDouble(グラフ95)は? というと、ここで俄然Keplerアーキテクチャ有利である。もちろんGTX 780 Tiは倍精度演算をサポートしているわけではないので単精度演算器を組み合わせてになるが、この処理はKeplerの方が効率よい。

それでもGTX 980 Tiはかなり健闘しているともいえるのだが。この性能差は、Quad-Float(グラフ96)で更に顕著である。現実問題TeslaではなくGeForce GTXグレードでこれだけの計算をする機会は滅多にないとは思うが、32bit以下ならMaxwellは有利ながら64bit以上は依然Keplaeが強い事が再確認できるものになった。

以下もう少し専門分野を。まずは暗号処理である。まずAESの暗号化(グラフ97)であるが、これはGTX 980 Tiが圧勝である。当然AES復号化(グラフ98)も同じ傾向になる。ちょっと違うのがHasing(グラフ99)で、特にSHA1の場合にCUDAの成績が異様に悪いのも不思議である。ただSHA-2になると再びGTX 980 Tiが最高速という構図に戻っている。

次が金融分野。オプション価格のシミュレーションである。まずはブラックショールズ方程式だが、Float(グラフ100)、Double(グラフ101)を問わずGTX 780 Tiが健闘しているのはちょっと不思議だ。Doubleで最高速なのはまだ判るが、なんでFloatでGTX 980 Tiに肉薄する(ComputeShaderを使うと上回る)のかはかなり謎である。

もっともBinomialだと、Double(グラフ103)はGTX 780 Tiが高速だがSingle(グラフ102)はGTX 980 Tiが優勢というセオリー通りの結果になっている。これはモンテカルロ法も同じで、Float(グラフ104)はGTX 980 Ti優勢、Double(グラフ105)はGTX 780 Ti優勢の構図が繰り返されている。

科学技術計算分野もやはり同じ繰り返しであり、SGEMM(グラフ106)はGTX 980 Tiが相応に高速だが、DGEMM(グラフ107)だとやはりGTX 780 Tiが有利である。

面白いのはFFTの結果で、こちらの場合演算性能そのものもさることながら、データの転置をどれだけ高速にするかが鍵である。結果、Float(グラフ108)もDouble(グラフ109)も、メモリ帯域幅が少ないGTX 980が不利で、384bit幅のGTX 780 Tiが結構高速、それを上回るのがGTX 980 Tiということになる。

DoubleだとGTX 780 Tiが有利かと思ったが、GTX 980 Tiの方が高速というのは演算性能よりもメモリアクセス性能に起因する部分なのかもしれない。ただN-Bodyに関しては、Float(グラフ110)はGTX 980 Tiが、Double(グラフ111)はGTX 780 Tiがそれぞれ優勢というセオリー通りの結果に落ち着いている。

グラフ112と113は、DirectX 10/OpenGLを使ってのマンデルブロ図形である。要するにグラフ93~96をGPGPUではなくDirectX/OpenGL経由で行ったという話である。なぜかDirectX 11を使った結果は全滅だったので、ここでは省いてある。

まずグラフ112はHalf/Single-Floatの結果で、これはほぼセオリー通りMaxwell系が高速な処理だけに、GTX 980 Tiが最高速である。

ではDouble/Quad-Floatは? ということでグラフ113を見ると、OpenGLはNativeでFloatをサポートしているが、DirectXではEmulatedとなっており、ここで実装の差が出たようでDoubleの結果がかなりバラついている。Quad-Floatもかなりバラつきがあるが、これも実装の差があるためかDirectXとOpenGLで逆の結果になっているのが面白い。

最後にメモリ帯域の確認である。グラフ114はInternal Memory(基板上のGDDR5)へのアクセス速度で、これはまぁスペック通りという結果である。

理論帯域と実際の結果を比較してみると、

モデル名 理論帯域 実測値 効率
GTX 780 Ti 336.0GB/s 224.0GB/s 66.7%
GTX 980 224.0GB/s 153.2GB/s 68.4%
GTX 980 Ti 336.5GB/s 227.6GB/s 67.6%

ということで、大体どれも同程度の効率に収まっている。一方、PCIe経由でのPC側のMemoryアクセス性能をグラフ115に示すが、こちらもPC→GPUが大体11.5GB/sec、GPU→PCが10.8GB/sec程度でどちらも±0.2GB/secの範囲に収まっているから、まぁ測定誤差の範囲で、大きな差は無いとしてしまってよいと思う。