質問: 大規模(あるいは小規模)な画像処理や機械学習、人工知能を実装するとしたら、GPUとFPGAどちらが優秀ですか? 超高性能FPGAでもGPUには処理速度の面では勝てないように個人的には考えています。パイプライン化が困難な事やハードである故の物理的な遅れがあると思うので。 皆さんはどう思いますか?ぜひ皆様のご意見が聞きたいです。
回答: ケースバイケースです。 まず、CPU に性能の低いものから高いものまであるように、FPGA や GPU にもバリエーションがあります。また、FPGA はプログラマブルな回路を作るためのものである一方、GPU は画像用の演算をするためのものであり、(GPGPU はできるものの) 目的が異なります。更には、それぞれのハードウェアを動かすためのソースコードをどのように作るのかという部分にもバリエーションがあります。 このため、問題設定や実際のシステム設計に応じて「どちらが速いのか」は変わりえます。つまり、そもそも今回のご質問の前提が広すぎます。 FPGA と GPU の速度比較は論文にもなっていて、 で "FPGA GPU" をキーワードに調べるといくつか調査結果がヒットします。たとえば少し古い結果ですが、Asano, S., Maruyama, T., Yamaguchi, Y. "Performance comparison of FPGA, GPU and CPU in image processing" (2009) では、問題によって FPGA が速くなったり GPU が速くなったりしています。また、FPGA と GPU を組み合わせて使う研究もあります。 最後に、これらとは別視点の指摘として、FPGA で GPU を作る試みがあるため、二者は完全に分けられるわけではない、というものもあります。たとえば は FPGA 上で GPGPU をするプロジェクトです。