ムーアの法則は死んでいますか? GPUはCPUに取って代わりますか?



Moores Law Is Dead Will Gpu Replace Cpu





640?wx_fmt = jpeg&wxfrom = 5&wx_lazy = 1

出典:グローバル人工知能



概要: CPUとGPUが大きく異なる理由は、設計目標が異なるためです。これらは、2つの異なるアプリケーションシナリオを対象としています。


北京で開催されたNVIDIAGTC Chinaカンファレンスでは、AIインテリジェントコンピューティング、サーバーデータセンター、スマートシティ、さらには昨年非常に暑かった仮想現実でさえ、多くの人々がそれをサポートできていませんでしたが、それはまだ属しているようです多くの心に。グラフィック業界の代表であるNVIDIAはますますふっくらしていますが、これらのニュースの背後には、より大胆な予測があるようです。ムーアの法則は廃止され、GPUが最終的にCPUに取って代わります。




ムーアの法則は、Intelの創設者の1人であるGordonMooreによって提案されました。その内容は次のとおりです。価格が変わらない場合、集積回路に収容できるコンポーネントの数は18〜24か月ごとに倍増し、パフォーマンスは倍増します。言い換えれば、1ドルで購入できるコンピューターのパフォーマンスは、18〜24か月ごとに2倍以上になります。この法律は、情報技術の進歩の速度を明らかにしています。


この傾向は半世紀以上続いていますが、ムーアの法則は、物理法則や自然法則ではなく、観察または推測と見なされるべきです。法律は少なくとも2015年または2020年まで続くと予想されます。しかし、2010年の国際半導体技術開発ロードマップの更新された成長は2013年末に減速し、トランジスタの数密度は3年ごとに2倍になると予想されます。その後。


CPUとGPUが大きく異なる理由は、設計目標が異なるためです。これらは、2つの異なるアプリケーションシナリオを対象としています。 CPUは、さまざまなデータ型を処理するための強力な汎用性を必要とすると同時に、論理的な判断を必要とし、多数の分岐ジャンプと割り込みを導入します。これらはすべて、CPUの内部構造を非常に複雑にします。 GPUは、高度に統合された独立した大規模なデータと、中断する必要のない純粋なコンピューティング環境に直面しています。したがって、CPUとGPUは非常に異なるアーキテクチャを提供します。


GPUは、多数のコンピューティングユニットと非常に長いパイプラインを使用しますが、非常に単純な制御ロジックのみを使用してキャッシュを保存します。 CPUは、キャッシュによって多くのスペースを占有するだけでなく、複雑な制御ロジックと多くの最適化回路を備えています。対照的に、計算能力はCPUのごく一部にすぎません。

640?wx_fmt = png

上の図からわかるように、キャッシュ、ローカルメモリ:CPU> GPUスレッド(スレッド数):GPU> CPUレジスター:GPU> CPUマルチレジスターは多くのスレッドをサポートでき、スレッドはレジスターを使用する必要があります。スレッドの数が多く、レジスタも必要です。多くのことを実行する必要があります。 SIMDユニット(単一命令複数データストリーム、同期して同じ命令を同時に実行):GPU> CPU。低遅延に基づくCPU設計:

640?wx_fmt = png

CPUには強力なALU(算術演算装置)が搭載されており、数クロックサイクルで算術計算を完了できます。今日のCPUは、64ビットの倍精度を実現できます。倍精度浮動小数点ソース計算の実行の加算と乗算には、1〜3クロックサイクルしか必要ありません。 CPUのクロックサイクルの周波数は非常に高く、1.532〜3ギガヘルツ(ギガビットHZ、10の9乗)に達します。キャッシュが大きいと、レイテンシーも削減できます。キャッシュに大量のデータを保存します。データにアクセスする必要がある場合、以前にアクセスしたことがある限り、データをキャッシュに直接取り込むことができるようになりました。複雑な論理制御ユニット。プログラムに複数の分岐が含まれている場合、分岐予測機能を提供することで待ち時間を短縮します。データ転送。一部の命令が前の命令の結果に依存している場合、データ転送の論理制御ユニットはパイプライン内のこれらの命令の位置を決定し、1つの命令の結果をできるだけ早く後続の命令に転送します。これらのアクションには、多くの比較回路ユニットとリピーター回路ユニットが必要です。 A

640?wx_fmt = png

GPUは大きなスループットに基づいて設計されています。 GPUの特徴は、ALUが多く、キャッシュが少ないことです。キャッシュの目的は、CPUとは異なり、後でアクセスする必要のあるデータを保存することではなく、スレッドのサービスを向上させることです。同じデータにアクセスする必要のあるスレッドが多数ある場合、キャッシュはこれらのアクセスをマージし、データが取得された後、ドラムにアクセスします(アクセスする必要のあるデータはキャッシュではなくドラムに格納されるため) 、キャッシュはこのデータを対応するスレッドに転送します。今回はデータ転送の役割です。ただし、ドラムにアクセスする必要があるため、当然、遅延の問題が発生します。 GPUコントロールユニット(左側の黄色の領域ブロック)は、複数のアクセスを組み合わせてより少ないアクセスにすることができます。


GPUにはドラム遅延がありますが、多くのALUと多くのスレッドがあります。メモリ遅延の問題のバランスをとるために、複数のALUの特性を最大限に活用して、非常に大きなスループット効果を実現できます。できるだけ多くのスレッドを割り当てます。一般的に、GPU ALUは、このため非常に重いパイプラインを持ちます。したがって、CPUを使用すると、論理制御、シリアル操作が得意です。汎用のデータ操作とは異なり、GPUは大規模な並行コンピューティングに優れています。これはまさにパスワードクラッキングに必要なものです。したがって、画像処理に加えて、GPUもコンピューティングにますます関与しています。


GPUでの実行にはどのタイプのプログラムが適していますか?


(1) 計算集約型プログラム 。いわゆる計算集約型プログラムは、その実行時間のほとんどがレジスタ操作に費やされるというものです。レジスタの速度はプロセッサの速度に匹敵し、レジスタからのデータの読み取りと書き込みにほとんど遅延はありません。あなたは比較をすることができます。メモリの読み取りの待ち時間は約数百クロックサイクルです。ハードディスクの読み取り速度は言うまでもなく、SSDの場合でも遅すぎます。


(二) 簡単な並列プログラム 。 GPUは実際にはSIMD(単一命令複数データ)アーキテクチャです。数百または数千のコアがあり、各コアは同じことを同時に実行するのに最適です。


話し合います :GPUを知っていますか? CPUはGPUに置き換えられると思いますか? CPUの最大のボトルネックを今理解していますか?