質問

FPGA対通常のクアッドX86コンピューターで実行されているアルゴリズムの速さを確認しています。

X86では、アルゴリズムを何度も実行し、OSのオーバーヘッドを排除するために中央値を取り、これはエラーから曲線を「クリーニング」します。それは問題ではありません。

FPGAアルゴリズムの測定値はサイクルにあり、その後、FSMDはとにかくサイクルをカウントするのが簡単です...

Count Cyclesは「純粋な」尺度であると考えており、これは理論的に行われ、実際のFPGAで実際の測定やアルゴリズムを実行する必要はないと考えています。

リアルタイムの測定を行うために、紙やアイデアが存在するか、いくつかのアイデアがあることを知りたいです。

役に立ちましたか?

解決

FPGAの実装が競争力があるか優れているかを確認しようとしている場合、実際の世界で有用である可能性がある場合は、マルチプロセッサ対FPGA実装で**ウォールクロック時間**を比較することをお勧めします。また、FSM + DataPath(I/O DELAYSなど)を超えてパフォーマンス効果を見落とさないようにするのにも役立ちます。

報告サイクルがカウントされることに同意します それだけ FPGAのサイクル時間は、棚の商品マイクロプロセッサの10倍の時間になる可能性があるため、代表的ではありません。

さて、いくつかの追加の未承諾のアドバイスのために。私は多くのFCCM会議に行ったことがありますが、同様のことで、CPUの実装パフォーマンス比較論文と多くの数十のFPGA実装を聞いたことがあります。多くの場合、論文では、数か月かかったカスタムFPGA実装を比較していますが、エンジニアがベンチマークソースコードを棚から取り出してコンパイルし、1日の午後に実行したCPU+ソフトウェアの実装を比較します。そのようなプレゼンテーションは特に魅力的ではありません。

公正な比較では、ベストプラクティス、利用可能な最良のライブラリ(Intel MKLまたはIPPなど)を使用するソフトウェアの実装を評価します。複数のコアでマルチスレッドを使用し、スカラー計算の代わりにベクターSIMD(SSE、AVX、...)を使用しました。プロファイラーのようなツールを使用して、簡単に固定された廃棄物を排除し、vtuneのように、キャッシュ+メモリ階層を理解して調整しました。また、FPGAとソフトウェアの実装に費やされたエンジニアリング時間の実際の量を必ず報告してください。

より多くの無料アドバイス:結果/ジュールが結果/2番目に勝つ可能性があるこれらのエネルギーに焦点を合わせた時間に、実装のエネルギー効率も報告することを検討してください。

より無料のアドバイス:「Quad x86」でほとんどの繰り返し可能な時間を取得するには、マシンをQuiesceし、バックグラウンドプロセッサ、デーモン、サービスなどをシャットダウンして、ネットワークを切断してください。

ハッピーハッキング!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top