

大規模(あるいは小規模)な画像処理や機械学習、人工知能を実装するとしたら、GPUとFPGAどちらが優秀ですか？  
超高性能FPGAでもGPUには処理速度の面では勝てないように個人的には考えています。パイプライン化が困難な事やハードである故の物理的な遅れがあると思うので。  
皆さんはどう思いますか？ぜひ皆様のご意見が聞きたいです。


CC BY-SA 3.0
2018-02-06T02:51:52.277
41499
2018-02-07T00:12:07.700
2018-02-06T15:06:39.713
19110
27296
question
gpu fpga
FPGAとGPUの処理速度においてどちらが優れていますか？


FPGA は、任意の計算回路をプログラマブルに実装できる電子回路です。GPU であってもFPGA上に実装は可能だと思っています。GPU
を再現してから、その上で実行されるアルゴリズムに応じて、電子回路レベルでチューニングをかければ (既存の) GPU より高速になることは可能でしょう。

問題は、そこまでするのか、という話に集約するかと思います。機械学習において、 gpgpu 的アーキテクチャを想定した計算アルゴリズム (deep
learningとか)
より本格的に優位になるような、計算アルゴリズムを自分はまだ知らないですし、そういうものは存在する可能性は大いにあるけれども、まだ研究段階なのではないか、と思っています。


CC BY-SA 3.0
2018-02-06T04:05:15.260
41501
2018-02-06T04:05:15.260
754
41499
answer


ケースバイケースです。

まず、CPU に性能の低いものから高いものまであるように、FPGA や GPU にもバリエーションがあります。また、FPGA
はプログラマブルな回路を作るためのものである一方、GPU は画像用の演算をするためのものであり、(GPGPU はできるものの)
目的が異なります。更には、それぞれのハードウェアを動かすためのソースコードをどのように作るのかという部分にもバリエーションがあります。

このため、問題設定や実際のシステム設計に応じて「どちらが速いのか」は変わりえます。つまり、そもそも今回のご質問の前提が広すぎます。

FPGA と GPU の速度比較は論文にもなっていて、 <https://scholar.google.co.jp> で "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 を作る試みがあるため、二者は完全に分けられるわけではない、というものもあります。たとえば
<https://github.com/jbush001/NyuziProcessor> は FPGA 上で GPGPU をするプロジェクトです。


CC BY-SA 3.0
2018-02-06T12:11:24.750
41518
2018-02-07T00:12:07.700
2018-02-07T00:12:07.700
19110
19110
41499
answer