SoCまたはAPUのアクセラレーターとコプロセッサー:相違点と類似点

今日、どのプロセッサも、さまざまなタイプのコアの複雑な融合であり、作業の大部分を処理するか、特殊なタスクを実行するか、または互いに協力して、さまざまなプロセスを実行するときに可能な限り最高の結果を達成します。 いずれにせよ、サポートコアとしてのアクセラレータとコプロセッサには違いがあります。 それらが何であるかを理解するために読んでください。

SoCまたはAPUのアクセラレータとコプロセッサ

非常に明確です CPU 単独では作業ができない、汎用プロセッサが効率的でないコンピュータが継続的に実行する一般的な操作がありますが、まず、これが何を意味し、なぜそれらが必要なのかを理解する必要があります。 サポートチップ。

新しいアーキテクチャを設計する場合、設計に使用されるライブラリのタイプ、チップが消費する量、それは何であるかなど、エンジニアが超えてはならない制限を示す一連のパラメータがあります。 そのサイズですが、特に新しいプロセッサで解決しようとしている一般的な問題は何ですか。 この時点で、メインユニットだけでなく、その一部となるコプロセッサーとアクセラレーターも定義されます。

アーキテクチャに配置された最初のサポートプロセッサは、通常、同じブランドの以前のアーキテクチャ用に設計されたものか、それができない場合はサードパーティにライセンスされたものであるため、簡単に解明できます。 一方、後者は、顧客の要求の結果として、または新しいタイプのハードウェアユニットを必要とする解決すべき問題のタイプのために、開発中に生まれます。

コプロセッサーとは何ですか?

コプロセサダーx87

シニフィアンは自明ですが、分散パーツに共通する同じ問題を解決するために複数の核が連携している場合、他のプロセスユニットと共同処理する各プロセスユニットについて話していることに注意してください。 。 はい、私たちはあなたの頭に浮かんだことを知っていますが、特定の問題に取り組むCPUのコアがいくつかある場合、メインプロセスを実行しないものが他のコプロセッサーとして機能していることを話します。

サポートチップは伝統的にコプロセッサーと呼ばれてきましたが、PCの歴史の中で最も有名なコプロセッサーは数学コプロセッサーであり、後にメインCPUから完全に分離された浮動小数点ユニットまたはFPUになりました。 したがって、コプロセッサは通常、メモリから命令をキャプチャするプロセスを欠いていますが、処理する命令とデータを送信するために別のプロセッサが必要です。 コプロセッサーの仕事? プログラムのその部分を解決し、結果をできるだけ早くホストプロセッサに返します。

コプロセッサーが作業を担当している間、メインカーネルは獲得したパワーを使用して他のタスクを実行できますが、プロセスが一緒に実行されているため、それができないポイントに到達します。コプロセッサーまたはコプロセッサーが割り当てられたタスクを完了するまで続行します。

アクセラレータとは何ですか?

Aceleradorハードウェア

技術的には、アクセラレータはコプロセッサですが、プロセス全体の実行を担当しないため、これらよりも独立性が高く、最終結果を取得したり、知ることを除いて、CPUが完全に無視するプロセス全体が割り当てられます。タスクが完了したこと。

アクセラレータはプロセッサから完全に切り離されているため、完全に非同期です。 どういう意味ですか? コプロセッサーではなくアクセラレーターがシステムのメインCPUと組み合わせて機能しないという事実。 これにより、コードの一部を高速化できます。つまり、はるかに高速で、したがってより短い時間でコードを完了することができます。 もちろん、これにはアーキテクチャの大幅な変更が必要です。

まず第一に、コプロセッサーは制御装置の一部を共有し、CPUとの共通メモリーへの登録またはアクセスさえも可能です。 これらすべての要素が共有されると、それらにアクセスする際に輻輳が発生し、100つのユニットまたは別のユニットがこれらのリソースの使用を待機するのを停止する可能性があります。 ご存知のように、これはアクセラレータでは発生しないため、プロセッサによって提供されているにもかかわらず、そのデータと命令はXNUMX%の時間利用できるように設計されています。そのため、多くのアクセラレータは独自のローカルを持つ完全なプロセッサです。 RAM 内部。

アクセラレータの方が優れている場合、なぜコプロセッサが使用されるのですか?

ポルターダ オルタナティバ プロセッサー

この記事の紹介で述べたように、すべては問題の解決策を実装するときにアーキテクトが持っている予算と関係があり、通常は考慮されないことのXNUMXつは、さまざまな要素間の通信インフラストラクチャと各プロセッサの命令サイクルの一部であるが、高速で数値を処理する責任を負わないユニット。

マーケティングレベルでは、プロセッサの能力を数字で販売するのは非常に簡単です。これらは、上記のデータから序数または基数の比較を行うことができる人々によって簡単に理解されます。 現実には、今日ではどのプロセッサのインフラストラクチャも最も多くのスペースを占めるため、コプロセッサまたはアクセラレータの形で何かを実装するという決定は、これらの制限のために行われるのです。

例はテンソルコアと NVIDIAのNVDLAユニットはどちらも同じ目的を果たしますが、前者はシェーダーユニット内のコプロセッサーであり、レジスターと制御ユニットを他のユニットと共有します。 GPU シェーダーユニットは、XNUMX番目の場合はプロセッサー自体です。 当然のことながら、頭字語DLAはDeep LearningAcceleratorの略です。