AIの応用が広まるにつれ、ディープラーニングは現在のAI研究と応用の主流の方法となっています。膨大なデータの並列計算に直面して、AI の計算能力に対する要件は増加し続けており、ハードウェアの計算速度と電力消費に対する要件も高まっています。
現在、汎用 CPU に加えて、ハードウェア アクセラレーションとして使用される GPU、NPU、FPGA などのチップ プロセッサが、ディープラーニングのさまざまなアプリケーションでそれぞれの利点を発揮していますが、どれが優れているのでしょうか。 顔認識を例にとると、基本的な処理フローと対応する機能モジュールに必要な計算能力は次のように配分されます。 アプリケーション間にこのような区別があるのはなぜですか? 何がポイントですか? 答えを知るには、まず CPU、GPU、NPU、FPGA の原理、アーキテクチャ、パフォーマンス特性を理解する必要があります。 まず、汎用CPUのアーキテクチャを見てみましょう。 CPU CPU (中央処理装置) は、非常に大規模な集積回路です。その主な論理アーキテクチャには、制御ユニット Control、演算ユニット ALU、キャッシュ メモリ (Cache)、およびそれらの間のデータ (Data)、制御、ステータス接続を実現するバス (Bus) が含まれます。 簡単に言えば、 計算ユニット、制御ユニット、およびストレージユニットです。 アーキテクチャ図は次のとおりです。 CPU はフォン・ノイマン・アーキテクチャに準拠しており、その中核はプログラムの保存と順次実行です。 CPU アーキテクチャでは、ストレージ ユニット (Cache) と制御ユニット (Control) を配置するために多くのスペースが必要です。これに比べて、コンピューティング ユニット (ALU) はごくわずかな部分しか占めないため、大規模な並列コンピューティング機能には非常に限られており、論理制御に優れています。 CPU は大量の行列データに対して並列計算を実行することはできませんが、GPU は実行できます。 グラフィックプロセッサ GPU (Graphics Processing Unit) は、グラフィック プロセッサとも呼ばれ、複数のタスクを同時に処理するために特別に設計された、多数のコンピューティング ユニットで構成された大規模な並列コンピューティング アーキテクチャです。 GPU が並列コンピューティング機能を実現できるのはなぜでしょうか? GPU にも基本的なコンピューティング ユニット、制御ユニット、ストレージ ユニットが含まれていますが、次の図に示すように、GPU のアーキテクチャは CPU のアーキテクチャとは異なります。 CPU と比較すると、CPU チップ スペースの 20% 未満が ALU ですが、GPU チップ スペースの 80% 以上が ALU です。つまり、GPU にはデータの並列処理用の ALU がより多くあります。 GPU Titan X および CPU Intel i7-4790K (4 GHz) 上で Darknet を使用して構築されたニューラル ネットワーク モデル AlexNet、VGG-16、および Restnet152 を使用した ImageNet 分類タスクの予測結果: 注: 上記のデータは https://pjreddie.com/darknet/imagenet/#reference から取得されています。 これは、ニューラル ネットワーク データの処理において GPU が CPU よりもはるかに効率的であることを示しています。 要約すると、GPU には次の特性があります。 1. マルチスレッドは、マルチコア並列コンピューティングのインフラストラクチャを提供し、コアの数が非常に多いため、大量のデータの並列コンピューティングをサポートできます。 2. メモリアクセス速度が速くなります。 3. 浮動小数点演算能力の向上。 したがって、大量のトレーニング データ、大規模な行列、およびディープラーニングにおける畳み込み演算には、CPU よりも GPU の方が適しています。 GPU は並列コンピューティング機能に優れていますが、単独では動作できず、CPU との連携処理が必要です。ニューラル ネットワーク モデルの構築とデータ ストリームの送信は、依然として CPU 上で実行されます。同時に、消費電力が高く、サイズが大きいという問題もあります。 GPU の性能が高くなるほど、サイズが大きくなり、消費電力も高くなり、価格も高くなるため、一部の小型デバイスやモバイルデバイスでは使用できなくなります。 そのため、小型、低消費電力、高コンピューティング性能、高コンピューティング効率を備えた専用チップ NPU が誕生しました。 非営利 NPU (Neural Networks Process Units) ニューラル ネットワーク処理ユニット。 NPU の動作原理は、人間のニューロンとシナプスを回路レベルでシミュレートし、ディープラーニング命令セットを使用して大規模なニューロンとシナプスを直接処理することです。1 つの命令でニューロンのグループの処理が完了します。 CPU や GPU と比較して、NPU はシナプス重みを通じてストレージとコンピューティングを統合し、動作効率を向上させます。 NPU は、生物学的ニューラル ネットワークを模倣して構築されています。CPU および GPU プロセッサは、ニューロン処理を完了するために数千の命令を必要としますが、NPU は 1 つまたは数個の命令で完了します。そのため、ディープラーニング処理の効率性において明らかな利点があります。 実験結果によると、同じ消費電力で、NPU のパフォーマンスは GPU の 118 倍です。 GPU と同様に、NPU でも特定のタスクを完了するために CPU の共同処理が必要です。次に、GPU と NPU が CPU と連携してどのように動作するかを見てみましょう。 GPUアクセラレーション 現在、GPU は並列行列乗算と加算演算のみを実行し、ニューラル ネットワーク モデルの構築とデータ ストリームの送信は引き続き CPU で実行されます。 CPU は重みデータを読み込み、コードに従ってニューラル ネットワーク モデルを構築し、CUDA や OpenCL などのライブラリ インターフェイスを介して各層のマトリックス演算を GPU に送信して並列計算を実現し、結果を出力します。その後、CPU は、ニューラル ネットワーク出力層の計算が完了するまで下位ニューロン グループのマトリックス データ計算をスケジュールし、最終結果を取得します。 CPU と GPU 間の相互作用プロセス: 1. GPU情報を取得し、GPU IDを設定する 2 ニューロンパラメータをGPUにロードする 3 GPUがニューラルネットワークコンピューティングを加速 4. GPU計算結果を受け取る NPUアクセラレーション NPU は GPU アクセラレーションとは異なり、各層のニューロンの計算結果をメインメモリに出力する必要がなく、ニューラルネットワークの接続に応じて次の層のニューロンに渡されてさらに計算されるため、コンピューティング性能と消費電力が大幅に向上しました。 CPU は、コンパイルされたニューラル ネットワーク モデル ファイルと重みファイルを専用チップに渡し、ハードウェア プログラミングをロードして完了します。 操作プロセス全体を通じて、CPU は主にデータのロードとビジネス プロセスの制御を実現します。その相互作用プロセスは次のとおりです。 1. NPU専用チップデバイスを開く 2. モデルファイルを渡し、モデルタスクを取得する 3 タスクの入力と出力の情報を取得する 4 入力データをモデルメモリにコピーする 5 モデルを実行して出力データを取得する NPUに加えて、FPGAも消費電力と計算能力で競合します。 プログラマブルロジック FPGA (Field-Programmable Gate Array) は、フィールドプログラマブルゲートアレイと呼ばれ、ユーザーが自分のニーズに応じて繰り返しプログラムすることができます。 CPUやGPUと比較すると、高性能、低消費電力、ハードウェアプログラマビリティなどの特徴があります。 FPGA の基本原理は、多数のデジタル回路の基本ゲート回路とメモリをチップ内に統合することであり、ユーザーは FPGA 構成ファイルを書き込むことで、これらのゲート回路とメモリ間の接続を定義できます。この書き込みは一度限りのものではなく、定義を繰り返し書き込んで構成することができます。 FPGA の内部構造を下図に示します。 FPGA のプログラマブル ロジック ブロックには、LUT (ルックアップ テーブル) とトリガーで構成される多くの機能ユニットが含まれています。 FPGA は、命令体系の変換なしにこれらのゲート回路を通じてユーザーのアルゴリズムを直接実装し、実行効率が高くなります。 比較してみましょう CPU/GPU/NPU/FPGAのそれぞれの特徴 各チップアーキテクチャの特徴のまとめ /CPU/ トランジスタの70%をキャッシュの構築に使用し、制御ユニットの一部を使用しています。演算ユニットが少なく、論理的な制御演算に適しています。 /GPU/ ほとんどのトランジスタは、計算の複雑さが低く、大規模な並列計算に適した計算ユニットの構築に使用されます。主にビッグデータ、バックエンドサーバー、画像処理に使用されます。 /NPU/ ニューロンは回路層でシミュレートされ、ストレージとコンピューティングはシナプスの重みを通じて統合されます。1 つの命令でニューロンのグループの処理が完了し、操作効率が向上します。主に通信、ビッグデータ、画像処理の分野で使用されます。 / FPGA / プログラマブル ロジックは計算効率が高く、基盤となる IO に近く、冗長なトランジスタと配線によってロジックを編集できます。本質的には、命令や共有メモリを必要とせず、CPU や GPU よりも計算効率が高くなります。主にスマートフォン、携帯機器、自動車などに使用されています。 最も一般的な部分として、CPU は他のプロセッサと連携してさまざまなタスクを完了します。 GPU は、ディープラーニングのバックグラウンド サーバーでの大規模データ トレーニングや行列畳み込み演算に適しています。 NPU と FPGA は、パフォーマンス、面積、消費電力などの面で大きな利点があり、ニューラル ネットワークの計算をより高速化できます。 FPGAはハードウェア記述言語を用いて開発されるのが特徴で、GPUやNPUに比べて開発の敷居が高いです。 各プロセッサにはそれぞれ長所と短所があると言えます。さまざまなアプリケーションシナリオでは、ニーズに応じて長所と短所を比較検討し、適切なチップを選択する必要があります。 |
<<: 人工知能がビデオ業界に力を与え、新しいエンターテインメント時代の変化が訪れる
>>: 「スカイアイ」が母親殺害事件の容疑者を発見する前に、私たちはいくら支払ったのでしょうか?
先ほど、2023年未来科学賞の受賞者が発表されました!今年の「数学およびコンピューターサイエンス賞」...
過去2年間、テイクアウトの市場規模は驚異的なペースで成長を続けています。美団の最近のフードデリバリー...
ハリウッドのSF大作では、人工知能は常に、将来の人類の生存を脅かす自己認識機械として定義されています...
人工知能は社会を変えようとしています。民間企業、学界、政府を問わず、国レベルおよび国際レベルを問わず...
我が国は鉱物資源が豊富な国であり、石炭、金属、その他の鉱物の生産地が非常に多く、我が国の鉱業開発は常...
[51CTO.comより引用] モバイルインターネットの発展に伴い、あらゆるものの相互接続が可能に...
[[389620]]画像ソース: https://pixabay.com/images/id-60...
[51CTO.comからのオリジナル記事] インターネット+の急速な発展に伴い、オフライン小売業界...
来年、AI テクノロジーと市場はどのように進化するのでしょうか? 主要な AI トレンドとしては、エ...
[[419666]]序文みなさんこんにちは、パンパンです!これまでは rand と srand を使...
[[270591]]弁護士は、法律知識、鋭敏な時間管理、説得力、雄弁さなど、多くのスキルを身につけて...
[[436214]]パーソナライゼーションと自動化は、ユーザー エクスペリエンスの品質を向上させるた...