FPGAは、高速に実行する必要がありますか?いくつかの要因がFPGAコンピューティングのパフォーマンスに影響を与えます

FPGA対ASIC

ASIC ASICの開発プロセスは、次のとおりです。設計、検証、シリコン、パッケージング、テスト;

FPGAチップは、シート、パッケージングとテストのことを、それを必要としない、すでに良いです。この方法では、少なくとも4ヶ月間保存することができます。

また、成功するために、複数のASICフローシートがあるかもしれない、同期ソフトウェア開発者はまた、時間コストな機能のほとんどを行うためのチップを完了する必要があります。

大型で低コストのASICに続く時間に少量の、低コストFPGA、で。

FPGAの消費電力冗長ロジックが多いため、ASICよりも高いですが、より多くのCPUパワーよりも、すべての後に、より多くの不要な論理CPU。

より便利なデバッグASIC、FPGAと比較して、直接チップ内部で行わFPGAデバッグツールを使用してステータス信号を表示つかむことができ焼きます。

FPGAは、高速に実行する必要がありますか?

インテルのCPU、大きさのオーダーのFPGAの周波数差と比較すると、通常はFPGAチップのクロック300MHzの程度の頻度、および30億秒計算を行うである3GHzのインテルCPU、CPU 1に行くことができ、かつ唯一のFPGA3億を行うことができ、 10倍の差。

また、FPGAの再構成可能なコンピューティングは、CPUが退屈なほど高速に実行する場合は、CPUを加速するために使用され、それは一般的に5倍高速CPUジョブを超えています。

FPGAの開発サイクルは、比較的長い年であり、さらには2年過程で、CPU上のソフトウェアアルゴリズムは常に、アップグレードされ、正常な動作ですので、そこかもしれFPGAの設計アルゴリズム迅速な開発が終了しますが、CPUを見られるようなCPU、より速いイテレーションのソフトウェアアルゴリズムは、アルゴリズムは、FPGAを超えました。このことは、単にソフトウェアアルゴリズムをアップグレードしないで、CPUは自分自身を非常に一般的にアップグレードされますされ、これらは、FPGAアクセラレータは、有用な作業を行うことにする可能性があります。このような使用のFPGAデータ圧縮カードを作りますが、CPUがデータに、独自の圧縮をもたらす可能性があるため、コストがカード辛口白人のFPGA、FPGAの開発よりも低くなっています。ダムは前にAC AIが見つからない人で行くには2年間で完了遅くやってFPGA AIアルゴリズム、アーキテクチャ設計Niubiポイント、みんなを作ったこの問題を、遭遇しますこのアルゴリズムは、古いフレームワークを持っています。

だから、それは、最終的な製品は、ハードウェアアクセラレーションを実現することができる目標から作られることを保証するためには、より高速なCPUよりも5〜10倍のFPGA設計性能アルゴリズムの加速時間正常です。

いくつかの要因がFPGAコンピューティングのパフォーマンスに影響を与えます

1.データ並列性

FPGAの計算のために、大量のデータを同時に、かつ最良のデータの間には相互依存関係がありません。他の場合、例えば多くがある、との間のデータ依存性が存在する場合、それは複雑されないため、データの計算ユニットの数千の並列独立した処理何百何十万ものがあってもよい、、、AらBを実行する前に完了しなければなりません。騎兵軍団ミックスからわずかステップ、あなたは将軍を同期したい場合は、歩兵を待つために一緒に行く、騎兵があまりにも速く実行することはできません、一緒に急いで行進、歩兵や騎兵を命じ、この戦いを戦うことができないだろう、敵は唯一の餃子可能。

2.データサイズと計算の複雑

FPGAは、並列に計算多くの並列コンピューティング、各セルは、計算ロジックが過度に複雑にしながら平行単位の総数は、性能劣化の減少に対応するように、コンピューティングリソースは、FPGA増加を占有され、処理すべき大量のデータであります。また、古いドライバが知っている、計算ロジックが複雑すぎる、時間回路増加に費やさなく、各モジュールの長い遅延につながるが、そのクロック周波数が低下すること、また、パフォーマンスに影響を与えることができます。

3.パイプライン

遅延が長くなる計算タスクは、1回のクロックサイクルで必要に応じて計算の複雑さは、、、クロック周期が長くなったときに、対応する周波数が低減され、パフォーマンスの低下。だから、クロック周波数を増加させるために、FPGAは、複雑なコンピューティング技術をパイプライン化されますが、完了するまでに数クロック・サイクルに入れて、段落に分解されます。そうすることの帰結は、計算時間が長くなるために必要なことですが、全体的なパフォーマンスが向上しました。なぜ?ダムを挙げます。

卵は8日8時間を作り、おもちゃを作る1時間を持っていました。その後、おもちゃのボール、小さなボール、卵、乾燥ママ3人、3つのセクションに分ける作業、各時間半、おもちゃを作成するための時間と半分に作られた、おもちゃのルックスは、時間が長くなりました。しかし、3人3 * 8 = 24時間24 / 1.5 = 16おもちゃの日生産の作業時間の合計の日、生産が倍増しました。

これは、2つのヘッドが諸葛孔明よりも優れていると呼ばれています。

4.静電気制御ロジック

我々は、ソフトウェアプログラムを書くときは、関数の実行の内容に基づいてパラメータを操作し、条件としての機能に多くのパラメータを使用していました。FPGAは、コンテンツが、計算のパラメータによって決定されるかを計算することが、良いスタートになりたくありません。例えば、ほぼ正方形一桁へのソフトウェアの内部計算正方形と二桁ではなく、FPGA内部、以下一桁の両方をサポートするために、より多くのコンピューティングユニットの一桁、二桁占有するために必要なコンピューティングリソースと一種の良い数の、動的に決定されていないかを判断するための最良のスタートです、二桁の総資源の二乗を計算します。

ストレージとコンピューティングの関係

1.データ集約と計算集約

私たちは、集中的-計算と時間の計算された数は、より、逆に、IOが集約的であり、計算集約的である場合、データ集約型コンピューティングは、2つです。あるそのようなN×N行列乗算、各データはIOを読み取り、書き込み、二つの行列の読み出しデータは、結果の行列のデータが書き込まれ、IOニーズ3N2回、計算の数はN3であり、それは計算集約的です。しかし、N×N行列の添加、また、IO集中として、3N2 IO時間、計算の数だけN2を必要とします。

2.シストリックアレイ構造

店舗のIO側は、多くの場合、パフォーマンスのボトルネックになるように、AIは、多くの場合、など、行列の乗算とベクトル乗算の計算を必要とする、私たちはしばしば参照、「メモリの壁」問題を解決するために、(例えばグーグルTPUなど)AIチップの内部には、脈動を使用します。計算集約的に集中配列構造、限りIO、IO再使用可能着信データ。以下左上のデータが来ていると、ちょうど心臓のように、血流に来てそこに持っているが、内部計算のアレイは、生成された中間データは、コンピューティングユニットのすべてが悲惨計算と並行して作業している、無駄にされていませんパフォーマンス。

3. AIコンピューティングの「メモリー・ウォール」問題

AI計算は、大量のデータが読み取られる必要があり、AIは等DDR DRAMのような外部メモリチップに依存している場合、待ち時間と性能は、複数の、高いエネルギー消費量は、1つまたは2つを取ることができることは、DDRピンを影響される、4つまで並列コンピューティングユニットIO要件の多くを満たすために方法はありません。したがって、SRAMレジスタとチップキャッシュ、並列コンピューティングエンジンの何百に供給されるシートのRAM、IOを達成同時の数、スルー小容量の数としてチップ内部等の多数を配置する必要があります。

メモリの壁の問題を解決するために、2つの経路があります。

3DスタックHBM(高帯域幅のメモリ)に基づき、(1)技術、多くのメモリチップとチップパッケージ一緒にAI。AMDとNVIDIAベガとボルタGPUはHBM2 16ギガバイトの統合されています。最新のAIチップ・アーキテクチャのいくつかの他の企業は、インテルナバナもHMCのマイクロン(マイクロン)を使用して3D HBM、およびウェーブコンピューティングを使用して、3Dの別の形態は、メモリを積み重ね、このような3次元積層メモリを、統合されています。HBM 8ギガバイトの各コアでも、GoogleのTPU 2.0。

(2)積分計算が格納されています。AIチップ内に集積新しいダウンRRAM計算エンジンと同様に、データ記憶媒体と失うことなく、データの移動、効率及び性能が高い還元、外部から負荷へAIデータ内部チップ、必要がありました。教授謝は、コンピューティング例えばカリフォルニア大学のチームニューラルネットワークなどのソース及びRRAMは、チップ内に配置され、消費電力の50倍の速さ、20倍減少させることができます。「自然」でIBMはまた、相変化メモリでは、コンピューティング、ニューラルネットワークのための同じAIアプリケーションを実現発表記事を作りました。

私たちは、主にパフォーマンスとアルゴリズムを特殊な最適化されたハードウェアアルゴリズムを実行するドメイン固有のコンピューティングと呼ばれる非常に重要な概念、前方コングJingsheng UCLAのputは、タスクに特定のフィールドを算出するためのものである教授は、そこにある、FPGAを用いた計算を行います圧縮、高性能、低コスト。

トリックを行うための最初のFPGAを計算:ベースのモーションは静的です

特定のパラメータに従って実行するように、異なるコンピューティングタスク場合FPGA、上述したように、各計算エンジンは、コンピューティングリソース、ハードウェアに実装されるので、資源の浪費であり、使用する他のユーザー。私たちはいくつかの時間のために固定コンピューティングタスクがあることがわかっている場合、FPGAは、特定のコンピューティングタスク、節約のリソースのみに設定され、計算能力を向上させることができます。

別の状況は、我々は時間の変数期間は変更するつもりはない見つけた場合、それは計算されたロジックを取ることなく、定数として使用することができ、一定の折りたたみと呼ばれています。以下に、それはもともと2つの4ビットコンパレータ番号とBで、Bは、それが知られている1011で、出力への直接の結果を使用し、4つの論理ゲートを保存することができます。

トリックを行うための第2のFPGAは、計算値:リアルタイム再構成を

APUは1ミリ秒、BPU吹き替え次のミリ秒であるなどのリアルタイム再構成をサポートし、現在のFPGA計算ロジックは、新しい全体のFPGAロジックに再構成することができます。より実用的な多くのFPGA制御ロジックがあるため、リアルタイムに論理的再構成の一部であり、多くの場合、変更しましたが、計算の一部は、多くの場合、使用、パーティションのリアルタイム再構成に依存して変化することはありません。

ビット幅の圧縮:第三のリゾートの計算を行うためにFPGA

私たちは、資源を無駄にしないでください、私たちがユニットを計算するCPUを共有しているため、2つの32ビットまたは64ビットの変数の減算、乗算、除算を使用し、ソフトウェアプログラムを書きます。しかし、FPGAの内部で、並列コンピューティングでは、各プログラムは、コンピューティングリソースを占有している、彼らは州を保存することができます。我々はすでに2つだけである、有効なデータビットの数のがあることがわかっている場合たとえば、2つの32ビットの数値を乗じ、あなただけの2ビットを必要とするそれを表現して、最終的な結果は、それにシフトします。

結局のところ、限り、我々はそれを計算する2 FPGAの利点を理解し、高速かつ平行線ですが、常に並列コンピューティングパワーを計算し、最も強力なFPGAを達成するために、限られたリソースを使用するように、占有圧縮リソースへの並列計算アルゴリズムの考え方でなければなりません。

公開された74元の記事 ウォンの賞賛337 ビュー130万+

おすすめ

転載: blog.csdn.net/kebu12345678/article/details/103591185