- プログラミング
C++ AMP Benchmarkアプリをリリースしました
C++ AMP Benchmarkアプリをリリースしました
以前、以下のようなC++ AMPに関する記事を書いたのですが、
どうもWindows Storeアプリからでも使えるようなので、アプリにして公開してみました。
詳細は以下のページをご覧ください。
C++での開発は久々でしたので、DLLの扱いなどいろいろ勉強しながらでしたが、サンプルコードなどを見ながら、何とかリリースまでたどり着けました。
これで、どのようなマシンでも(Windows RTは無理ですが)GPGPUの効果を測定できます。
C++ AMPのサンプルやNVidiaやAMDから出ているSDKなどに入っているベンチマークアプリよりも、Windows Storeからインストールするだけですからお手軽に試せます。
ついでに、C#やC++のマルチスレッド処理のコードも入れておいたので、用途に応じてどのような並列化処理を用いるかを決める際にも役立つかもしれません。(おおよそコア数分のパフォーマンスが出るので見積もりもなにも必要ないかもしれませんが)
ちなみに、手元のSurface Pro 2(Core i5 4200U 1.6GHz) にて測定した結果です。ディスクリートなGPUが無くても、CPU内臓のGPUでもCPUの最高性能に対して、10倍以上のスピードが確保できるようです。C#でシングルスレッドのコードを書いている人からすれば、C++AMPの導入だけで、50倍以上の性能ゲインを得ることができます。それも驚くほど簡単に導入可能ということで、Storeアプリで困ったらC++AMPということになりそうですね。
ちなみに、以下は前身のコンソールアプリで測定した結果ですが、Kaveri、Keplerなどもっと高速なGPUを用いた場合は目を見張るような劇的な性能アップが見込まれます。
以下のように、リニアに表現するとKeplerとCPUの比較では1000倍近い性能差が出ることもあるようです。
環境の詳細は以下です:
Core i5 U : Surface Pro 2 ( Core i5 4200U 1.6GHz )
Kaveri : LuvMachine Slim (AMD A10-7850K)
Kepler : 自作PC (Core i7 3770K , Nvidia Tesla K20C)
新原さんご協力ありがとうございました。