Sandra 2014その2(グラフ14~32)
続いてもSandra 2014による検証となる。何で「その1」と「その2」に分けたのか? というと、AMDではKaveriについて、CPU単体ではなくAPUとしての性能を強くアピールしたい意向なので、これを汲んでGPU周りのテストを分割した。単にグラフの数が多かったので分けた方が読みやすい、という話もなくはないが(笑)。
さて、グラフ14とグラフ15はOpenCLおよびDirectComputeを使ってのマンデンブロ図形描画の結果である。やってることはグラフ5やグラフ6と変わらないのだが、CPUだとFloatで100MPixel/sec程度、Doubleで50MPixel/sec程度なのが、GPUを使うとFloatで1GPixel/sec弱、Doubleでもそれなりの性能になることがわかる。DirectComputeでDoubleの結果が低いのは、DirectComputeだとDoubleをNativeで扱えないので、Emulation動作になる関係である。
それはさておき、ここではKaveriがRichlandと比べて2割増程度のスコアを収めている(OpenCLのDoubleだと4倍近い!)。定格動作周波数だとA10-6800KはGPUが844MHz、対してA10-7850Kは720MHzとこちらも17%ほど動作周波数は低いのだが、シェーダの数はA10-6800Kが384基、対してA10-7850Kは512基であり、しかもアーキテクチャがより進んだGCNだから、もう少し差があってもよさそうな気はするが、これはアプリケーションにもよるのかもしれない。
ではほかのアプリケーションでは? ということで、まずはCryptography(グラフ16~22)。これはAES暗号化/AES復号化/SHAによるハッシュの3種類の計算(実際はAESは2種類、SHAは3種類なので合計7種類)を、
- CPUでSSE命令などを使って実施
- OpenCL経由でCPUを利用して実施
- OpenCL経由でGPUを利用して実施
- DirectCompute経由でGPUを利用して実施
- OpenCL経由でCPU+GPUを利用して実施
の5パターンで実施したものだ。
さて結果を見ると、大体以下のような共通した傾向を見て取れる
- OpenCLとDirectComputeのどちらが高速か、は内容によって異なるが、どちらにしてもGPUを単体で使うとCPU単体に比べても非常に高速で、Richland比で2倍以上の性能になることも珍しくない。
- CPU+GPUの構成では、むしろ性能が下がる。やはりCPUが足を引っ張る形になるようで、その意味ではまだCPUとGPUの処理のオフローディングはうまく行っていない。
- CPUをOpenCL経由で利用すると、当然といえば当然だが性能が落ちる。
またAESの暗号化/復号化に関してはCPUのAES命令などを使う事で効率よく処理ができているが、SHAのHash処理はこれがうまくないようで、特にSHA2-512だと非常に性能が落ちている。
唯一このSHA2-512ではRichlandの方がKaveriより高速、というあたりは、512bitもの長さのデータをハンドリングしようとすると現在のGCNではうまくいかないということかもしれない。またDirectComputeではこのSHA2-512が扱えなかった。
続いて金融関係ということでグラフ23~27がそれぞれBlack-scholes(ブラック・ショールズ方程式)/Binominal Euro Option(二項価格評価モデル)/Monte Carlo Euro Option(モンテカルロ法)の3種類の価格決定モデルを、それぞれFloatとDoubleで実施した場合の結果である。
こちらも5パターンで実施しているが、こちらはもっと極端で、
- どのモデルでも、Floatの場合はGPUを使う事で極端に高速化される。Doubleの場合は多少性能差が縮まるが、それでも圧倒的な差である。
- どのケースでもKaveriのGPU性能はRichlandと比較して十分に高速。
- CPUとGPUを併用すると性能が落ちるのはここでも変わらず。
というあたりだろうか。ちなみにRichlandでDirectComputeを使うと、Monte Carloの 一部ではテストが実行できなかった。
次にもうすこしGPU単体の性能を、ということでグラフ28~30がMemory Accessの性能である。ここではCPU単体は抜いて、OpenCLもしくはDirectCompute経由でのテストとなっている。
結果をみると、Internal/System to Device(CPU→GPU)/Device to System(GPU→CPU)のどのケースでも、KaveriはRichlandの倍以上の性能になっている。とはいえ、これはそもそものメモリ性能がKaveriで非常に高いためではないかという気がする。
あと面白いのは、ここではCPU+GPUのスコアが最高な事。純粋にメモリアクセスだけであれば、CPUとGPUでそれほどぶつからないためにオーバーヘッドが少なくて済むということかもしれない。
最後にDirectXを使ってのマンデンブロ図形描画をFloat/Doubleで行ったのがグラフ31とグラフ32である。こちらでも平均してRichlandの2倍以上の性能をKaveriがたたき出している。筆者の実感としては、このあたりが一番実際の性能に近いのではないかと思う。