ドメイン固有のアクセラレータ:定義、アーキテクチャ、および使用

ドメイン固有のアクセラレータ:定義、アーキテクチャ、および使用

ドメイン固有の加速器またはドメイン固有の加速器は、その複雑さによって次の場所にあるユニットの一種です。 CPU、ただし、消費電力が少なく、高速である特定のタスクを実行する機能があります。 しかし、それらはどのように機能し、何がそれらを定義し、なぜそれらはハードウェアの未来なのですか?

時間の経過とともに、プログラムはどんどん速く進む必要がありますが、同時にCPUとGPUは非常に複雑になり、従来の方法でパフォーマンスを向上させることは非常に困難です。 この問題の将来の解決策は? ドメイン固有のアクセラレータ

まず第一に、スロットルの概念

システマARM RISC

コンピューティングの黎明期から、特定の技術を高速化するためにサポートチップが必要でした。元々、これらのチップはCPUを反復的で再帰的なタスクの実行から解放しました。 最も明確な例は、CPUが画面に描画する時間をほとんど無駄にする必要がないようにしたグラフィックシステムでした。

アクセラレータは、CPUをそのタスクから解放するだけでなく、高速化するため、さらに進んだサポートチップです。 つまり、タスクはCPUにかかる時間の一部で実行されます。 これは、それが加速され、すべてがより速く進むことに影響を与えることを意味します。 したがって、名前アクセラレータ。

アクセラレータには多くの種類と設計があり、マイクロコントローラ、FPGA、組み合わせ回路または順序回路など、どのタイプのハードウェアもアクセラレータにすることができます。近年、ハードウェアを支配するタイプのアクセラレータが登場しました。 、ドメイン固有のアクセラレータ。

ドメイン固有の加速器、一般的な定義

リロイCPU

ハードウェアでは、さまざまな種類のジョブや特定のアプリケーション、特に特定のドメインにアクセラレータを長い間使用してきました。 今日、これらのドメインは、グラフィックス、ディープラーニング、バイオインフォマティクス、音声処理、リアルタイムの画像になります。 ドメイン固有アクセラレータがCPUよりも優れた方法で問題を解決できる、つまり、時間と消費が少ない特定のドメインが多数あります。

最初に頭に浮かぶのは質問です: GPU ドメイン固有のアクセラレータ? いいえそうではありません。 DSAは特に非常に特定のタスクを処理するため、GPUにはこれらのユニットがいくつかあります。 理解しやすくするために、すべてのタスクを、このタイプのプロセッサで個別に高速化できるいくつかの小さなタスクに分割できることを考慮に入れる必要があります。

ただし、ドメイン固有のアクセラレータは、汎用プロセッサと従来のアクセラレータの間に配置される一連の特性を設計で活用するため、市場に存在する他のオプションとは異なります。 言い換えれば、CPUの複雑さには達していませんが、従来のソリューション、特に固定関数に基づくソリューションよりもはるかに複雑です。

特定のドメイン、特定のISA

ソースコード

最初に覚えておく必要があるのは、ドメイン固有のアクセラレータはCPUではなく、プログラムも実行しますが、その設計は特定のソリューション向けに最適化されており、一般的なソリューションではありません。このため、完全にISAが作成されます。使用される命令、レジスタ、およびデータ型が、CPUが実行するのに多くのサイクルを要する特定の命令を短時間で解決すると考えられているDSAユニット専用。

ISAのCPUは、今日、命令サイクルを通じて共通のデータパスを共有するマイクロ命令から命令を構築します。 これは、命令セットが複雑であるため、複雑な命令が完了するまでに多くのサイクルがかかることを意味します。 DSAでは、より高速に実行される特定の命令に対して、命令ループと特定のデータパスを作成できます。 その命令だけを再帰的に実行するユニットを並列に作成することもできます。

しかし、これの最大の利点は、特定のアプリケーションでは、特定のアプリケーションでは役に立たない汎用ユニットである命令を取り除くことができることです。 そして近年、CPUとGPUのレジスタと命令のセットを大きなスペースを占めるマストドンに変換することになりました。

ドメイン固有のアクセラレータとメモリアクセス

CosteEnergéticoRelativo

マイクロコントローラーのようにアクセラレータ自体の中でメモリを使用するため、DSAのもうXNUMXつの改善点はメモリに関係しています。 メモリが配置されている物理的な距離が命令のエネルギーコストに影響を与えるため、これは重要です。

そのメモリ構成は、実行された各命令がCPUよりもはるかに少ない電力を消費するため、アクセラレータの主な利点です。さらに、メモリとの競合の問題を回避します。 DSAはシステムを利用しません RAM 計算を実行するため、常に並行して動作できます。

さらに、それらの動作方法により、それらをSoCまたは同様の構造に配置し、データを取得するためにRAMを経由することなく、CPUに直接通信させることができます。

ハードウェアとソフトウェアはDSAで密接に関連しています

ディセニョサーキットパペル

ハードウェアの設計は通常、特定のソフトウェアに対して行われるのではなく、ハードウェアを利用するように適合されたソフトウェアです。 これは、ソフトウェアがハードウェアの抽象化と相互作用するソフトウェアレベルで特殊なAPIを使用して行われるため、ドライバーであるプログラムが抽象化とハードウェアの間の変換を実行します。

ドメイン固有アクセラレータでは、CPUであるかのように実行されるプログラムを実行できるという考えですが、DSAの下でプログラムがより高速に実行されることを目的として、特定の問題に特化した一連の命令があります。特殊なISAとアーキテクチャにより、CPUの下で。

DiseñoProcesadoresをテストする

将来のハードウェア設計の多くは、特殊な問題のDSAになります。 これは、開発されたXNUMXつ以上のプログラムの特定の部分を加速するために、各企業および機関でローカルに作成されます。 その実装は、独自のチップの作成、SoCでの実装、さらにはVerilogやVHDLなどの言語を介したFPGAでの実装になります。

つまり、特定のハードウェアを活用するソフトウェアの設計から、特定のソフトウェアソリューション用のハードウェアの設計に移行するため、ハードウェアとソフトウェアの関係を完全に逆転させる必要があります。