STREAMベンチマークでGPGPUのメモリバンド幅を計測

GPGPUのメモリバンド幅といえば、CUDA SDKに含まれるbandwidthtestがあります。簡単に計測する手段として良いものなのですが、CPU計算のそれでは、STREAMベンチマークが一般的でした。

NVIDIA GPUの実効メモリ帯域(STREAMベンチマーク)

STREAMベンチマークで計測した事例がありました。やはりベンチマークと言うからにはなるべく似た環境が良いですね。有り難いです。ここでの計測はGTX285でのそれです。
CPU比で7倍から8倍程度である、というのはオーダーでは予想通りなのですが、それをちゃんと確認したことには意味があると思います。
この記事の最後の段落にある二つのことが、ああ、そうだよなあと。

一般的なHPCアプリケーションを何らかの形で GPU 用のコードにポーティングできて、かつ、GPU上で理想的なメモリへのコアレッシング・アクセスが可能な最適化が成功した時に達成しうる「性能向上率」の平均的な値と言うことになります。

GPU処理計算で、数十倍〜100倍といった性能向上がみられる事例は、多々ありますが、これらは、さらに、CUDAプログラミング環境のチューニング技術を駆使することによって達成できる性能です。

GPGPUって速いんでしょ?」「PC1台でスパコン1台分なんでしょ?」的な質問を良く受けるのです。そのたびに何故速いのかから始まって、それを踏まえて実際にはそんなに性能が出る訳じゃないんだよ的な話をすることになるのです。あまりうまく説明出来なくて、相手を納得したようなしていないような状態にさせてしまうことが多いです。このあたりの説明を使うと前よりはうまく説明出来るような気がします。