質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

7回答

3351閲覧

FPGAのデメリットについて?

oookabe

総合スコア126

FPGA

FPGAは、製造後でも設計者によって書き換えができる論理回路です。即時に書き換えが可能なため、開発期間を短縮することが可能。何度でも書き換えられるといった柔軟性があるため、製造や開発における費用も削減できるといったメリットがあります。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2018/03/02 23:44

編集2018/03/03 01:15

7年前頃、FPGAについて非常に注目して理想な画像処理装置と思っていました。
ところが、調べるに連れてがっかりしました。
以下は私がFPGAに対する認識ですけれども、どんなご意見でも宜しいですので、
ぜひご批判、ご高見を承りたい。

① 有名なFPGAメーカー(2つ)ともにIP(知的な資産)を強調して、基本道具としてのFFTでさえライセンス料を払わなければ利用できない(処理サイズの小さいFFTならフリーだけど)。
これに対してNVIDIAのGPU環境では何でも「フリー」----いろんなGPU化済みの数学LIBをただで、即座に利用できる。

② 開発環境:FPGAが高価な開発環境、開発ツールが必要 (GPUは無料)

③ GPUに任せる仕事は事前に知る事が必要なく、アプリケーション起動してからどんな仕事を任せても良いし,どんな並行実行要望を出してもエラーにならない(リソースが足りたい場合、自動スケジューリングしてくれて、能率良く実行してくれる)。に対して、FPAGを起動時点でこれからやる仕事を全部FPGAに知らせる必要。

④ FPGAは実行時動的に変更や、部分的に変更(並列処理内容の変更)ができない
-----将来的にできる?

⑤ ソフトコードを論理回路に変換する(焼き付ける)時間が長く==一日以上かかる事もあるって、開発とデバグ、修正能率が悪い。

⑥ FPGAアプリケーションのバージョン更新には専門知識が必要とし、普通のエンドユーザができないので、問題があればFPGAそのものを回収せざるを得ないこれは大変だ!

⑦ 画像処理分野はあの手この手を使うので、大量のLIBが必要なのに、FPGAはフリーLIBが貧弱
に対して、NVIDIAは豊富なLIBを提供してくれる。それに、世の中ただで利用できるGPU LIBがいっぱいある。

⑧ AIにおいてGPUより速いと宣伝されているようですが、なかなか普及されていないですね。
原因は何でしょうか。
虚偽や過大宣伝?
例えば、凄い旧版のGPUと比べたり、そのメーカー内部で非常に特殊なやり方や評価の仕方だったりして、世の中の人に利用や実証させる事ができないのでは?

⑨ とにかく、今の時点(2018年3月3日)において、
deep learning 分野に関して、最新のFPGAは最新のGPUに速度や精度の面に勝っていない。
そして今後も、AIにおいてFPGAはGPUに勝つことに理論的な根拠も兆候も皆無では?

===補足説明===
下に「お母さん」「お父さん」のお話を頂いたので、やはり上記文章に対する補足説明をしなければならないと思います。
自分は画像処理や信号処理専門で、あくまでこのような分野においての注文です。
勿論処理内容が固定で、ロジックや計算簡単で+リアルタイム性が高い要求の場合は
FPGAはベストです。

例えば、並行I\O制御、特定の通信プロトコルの実装、国際規格で決まった画像圧縮・伸長処理にはFPGAが向いています。
処理内容が乱雑であの手この手の数学手法を駆使しなければならないし、
進歩や変動の激しい算法の実装にFPGAは向かないではと自分の実感ですね。

本来AI分野でのFPGAの活躍にも期待していたのですが、
AIにおいてGPUより速いと宣伝されているようですが、なかなか普及されていないですね。
原因は何でしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2018/03/03 04:22 編集

普通のエンドユーザーがgpuをバリバリ使うような画像処理のシステムを更新する場面が想像できないんですが、どういうものを想定されているんですか?
oookabe

2018/03/03 14:25

お返答ありがとうございます。GPUやCPUの世界ではアプリケーションにバグがあれば、エンドユーザが最新版のソフトを更新できますよね。単にファイルを置き換える作業だけです。ところがFPGAの場合少なくとも昔はそう簡単ではないようです。今はどうなっているでしょうか。知りたいですね。
guest

回答7

0

ベストアンサー

① 有名なFPGAメーカー(2つ)ともにIP(知的な資産)を強調して、基本道具としてのFFTでさえライセンス料を払わなければ...

そうですね

② 開発環境:FPGAが高価な開発環境、開発ツールが必要 (GPUは無料)

7年前と比べたら結構無料で出来ます。IPコア制限と高位合成に制限かかっているぐらいですかね?
IPコアはともかく、高位合成は性能突き詰めるなら使わないのであまり困りません。

有償にしてもGPUゴリゴリ使って開発する企業にとっては屁みたいな出費かと。

③ GPUに任せる仕事は事前に知る事が必要なく...FPAGを起動時点でこれからやる仕事を全部FPGAに知らせる必要。

そうですね

④ FPGAは実行時動的に変更や、部分的に変更(並列処理内容の変更)ができない

-----将来的にできる?

起動時にどの回路をコンフィグレーションするかぐらいだったら選べます。

⑤ ソフトコードを論理回路に変換する(焼き付ける)時間が長く==一日以上かかる事もあるって、開発とデバグ、修正能率が悪い。

一日以上は大げさかもしれませんが、ソフトウェア開発と比べると開発能率が悪いのはそのとおりだと思います。

⑥ FPGAアプリケーションのバージョン更新には専門知識が必要とし、普通のエンドユーザができないので、問題があればFPGAそのものを回収せざるを得ない。 これは大変だ!

AIや画像処理をFPGAで!って研究や事例はスマホやPCでエンドユーザーが使う話じゃなくて、
デジカメとかの組み込み機器やどっかのデータセンターに実装するって話だと思ってたんですが違うんですかね?

一応コンフィグレーションファイルをSDカードなどに書いておいて
起動時にそこから回路を構成するようにするって方法はあります。

⑦ 画像処理分野はあの手この手を使うので、大量のLIBが必要なのに、FPGAはフリーLIBが貧弱

に対して、NVIDIAは豊富なLIBを提供してくれる。それに、世の中ただで利用できるGPU LIBがいっぱいある。

そうですね

⑧ AIにおいてGPUより速いと宣伝されているようですが、なかなか普及されていないですね。

原因は何でしょうか。...

⑨ とにかく、今の時点(2018年3月3日)において、

deep learning 分野に関して、最新のFPGAは最新のGPUに速度や精度の面に勝っていない。
そして今後も、AIにおいてFPGAはGPUに勝つことに理論的な根拠も兆候も皆無では?

「普及」ってどういうことですか?
microsoftがBrainwaveというディープラーニングのアクセラレータを去年発表したそうです
googleなんかFPGAよりも融通効かなそうなTensorFlow専用プロセッサを開発したそうです

投稿2018/03/03 05:27

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oookabe

2018/03/03 14:32

お返事ありがとうございます。 >「普及」ってどういうことですか? AIや深層学習の話題にGPUが良く出るに対して、FPGAの出る頻度が非常に低いという意味です。 そしてFPGA対応しないLIBでもGPUに対応しているケースが多いようです。 でも、記事によると最近AIの実装がGPUからFPGAへ移る動きもありまして、どうでしょう、、、 もしかしてAIのFPGA実装は実際よく普及されているのでしょうか。
ozwk

2018/03/03 14:51

fpgaでAI実装したという話を最近よく聞く割には、そのライブラリが見当たらないから、普及しているのか疑っているってことですか?
gm300

2018/03/03 23:00

> ④ FPGAは実行時動的に変更や、部分的に変更(並列処理内容の変更)ができない >起動時にどの回路をコンフィグレーションするかぐらいだったら選べます。 実行しているFPGAの中で自分自身を書き換えることができます。 しかも、書き換えていない部分では処理をそのまま続けることができます。 > ⑤ ソフトコードを論理回路に変換する(焼き付ける)時間が長く==一日以上かかる事もあるって、開発とデバグ、修正能率が悪い。 >一日以上は大げさかもしれませんが、ソフトウェア開発と比べると開発能率が悪いのはそのとおりだと思います。 考えようはいろいろですが、ASICデザイナからすると全然違います。 FPGAでもソフトの開発時の1サイクルは数分です。ハードの構成も変更すると確かに一日かかることもあります。 GPUで内部キャッシュを減らして、計算ユニットを増やす みたいなことを考えるととんでもなく時間かかります。PCIe Gen4が欲しい と思っても今の時点では手に入りません。FPGAであれば、PCIe Gen3で作った後で、信号の速度を8Gbpsから16Gbpsに勝手に変更したり、32Gbpsにすることもできます。 そこまでいかなくても、組み込みマイコンで外付けのI/Oの個数を少し増やしたいみたいなことを考えると、メーカのカタログを見て、それなりのパーツを選んで、ボードを変更してやっとソフト開発です。同じメーカでもCPUのアーキが微妙に異なれば、ファームの変更は必要になるかもしれません。 FPGAでもCPUコアの機能も、周辺回路の機能も固定して、そのFPGAの上でLinuxで開発しているならば、変更は瞬時です。Pythonで書けば、コンパイルの時間でさえ不要です。 ASICの内部の開発だと、内部の電源回路の配線を微妙に変えただけで、配線間隔などの物理的な検証に1日、タイミングの検証に2日くらいかかったりします。で、そのあと工場にデータ出して、チップとして帰ってくるのは、数か月後です。 AIはFPGAを使う専業メーカがいます。 https://news.mynavi.jp/article/20160927-hc28_deephi/3 AIではないのですが、Microsoft Office365の処理がFPGAで行われていたとしても、区別がつきません。 https://news.mynavi.jp/article/20140828-hotchips26_microsoft/
oookabe

2018/03/11 12:24

gm300さま 大変勉強になりました! 長い間すっきりしない問題が分かりました。 本当に有難う御座います。
oookabe

2018/03/11 12:27

>実行しているFPGAの中で自分自身を書き換えることができます。 >しかも、書き換えていない部分では処理をそのまま続けることができます。 これは相当新しい技術でしょう、革命的で。 以前無かったでしょう?
ozwk

2018/03/12 01:15

2007年の記事に「動的な部分再構成」として紹介されていました http://www.cqpub.co.jp/dwm/contents/0118/dwm011801290.pdf 記事中で > ごく最近になって,部分再構成回路の設計を支援する強力な開発ツールが登場し,今では簡単に部分再構成システムを作ることができるようになりました. とあるので、登場はもっと古いのではないでしょうか
oookabe

2018/03/15 02:35

ozwkさん ご教授 有難う御座います!
guest

0

以前何処かで書いた回答をそのままここにおいておきます

--
全く機能の違うものを比較しても意味はない、というのを学びましょう。
FPGAというものが理解できていない、理解できないというのは決して恥ずべきものではないですが、理解するつもりがない、と公言するのは周りから失笑をかう行為となります

いくらあなたのお母さんが、どこかでカネを稼いできているからと言って、決してお父さんの代わりになるものではありません。
いくらあなたのお父さんが、完璧に家事をこなすといっても、決してお母さんの代わりになるものでもないです。

投稿2018/03/02 23:55

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

xilinxやAlteraのFPGAを使っていましたが、使いにくいですよね。ただgoogleがTPUを使っていたり、MicrosoftがFPGAを使っている以上、現時点でCPU, GPU以外にも選択肢があるのは間違いないです。

小ネタとして一応intelのQ3ではIntel Programmable Solutions Group部門(旧Altera)はデータセンター需要で増益だそうですし、今ではAWSでもFPGAのインスタンスが使えるので徐々に整備されてきて小規模なプロジェクトでも選択肢に入って来ているのかなと。

投稿2018/03/05 02:28

nullbot

総合スコア910

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oookabe

2018/03/15 02:40 編集

貴重な経験や情報のご紹介有難うございます!!
guest

0

と、お約束はおいておいて、

①すこしFPGAのことを学べばわかることですが、FPGAの場合、学習のコストは非常に高いです。また、FPGA自体の高位合成にかかるコストはとてつもなく高いです。
そしてなにより、メーカ間のFPGAの回路構成や実装構成の違いで、おなじソースをそのまま使いまわしするというのは難しい場合があります。まー、やればできんことはない、というレベルのもんだと思っといてください
まともに動かそうとする場合、各信号の制約条件を設定し、(場合によっては素子の物理的位置まで再設定)それによって高位合成をやり直して最適値を探っていくというプロセスが必要になり、ぶっちゃけソースだけロハになったところであんましうまくないってところですねー
②FPGAの場合は高位合成とよばれますが、この実装/処理にかかるコストはとてつもなく高いです
その上、メーカが変わると使い回しは出来ません。
③それはそーゆーもんだと思っときましょう。
④FPGAの用途の性質上、不要なものですねー。将来的には可能になるかもですが
⑤CPUのコンパイラとやってることが違います。データの置き換えだけで済む仕事と比べてはいけません
⑥それだけ難しいことだ、ということですね
⑦上にも書きましたが、ソースだけあっても使いもんになりません

2入力1出力のNAND回路を作ってください。遅延時間は5nsです。
FPGA(あるいはCPLD)なら数百円のチップ買ってきて実装できますが、これをCPU/GPUで実装しようとしたらどうなるのか、というのを考えてみましょう。

投稿2018/03/03 01:17

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/03/03 01:27

書いてる間に質問が変わってしまたw >AIにおいてGPUより速いと宣伝されているようですが、なかなか普及されていないですね。原因は何でしょうか。 そりゃぶっちゃけコストでしょう 十の性能のものが一万でできる、百の性能のものが百万でできる、という場合にどちらを選ぶかだけの話ですねー 十程度のものでいいと言うときに、百万出すひとはいないでしょう
guest

0

あなたのおっしゃっていることは、**「車と飛行機を比較して飛行機の方が早くて人をたくさん運べるので、全ての移動には飛行機を使うべき」**と言っているに等しいです。

どのようなときにFPGAを使うのか調べたほうがここで質問するより早いと思います。

ザイリンクスFPGA講座
https://japan.xilinx.com/japan/fpga-koza.html

投稿2018/03/03 01:11

TaroToyotomi

総合スコア1430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oookabe

2018/03/03 01:32 編集

情報有難うございます! けれども、7年前、XILINXとALTERAの技術資料を一ヶ月読んでも実装に突入できない苦渋な経験がありました。 に対して、一日程度NVIDIAのGPU紹介資料を読んで、半日インストールして、即座にNVIDIAが用意している簡単な画像処理プログラムを実行できて、処理結果が確認でき、肝心な処理時間も表示してくれました。
oookabe

2018/03/03 01:47

それに、CUDA Cの並列処理に関する表現の仕方は非常に自然で、C言語が分かる人なら「自明的に」感じます。ーーーだたし、高能率な並列化処理テクニックについてGPUのやり方はややこしい! でも新世代のGPUにはこれらのテクニックの重要性は薄くなっています。 FPGAって、高度な並列化処理テクニックもあるでしょう。もしかしたらGPUに比べてややこしくないでしょうか?  この辺ご存知な方ご教授お願いします。
TaroToyotomi

2018/03/03 04:36

FPGAはAIやディープラーニングにも応用できますよってだけでそもそもの主たる用途が違うんだからGPUと比較してもしようがないでしょう。 現在においてソフト屋さんがFPGAの回路を実装するのはまだハードルが高いと言うのは確かだと思いますが。
guest

0

FPGA(やASIC)はそれで無ければ要求を満たせないから使うのであって
GPU/CPUで間に合うならそれを使えば良いだけでしょう。

投稿2018/03/03 02:39

YsMana

総合スコア257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://qiita.com/nonbiri15/items/bbc97f92cb108646bc0b

シャーペンというものがありながら鉛筆を生産し続ける意味はあるんでしょうか。

投稿2018/03/03 01:31

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oookabe

2018/03/03 14:34 編集

適材適所ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問