CPU、GPU、FPGAの特徴をわかりやすく解説

1. CPU と GPU

  CPU は何でもできる知識豊富な教授、GPU は簡単な算術演算しかできない小学生の集団であると単純に理解できます。しかし、どんなに力のある教授でも、1秒間に500回の足し引きを計算することはできません。したがって、単純な計算を繰り返し行う場合、1 人の教授では多数の生徒には太刀打ちできません。単純な四則演算なら、小学生500人(同時)が教授に簡単に勝てます。
ここに画像の説明を挿入
  CPU と GPU の最大の違いはアーキテクチャにあることがわかります。CPU は幅広いアプリケーション シナリオ (知識が豊富) に適しており、任意のプログラムを実行できますが、GPU はマルチタスク用に設計されており、強力な同時実行機能を備えています。
  具体的にはマルチコアです。一般的な CPU は 2 コア、4 コア、8 コアなどですが、GPU は数百、数千のコアを持つ場合があります。GPU の構造は CPU と同様で、制御ユニット (制御部) も含まれます
ここに画像の説明を挿入
  。ユニット)、算術論理演算ユニット(ALU)、キャッシュ(キャッシュ)、ダイナミック ランダム アクセス メモリ(DRAM)およびその他のコンポーネント。違いは、GPU の制御ユニット、ALU、およびキャッシュ設計が比較的単純で数が多いため、GPU は多数の単純なタスク (画像のレンダリングなど) の処理に優れていることです。 CPU の内部キャッシュと制御部分は
  オンチップ領域の大部分を占めるため、演算ユニットが占める割合は小さくなります。GPU には非常に単純な制御ユニットしかなく、残りの大部分は演算ユニットによって占有されるため、CPU のコア数は限られていますが、GPU は数千のコアを簡単に積み上げることができます。ただ、CPUの各コアの能力は教授のようなもので、GPUの各コアの能力は小学生のようなものです。
  なぜ GPU にはこれほど多くのコアが必要なのでしょうか?
  コンピューター上の画像がどのように表現されるか考えてみてください。それは画面上のピクセルにすぎません。
ここに画像の説明を挿入
  ピクセルごとに計算する必要があり、先ほどの例の小学生が計算して加算するのと同じ操作です。
  通常、画面には数百万のピクセルがあり、ピクセルごとに逐次計算を実行すると効率が非常に低くなります。したがって、GPU の各コアを使用して、対応するピクセルの計算を実行できます。GPU には多数のコアがあるため、並列コンピューティングにより速度が大幅に向上します。GPU のコア数が比較的多いことに加えて、GPU の動作方法も奇妙です。
  GPU の仕組み:
  CPU の場合、異なるコアが異なる機械命令を実行できます。CoreA はワード スレッドを実行し、coreB はブラウザ スレッドを実行できます。これは、いわゆる複数命令複数データ、MIMD (Multiple 命令、複数データ) です。
  GPU は異なります。GPU 上のこれらのコアは同じ機械命令を一律に実行する必要がありますが、異なるデータを操作できます。これは、小学生がある瞬間に足し算を実行しなければならないのと同じです。違いは、一部の小学生にあります。 1 + 1 を計算する必要があるもの、2 + 6 を計算する必要があるものなど、唯一の変更点はオペランドの数、いわゆる単一命令複数データ、SIMD (Single 命令、複数データ) です。 GPUを参照
  CPU の動作方法はまったく異なります。
  この仕組みに加えて、CPU などの複雑なプロセッサとは異なり、GPU の命令セットは非常にシンプルです。CPU プログラミング マニュアルを見ると、CPU が割り込み処理、メモリ管理、IO など、多くのことを担当していることがわかります。これらは GPU には存在しません。GPU の位置付けは非常にシンプル、つまり純粋なコンピューティングであることがわかります。GPU は決して CPU の代わりに使用されるわけではありません。CPU は、CPU が必要とするいくつかのことを CPU に任せているだけです。 GPUは非常に得意で、CPUの作業を分担するサポート的な役割を果たします。

  GPU は何が得意ですか?
  GPU により適したコンピューティング シナリオは次のとおりです: 単純な計算と反復計算。したがって、コンピューティング シナリオがここでの画像レンダリングに似ている場合は、GPU を使用するのが合理的です。したがって、グラフィックスや画像の計算、天気予報、ニューラル ネットワークの場合、
  GPU が CPU を圧倒する問題は、GPU が大量のつまらない作業を実行すると、処理できても貴重な時間を無駄にしすぎることです。ミシュランのような シェフがチキンカツを揚げるために夜市に派遣されたため、高級レストランの営業が遅れた。これに対し、GPU の制御部や ALU は設計がシンプルでキャッシュ容量が小さく、コア数が多くスループットが比較的高く、単純な計算の高速処理に適しています。 GPU には大量のデータが必要 コンピューティング分野も台頭しており、ビッグデータ分析、機械学習、AI 人工知能の開発など、GPU はコンピューター サイエンスの進歩に重要な役割を果たしています。

2.FPGA

  FPGAとは何ですか?
  フィールド プログラマブル ゲート アレイである FPGA (Field Programmable Gate Array) は、ハードウェア記述言語 (Verilog または VHDL) を通じて回路設計を記述し、サポートされる EDA ツールを通じて合成およびレイアウトし、それを FPGA に焼き込んで設計を実現できます
  。 FPGA または eFPGA には、多数のプログラマブル ロジック セルとプログラマブル ルーティング セルが含まれています。ロジック セルは小さなデジタル ロジックを実装し、配線によってこれらのロジック セルが接続され、より大きなデジタル回路が形成されます。
ここに画像の説明を挿入

  FPGA の基本原理: ゲート回路の組み合わせロジックと順序ロジックに従って、ルックアップ テーブル (ルックアップ テーブル、LUT と呼ばれる) を使用して高速データ計算を実現します。
  プログラマブル ロジック ユニット:
  デジタル回路は、組み合わせロジックと順序ロジックに細分化できます。組み合わせロジックを実装する FPGA の部分はルックアップ テーブル (LUT) であり、タイミング ロジックはレジスタに依存します。複数の LUT とレジスタが相互に接続されて論理クラスターを形成します。FPGA 会社ごとに定義された論理クラスターの構造も異なります。論理クラスタ構造には、論理クラスタ内の配線速度が速く、FPGA の高速化が図れること、論理クラスタを適用することでレイアウトや配線の複雑さが簡素化され、合成時間が短縮されることの 2 つの利点があります。時間。
ここに画像の説明を挿入

  プログラマブル配線ユニット:
  カスタム回路とは異なり、FPGA 配線リソースはプレハブ化されているため、プレハブ化された配線リソースでほとんどのロジック ユニット (クラスター) を接続できます。ユーザー設計のプロジェクトでは、特定のユニット間の相互接続に合わせて一連のスイッチが制御されます。これにより、配線リソースが FPGA 領域の大部分を占めることになり、複雑な配線ネットワークに制御スイッチが多すぎると、FPGA の動作周波数が大幅に低下します。配線リソースが減少すると、EDA ソフトウェア アルゴリズムの難易度が上がり、回路のレイアウトと配線が失敗します。
  したがって、速度と面積のバランスを達成し、EDA ソフトウェアのアルゴリズムの難易度、実行時間、メモリ使用量を考慮して、論理クラスターとそれに適合する配線リソースをどのように設計するかが各 FPGA の核心となります。メーカーの核心。

CPU の難しさはハードウェア構造にありますが、メーカーの主な難しさはソフトウェア命令セットではありません。FPGAのハードウェア構造原理は主な技術的障壁ではなく、EDAソフトウェアの中核となるアルゴリズムは各社の長期にわたる蓄積の成果です。

ここに画像の説明を挿入

  CPU vs GPU vs FPGA:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/wangzongyu/article/details/131062986