Deep Learning を GPU で動かすと CPU よりも速くなるというのを見かけたので、次のグラボを買ってみました。あと、CPU 内蔵ではない GPU で OpenCL も試したかったので。
ASUS HD7790-DC2OC-1GD5 ¥16,640
このグラボのスペックは次のとおりです。
GPU: AMD ATI RADEON HD 7790 (1075MHz)
メモリ: GDDR5 1GB (6400MHz)
こちらの性能表を見ると、この GPU は 1792 GFLOPS、CPU は Wikipedia から適当に推測すると 80 GFLOPS くらいでしょうか。
20倍?少なく見ても10倍?なんて淡い期待を抱きつつ、OpenCL のコードを組んでみました。
完成したプログラムを走らせてみると…あれ?あんまり速くなってない。むしろ、CPU から GPU へのデータ転送時間も含めると遅くなるかも、という結果に。しかも、C言語で組まないといけない、メモリの使用制限が厳しい等、OpenCL 対応するのが面倒くさい。
AMD の OpenCL ガイドを読んでみたり、GPU 関連の論文を少し読んでみたのですが、自分の計算処理では期待したほどの効果は得られませんでした。
まあ、GPU で爆速なんて謳っているのは、5~10万円くらいのグラボを2~3枚使ってますしね。
演算量が多ければ安い GPU でもそれなりの効果が得られるのかも知れませんが、作るコストや作り直すコストを考えると普通に CPU でいいかなと思いました。