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

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

新規登録して質問してみよう
ただいま回答率
85.37%
アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

FPGA

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

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

12回答

14948閲覧

FPGAのメリットについて。

carnage0216

総合スコア194

アセンブリ言語

アセンブリ言語とは、機械語を人間にわかりやすい形で記述した低水準言語です。

FPGA

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

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

2グッド

0クリップ

投稿2018/02/28 14:19

編集2018/02/28 14:56

過去の質問とは全く異なる質問ですがご意見など聞かせていただければと思います。
マイコンの性能やCPU、CPUの性能が上がっている今の時代、FPGAでわざわざ回路を設計しなくてもCPU,GPUをアセンブリ言語や高速化などを用いてプログラムすればFPGAで作ったパイプライン化したハードウェアの回路よりも処理速度や精度が高いように思えます。
仮に以上のことが正しいとしたらFPGAをもっと安くしないと売れないようにも思えます。

皆さんはFPGAなどを使おうと思ったことはありますか?もしあるならば是非理由を聞かせていただけると嬉しいです。
あるいはFPGAを使おうとしたがCPUの並列処理やGPUのほうが処理が速いためFPGAを使わなくなってしまったなどはありますか?

もちろんFPGAにも不得意なことがあると思うのですが、FPGAでないCPU,GPUがFPGA以上に成果や実績がある今の現代でFPGAの存在意義はあるのでしょうか?
私個人としてはFPGAはいらないような気がします。高いし(2万や3万など)、遅いし、すぐに壊れるし、他の何かと組み合わせて使うことがないため需要もほぼないです。
その割にFPGAで人工知能などを行っているのがよくわかりません。不備などがあったらデバッグも難しそうですし、物理的なハードで作っているだけあって融通が利かなそうです。
画像処理に関してはいずれはGPUを超えるなどと書いているサイトなどもありますが根拠のあるようなことは書いておらず、あくまでその人の仮説が正しいならばFPGAのほうが速いだろうという見解です。
昔のFPGAかもしれませんがメモリのRAMやROMなども外付けであったような気がするので、そのような部分を考えるとFPGA内にはメモリを作ることができても物体検出のためのデータをフリップフロップを作りそこに検出したい物体のデータを入れるというのは非現実的なので、内蔵されているCPUなどのプロセッサなどのメモリに検出したい物体のデータを入れているのかなと思いCPUに物体検出をやらせてるようで、ラズパイなどのCPUを使って物体検出するのとさほどかわらないのかなと思ってしまいます。

以上を踏まえまして、どうか皆様のマイコンやCPU,GPU,FPGAなどについてご意見いただきたいと思います。
どうかよろしくお願いいたします。

もしかしたら間違った解釈をしているかもしれません。どうかご指導お願いいたします。

TakeoAsai, oookabe👍を押しています

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

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

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

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

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

guest

回答12

0

仕事でFPGA使ってます。(組み込み用途)
少量生産(数個~100)なのでそのまま製品に載せます。

FPGAとCPU、GPUの違いについてはChironianさんの意見に賛成です。

FPGAは条件分岐のない定形処理を高スループットで、高い時間精度で行うのに向いています。
例えば12bit、100MSPS(毎秒100Mサンプル)のADCでアナログ信号を読み取り、
リアルタイムで信号処理をして100MSPSのDACでアナログ信号に戻すなどです。
FPGAなら100MHzのクロックで出来ます(インターフェースによってはそこだけ高速のクロック使う)

これをCPUでやるとなると、
いちいち命令をデコードしながら、ADCの読み出し間隔(10ns)の中で信号処理をしてDACの出力を操作しなければなりません。
しかもDAC操作は精度良く10ns間隔です。
非現実的です。

定形処理に向く一方で、
複雑な(処理時間が一定にしづらく、条件分岐が存在する)処理は全然向いてません。
例えば、PCから送られてくるコマンドを読み取り、解析して、然るべきレスポンスを返したりすることです。
こういう場合は基板上にマイコンを載せてそっちに丸投げするか、
FPGA上にマイコンを作り込んでそこでやらせます。

高位合成使えねぇとか生意気言いましたが
かなり便利になってました

ソフトウェア的なロジックをハードに変換するようなものではなく
c++でハード書けるという代物なので、
結局ハードの知識が必要です。

投稿2018/03/01 01:24

編集2018/07/11 14:33
ozwk

総合スコア13551

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

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

carnage0216

2018/03/02 13:18

そうなんですか。 ちなみに熱効率を考慮しないで画像処理などの面ではfpgaかgpuかアセンブリ言語で書かれたプログラムでのgpuのいずれか、どれが処理速度は速いでしょうか?
ozwk

2018/03/02 14:05 編集

一番金と技術と電力を注ぎ込んだやつです 画像処理は詳しくないのですが あなたの質問はどの条件を揃えるのかいまいちわからないので、詳しい人も答えにくいのでは? とりあえず個人が卓上でやる分にはgpu使うのが良いと思いますが。
leilei

2018/03/15 08:27

> アセンブリ言語で書かれたプログラムでのgpu こんな事はないです!
guest

0

こんにちは。

高いし(2万や3万など)、遅いし、すぐに壊れるし、他の何かと組み合わせて使うことがないため需要もほぼないです。

CPUは命令をデコードし実行する必要がありますが、FPGAには直接回路を組み込みますから命令デコードと実行という余分な処理が不要です。ですので、ベース・クロックが同じならFPGAの方が高速です。インタプリタとコンパイラの差みたいなものです。
更に、FPGAは全ての回路を並列に動作できますが、CPUはコア1つ毎に1シーケンスしか実行できません。
ですので、細かい並列処理が多数必要な場合、CPUで同等の処理を行おうとすると超大規模なCPUが必要となり価格が跳ね上がります。例えば、MP3やDVDのデコードのような処理等、このようなケースは多数あります。
更に更に、1つのシーケンスしか処理できないCPUで多数の出力ピンを高精度に変化させることは困難です。例えば、10nSecづつずらして5本の出力ピンを±1nSecの精度で次々と変化させたい時、CPUでやろうとするとどんなCPUが必要になるでしょう? 更にそれと平行にまた別の5本の出力ピンをまた別の方法で変化させ、更にまた別の5本を別途制御したいこともあるでしょう。数個以上の超高精度な並列処理に対応できるCPUやDSPは事実上存在しないだろうと思います。ですがFPGAなら可能です。

また、例えばMP3デコーダのような専用LSIを開発したいような時、その回路のデバッグにFPGAは非常に有用です。しかし、CPUでは動作原理が異なるので役に立ちません。そして、そのLSIの量産テスト回路もFPGAで構築します。それは多数の出力ピンを超高分解能な精度で制御する必要があり、CPUでは現実的ではありません。

ただし、FPGAの回路設計の難易度は高いです。ですので、普通にCPUで可能な処理はなるべくCPUで行い、CPUではとても出来ない処理にFPGAを使うことが多いと思います。

投稿2018/02/28 15:46

Chironian

総合スコア23272

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

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

carnage0216

2018/02/28 16:18

どうもありがとうございます。 ちなみに、chiroranさんはFPGAを使用したことはありますでしょうか? FPGAの回路設計の難しさは素人の私も過去に痛感しました。最近では高位合成などがあるそうですが、それを使用しないでハードウェア言語でゴリゴリ書く人もいるようです。 たまにⅭのソースコードを読んだだけでどのような論理回路にすればよいかわかる人などもいるそうです。
carnage0216

2018/02/28 16:30

あのFPGAの参考書に小規模の場合はFPGAは有効だが大規模な場合はGPUが有効と書いてありました。 CPUでは処理が大変にしてもGPUならFPGAと同等あるいはそれ以上の性能が発揮できたりしないでしょうか?
Chironian

2018/02/28 17:23

私自身はFPGAの回路設計をやったことはないです。開発されたLSIを使う側の立場でLSI開発に携わったことがあります。その時のLSI開発者はFPGAをバリバリ使ってましたのでその特性だけ把握しています。 > GPUならFPGAと同等あるいはそれ以上の性能が発揮できたりしないでしょうか? GPUも直接使ったことはないので分かりません。 しかし、複雑なデータ処理性能を上げたい時にFPGAを使うのはあまり良い選択ではないと思います。 まず開発工数が伸びます。(たぶんお話にならないほど)また、性能を上げるためにFPGAを多量に使う必要があるかもしれません。その時はコストも悲惨でしょうし、消費電力も気になりますね。
carnage0216

2018/02/28 18:48

貴重なご意見どうもありがとうございます。 FPGAは小規模な、例えばカメラ、計算機などですね。やっぱり複雑な処理はGPUのほうがいいですね。 前にFPGAでGPUのような並列回路を作ればGPUを超えるなどがありましたが実際はFPGAの回路を並列回路にしても物理的な回路の長さでGPUには速度面では勝てないと聞いたことがあります。 消費電力の少なさはFPGAが勝っていました。 ましてやFPGAを多量に使うよりもGPUを多量にしたほうが消費電力はバカになりませんが、処理速度は相当なものになるような気はします。あるいはかえって処理速度が落ちてしまうかな。
Chironian

2018/03/01 03:02

常にGPUでFPGAを置き換えることができるわけではありませんから、一般論を議論しても仕方がないと思います。周辺の状況もきちんと検討して、ケースに応じてより向いている方を使えばよいと思いますよ。
guest

0

最近話題のあたりだと、FPGAで作ったbitcoinマイニングエンジンのほうが、CPUは勿論、GPUよりもハッシュ速度で見て性能いいです。
数年前のnvidiaのイベントで、nvidiaの人が、FPGAの方がパフォーマンスが良いといっています。それに続けて、ユーザが開発する手間はGPUの方が圧倒的に少ないといっています。実際にそうでしょう。
メインストリームのCPU,GPUに対抗するようになったのは、最近です。むしろ、GPUと比較できるようなモノを卓上で、個人でアーキテクチャから設計できる というのが驚異的だとは思いませんか?車買うより安い という理由で、40万くらいのボード買った人もいます。

計算機構造として比較すると、GPUのほうは、SIMDに適した形でクラシックな集中型の演算器を使っているのに比べ、FPGAでは、広く分散した構造が可能で、数千段に渡るpipelineを構成できます。

後は、単に用途が違う という話になりますが、たとえば、..
中国では、FPGAを使って、400Gのethernetのスイッチを実現している会社もあります。CPU, GPUは需要が無いこともあって、せいぜい複数の10Gチャネルをチップセットで実現できるだけです。PCIeっぽいものもPCIe Gen4 対応可能で、CCIXみたいにもっと速いものにも対応しています。

商用品として考えるならば不向きであるというのは当たり前です。

携帯基地局で使っています。仕様決定から運用開始まで時間が短いので、ASICでは対応できなくなりました。
商用とはいいがたいのですが、探査機のはやぶさ、はやぶさ2でも使っています。(量産でもないしね)

投稿2018/03/01 01:20

gm300

総合スコア580

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

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

carnage0216

2018/03/06 14:45

最近のFPGAは結構進化してるんですね。 ちなみに、いまのFPGA なら分岐や複雑な処理もGPUに処理速度は勝るのでしょうか??
leilei

2018/03/15 08:25 編集

現在(2018年3月)の新鋭GPUならthreadワープ内の分岐に関する非能率的な現象はすでになくなり、 同一threadワープ内の個々threadは独立に実行するようになりました。 そのため、副作用として同一threadワープ内のthread同士であっても、ワープ同期が必要になったけれども。 今の時点、最新のFPGAが最新のNVIDIAのGPUに勝った事はまだないのです。 ★★驚いた事に、 > 複雑な(処理時間が一定にしづらく、条件分岐が存在する)処理は全然向いてません。(↓ozwk様より) なんとそもそも、**FPGAはGPUよりも条件分岐に不得意?!**
guest

0

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

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

投稿2018/02/28 16:12

y_waiwai

総合スコア88024

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

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

carnage0216

2018/02/28 16:19

そうですね。まあ、笑われても皆さんの意見が聞ければそれがベストです。
guest

0

ハードウェアに詳しくはありませんが一言

FPGAの利点は柔軟性であり、その分、性能を犠牲にしています。性能だけを見て他と比較すれば劣っていて当然です。

FPGAは試験用途とか研究用途とか開発途上において有用なものであって、商用品として考えるならば不向きであるというのは当たり前です。まあ近年はAIの方で深層学習云云かんぬん聞きますので、ひょっとしたら商用化の余地もあるかもしれません。が、この辺りは詳しくないので省略します。

投稿2018/02/28 14:58

HogeAnimalLover

総合スコア4830

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

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

0

定価で買ったFPGAの評価ボードと中古のGPUとでは比較対象とならないと思います。

まあ、それはそれとして性能の指標には処理速度(スループット)以外にもさまざまなものがあります。

  • 消費電力
  • 調達コスト(価格以外にもどれだけの期間部品が手に入るか)
  • 演算以外の専用回路の有無

などが挙げられますね。
また、FPGAはAI以外の用途でも普通に使いますし。

結論は部品は適材適所で使いましょうということです。
機械学習だと、学習にはパワフルなGPUを使って推論には低消費電力なFPGAを使うとかでしょうか。

投稿2018/02/28 14:55

TaroToyotomi

総合スコア1430

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

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

carnage0216

2018/02/28 14:57

確かに専用回路においてはFPGAが有能ですね。盲目でした。 どうもありがとうございます。
guest

0

リサイクルショップで2万円で買ったGPU(エヌビディア)を搭載したPCは

ボードで5万もするFPGA

どちらも基準としておかしいです。量産するものの価格を「リサイクルショップで」の価格で考えられるはずがありませんし、逆にFPGAボードは開発用のものなので、実製品にする場合はチップ単体で組み込むこととなるためぜんぜん値段が違ってきます。

投稿2018/02/28 14:27

maisumakun

総合スコア145930

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

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

guest

0

FPGAのメリットについて、

・処理時間が固定というメリットがあります。
リアルタイム性が要求される場合はCPUやGPUでは話になりません。

・電源ONしてから動作開始までの起動時間が短いというのもメリットになります。

・intelのcorei7をアセンブラで開発するのは、FPGAの設計よりもはるかに難易度が高いです。
corei7をOS無しで自社基板へ搭載するための回路設計なども、FPGAよりもはるかに難易度が高いです。

・変数のbit数に制限がありませんので、300bit×400bitの乗算なども可能です。

投稿2018/03/24 14:31

編集2018/07/18 15:10
hillacken

総合スコア359

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

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

0

1台限りしか作らないようなものや、100にも満たないような少量生産では、納品用最終製品としてもFPGAがそのまま使われることは普通にあります。私自身が少量生産中心の業界で仕事をしているだけに、世の中全てが大量生産品ばかりであるかのような前提に基づく見解は遺憾に思います。

投稿2018/02/28 15:28

編集2018/02/28 15:29
keicha_hrs

総合スコア6768

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

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

carnage0216

2018/02/28 15:48

決して大量生産品ばかりであるかのような前提に基づく見解をしているわけではありません。 そう思わせてしまったとしたらごめんなさい。
carnage0216

2018/02/28 15:50

生産業でお仕事なさっているとは、すごいです。 貴重なご意見どうもありがとうございます。
guest

0

存在意義って言われると、
IoTなんかのクライアント端末では消費電力の問題などありますので、
有効なケースも多いのではないでしょうか。

FPGAって個人で使うものではないと思いますよ。
たぶんロット(数千?数万?)とかで発注になるんじゃないですかね。

別途例えるならBlu-rayがあるのにCD-Rとか必要なんでしょうかって
言ってるような感じに聞こえます。
必要ない理由より、なぜ必要なケースがあるか考えるほうが、
納得がいくのではないでしょうか。

あと参考になされたサイトがあるなら、
載せられたほうがいいかと。

当然見ていると思いますが、
https://qiita.com/kazunori279/items/a9e97a4463cab7dda8b9
http://monoist.atmarkit.co.jp/mn/articles/1704/07/news044.html
http://ai-4-u.com/cases/column-by-tsuruaki-yukawa-2

投稿2018/02/28 15:12

szk.

総合スコア1400

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

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

carnage0216

2018/02/28 15:52

FPGAは個人でも使っている人はたまにいますよ。 OPENCVとザイリンクスが提供しているソースコードとテストベンチを高位合成すればだれでも簡単に画像処理などが行えるようです。
guest

0

仕事で10年以上FPGAをやっているものです。
carnage0216さんの主張は的確な指摘だと考えます。私もそう思っています。

FPGAは、ロジック回路のエミュレーターです。
(多少乱暴ですが)CPUやGPUはFPGAで再現できます。しかし、同じ半導体プロセスルールを使っていれば必ず模倣元に負けます。これは原理上どうしようもないことです。

何人かの方が指摘されていますが、FPGAが輝くのは少量生産や特化型の何かです。
修正が可能なので(トータルの費用を考えた上での)試作にも向いてます。

あまり量産品には向かないと思ってもらってよいと思います。
量産して売れるぐらいいいものが出来たならそのままASICにしたほうがもっとよいでしょう。

人工知能には、個人的にはFPGAはあまり向いていないと考えています。
私が感じる最大の理由はメモリの帯域がGPUに比べて取れない点です。
ディープラーニングなど、扱うパラメータ量が多く更新も頻繁な為です。

投稿2018/08/28 08:40

morittyo

総合スコア14

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

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

0

便乗質問で申し訳ないですが、
FPAGに関して ずーーーと、気になる事があります。

Q1: CPUやGPUの場合、ソフトの更新は簡単で、エンドユーザのターゲートPCに新しいコードをロードすれば、更新完了です。
に対して、出荷済みのFPGAの機能を簡単に更新できるのでしょうか。
もしエンドユーザーが簡単に更新できなければ、バグがあったら、FPGAを回収するしかないでしょう。 古い知識かもしれないが、FPGAの焼き直しは大変みたいですね。

Q2: 組み込み用のGPUのサイズでも大きいですが、FPGAなら、一般論としてGPUより小さいでしょうか。

Q3:GPU利用する場合ファンが不可欠で、場合によって複数強力なファンが必要になります。FPGAなら、小さいファンか、ファンが無くても良いのでしょうか。

ご教授宜しくお願いします。

投稿2018/03/02 12:54

編集2018/03/02 13:00
oookabe

総合スコア126

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

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

y_waiwai

2018/03/02 14:00

新規質問として立ててもらったほうがいいですが、答えておきます Q1:FPGAにはJTAGの端子があって、それに接続できるようにコネクタを付けてあります。   そのコネクタにJTAGユニットを繋げば、そのままで内容の書き換えができます   また、基板の作りによってはPCと同じようにデータをDLして書き換えってこともできるようにできますな Q2:素子数としてはGPUより大きいものがざらにあります Q3:一般的には放熱器はつけることはあってもファンを付ける場合ってのは少ないですね。   まー、仮想通貨のマイニングに使うような用途なら、ファンぐらいつきそうですが
carnage0216

2018/03/02 14:42

ああ、びっくりし便乗質問かwww いやいや私の質問でよければ是非是非便乗してください。
oookabe

2018/03/02 14:54

y_waiwaiさん 早速お返答有難うございます。 自分の質問のしかたが悪かったんで、言い直します: Q1:CPU/GPUのプログラム更新する場合、単に*.exeや*.DLLファイルを置き換えるだけで、エンドユーザもできます。GPUに関する知識が一切要らないのです。 FPGAの場合はどうなるのでしょうか。エンドユーザはFPGAに対する焼き直す手続や知識が必要とするのでしょうか。 Q2: GPUとFPGAのチップ面積、またはそれを搭載するボード面積はどっちが小さいほうでしょうか。 ぜひ宜しくお願いします
y_waiwai

2018/03/02 14:58

これ以降は新規に質問を立ててください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問