(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】大規模探索によるゼロロス低消費電力近似DNNアクセラレータの合成
(51)【国際特許分類】
G06F 17/16 20060101AFI20241029BHJP
G06N 3/063 20230101ALI20241029BHJP
G06F 15/80 20060101ALI20241029BHJP
G06F 30/27 20200101ALI20241029BHJP
G06F 30/327 20200101ALI20241029BHJP
【FI】
G06F17/16 M
G06N3/063
G06F15/80
G06F30/27
G06F30/327
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023571641
(86)(22)【出願日】2022-10-27
(85)【翻訳文提出日】2023-11-17
(86)【国際出願番号】 US2022048055
(87)【国際公開番号】W WO2023091281
(87)【国際公開日】2023-05-25
(32)【優先日】2021-11-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ミルホセイニ,アザリア
(72)【発明者】
【氏名】フーダ,サフィン
(72)【発明者】
【氏名】マース,マーティン・クリストフ
(72)【発明者】
【氏名】ジェイン,パラス・ジャグディシュ
(72)【発明者】
【氏名】ディーン,ジェフリー・アドゲート
【テーマコード(参考)】
5B056
5B146
【Fターム(参考)】
5B056BB71
5B146DC03
5B146GA02
5B146GA06
(57)【要約】
ディープラーニングモデルを実行する際に精度がほとんど損なわれない、近似的で低消費電力のディープラーニングアクセラレータチップを設計するためのシステムと方法が提供される。近似シストリックアレイのセットを生成することができる。ディープニューラルネットワーク(DNN:deep neural network)を処理する近似シストリックアレイのセット内の各近似シストリックアレイの性能が決定されてもよい。DNNの各レイヤは、近似シストリックアレイのセット内の近似シストリックアレイにマッピングされてもよい。近似シストリックアレイのセットのサブセットは、マッピングと近似シストリックアレイのセット内の各近似シストリックアレイの性能とに基づいて、推論チップ設計に含めるために選択されてもよい。
【特許請求の範囲】
【請求項1】
推論チップ設計を生成するための、コンピュータが実行する方法であって、
1つまたは複数のプロセッサによって、近似シストリックアレイのセットを生成するステップと、
前記1つまたは複数のプロセッサによって、ディープニューラルネットワーク(DNN:deep neural network)を処理する前記近似シストリックアレイのセット内の各近似シストリックアレイの性能を決定するステップと、
前記1つまたは複数のプロセッサによって、前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップと、
前記1つまたは複数のプロセッサによって、前記推論チップ設計に含めるために、前記マッピングと前記近似シストリックアレイのセット内の前記各近似シストリックアレイの性能とに基づいて、前記近似シストリックアレイのセットのサブセットを選択するステップとを含む、方法。
【請求項2】
近似シストリックアレイの第2のセットを生成するステップと、
前記DNNを処理する前記近似シストリックアレイの第2のセット内の各近似シストリックアレイの性能を決定するステップと、
前記DNNの各レイヤを、前記近似シストリックアレイの第2のセット内の近似シストリックアレイにマッピングするステップと、
前記マッピングと前記近似シストリックアレイの第2のセット内の前記各近似シストリックアレイの性能とに基づいて、前記近似シストリックアレイのサブセットを更新するステップとをさらに含み、前記近似シストリックアレイの更新されたサブセットは、前記近似シストリックアレイの第2のセットからの少なくとも1つのシストリックアレイを含む、請求項1に記載の方法。
【請求項3】
前記近似シストリックアレイのセットは、アーキテクチャテンプレートを満たすように生成され、前記アーキテクチャテンプレートは、前記推論チップ設計のためのシストリックアレイの数および/またはサイズを定義する、請求項1に記載の方法。
【請求項4】
前記近似シストリックアレイのセット内の各近似シストリックアレイは、予め定義された乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記予め定義されたMACはバンクに記憶される、請求項3に記載の方法。
【請求項5】
前記近似シストリックアレイのセット内の各近似シストリックアレイは、乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記MACの少なくとも1つは、予め定義された基準に基づいて生成される、請求項3に記載の方法。
【請求項6】
前記予め定義された基準は、電力使用量または精度のうちの1つまたは複数を含む、請求項5に記載の方法。
【請求項7】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの電力使用量を決定するステップを含む、請求項1に記載の方法。
【請求項8】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの精度を決定するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップは、
前記DNNの各レイヤについて、前記各近似シストリックアレイの電力使用量と精度とに基づいて、前記近似シストリックアレイのサブセット内の特定の近似シストリックアレイに、前記推論チップ設計内のルータを構成するステップを含む、請求項8に記載の方法。
【請求項10】
前記推論チップ設計は、少なくとも1つの全精度シストリックアレイを含む、請求項1に記載の方法。
【請求項11】
推論チップ設計を生成するためのシステムであって、
1つまたは複数のプロセッサと、
命令を記憶するメモリとを備え、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
近似シストリックアレイのセットを生成するステップと、
ディープニューラルネットワーク(DNN:deep neural network)を処理する前記近似シストリックアレイのセット内の各近似シストリックアレイの性能を決定するステップと、
前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップと、
前記推論チップ設計に含めるために、前記マッピングと近似シストリックアレイの前記セット内の各近似シストリックアレイの前記性能とに基づいて、前記近似シストリックアレイのセットのサブセットを選択するステップとを実行させる、システム。
【請求項12】
前記命令は、さらに、前記1つまたは複数のプロセッサに、
近似シストリックアレイの第2のセットを生成するステップと、
前記DNNを処理する前記近似シストリックアレイの第2のセット内の各近似シストリックアレイの性能を決定するステップと、
前記DNNの各レイヤを、前記近似シストリックアレイの第2のセット内の近似シストリックアレイにマッピングするステップと、
前記マッピングと前記近似シストリックアレイの第2のセット内の前記各近似シストリックアレイの性能とに基づいて、前記近似シストリックアレイのサブセットを更新するステップとをさらに実行させ、前記近似シストリックアレイの更新されたサブセットは、前記近似シストリックアレイの第2のセットからの少なくとも1つのシストリックアレイを含む、請求項11に記載のシステム。
【請求項13】
前記近似シストリックアレイのセットは、アーキテクチャテンプレートを満たすように生成され、前記アーキテクチャテンプレートは、前記推論チップ設計のためのシストリックアレイの数および/またはサイズを定義する、請求項11に記載のシステム。
【請求項14】
前記近似シストリックアレイのセット内の各近似シストリックアレイは、予め定義された乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記予め定義されたMACはバンクに記憶される、請求項13に記載のシステム。
【請求項15】
前記近似シストリックアレイの前記セット内の各近似シストリックアレイは、乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記MACの少なくとも1つは、予め定義された基準に基づいて生成される、請求項13に記載のシステム。
【請求項16】
前記予め定義された基準は、電力使用量または精度のうちの1つまたは複数を含む、請求項15に記載のシステム。
【請求項17】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの電力使用量を決定するステップを含む、請求項11に記載のシステム。
【請求項18】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの精度を決定するステップをさらに含む、請求項17に記載のシステム。
【請求項19】
前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップは、
前記DNNの各レイヤについて、前記各近似シストリックアレイの電力使用量と精度とに基づいて、前記近似シストリックアレイのサブセット内の特定の近似シストリックアレイに、前記推論チップ設計内のルータを構成するステップを含む、請求項18に記載のシステム。
【請求項20】
前記推論チップ設計は、少なくとも1つの全精度シストリックアレイを含む、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願との相互参照
本出願は、2021年11月22日に出願された米国特許出願第17/532,572号の継続出願であり、その開示内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
背景
ニューラルネットワークモデルをスケーリングすると、これらのニューラルネットワークモデルによって提供される出力の精度が向上することが多い。しかし、これらのニューラルネットワークモデルのサイズが成長し続けると、これらのディープニューラルネットワークモデルを実装する推論アクセラレータによって消費されるエネルギー量も増加する。したがって、ディープラーニングニューラルネットワークモデルにおけるわずかな効率改善でさえ、ディープラーニングモデルを実装する推論アクセラレータによるグローバルエネルギー消費を劇的に削減する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ディープラーニングモデルを実装する際に基本的な数学演算を実行する演算ユニットは、推論アクセラレータによって消費されるエネルギーの大部分を占めることが多い。これらの演算ユニットの電力効率を改善するために、全精度浮動小数点計算を低ビット精度量子化演算に置き換えることができる。しかし、低ビット量子化の効率向上により、ディープラーニングモデルによる出力の精度が低下する可能性がある。場合によっては、近似によって失われた精度を回復するために、モデルの重み調整が行われることがある。しかし、この重み調整ステップは、精度劣化を回避するのに十分でない場合がある。
【0004】
ディープラーニングモデルを実装する推論アクセラレータによるエネルギー消費を削減するためのさらなる取り組みには、量子化演算子よりも電力効率の高い近似ユニットを使用することが含まれる。これらの近似ユニットは、ニューラルネットワーク評価中に観察される数値分布に近似を調整する近似演算子(例えば、乗算器および加算器)を実装することができる。評価中に特定のアプリケーションに合わせて近似を調整することで、量子化がすべての入力にわたって一様に近似される場合よりも、消費電力と精度のトレードオフが改善される可能性がある。しかし、近似ユニットによって生じる誤差は、ディープラーニングモデルが後続の各ニューラルネットワークレイヤを進むにつれて増幅され、不正確な出力につながる可能性がある。
【課題を解決するための手段】
【0005】
概要
本明細書で説明する技術は、生産のための推論チップ設計を生成することを対象とする。本開示の一態様は、推論チップを生成するための方法を対象とする。本方法は、1つまたは複数のプロセッサによって、近似シストリックアレイのセットを生成するステップと、1つまたは複数のプロセッサによって、ディープニューラルネットワーク(DNN:deep neural network)を処理する近似シストリックアレイのセット内の各近似シストリックアレイの性能を決定するステップと、1つまたは複数のプロセッサによって、DNNの各レイヤを、近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップと、1つまたは複数のプロセッサによって、推論チップ設計に含めるために、近似シストリックアレイのセットのサブセットを、マッピングと近似シストリックアレイのセット内の各近似シストリックアレイの性能とに基づいて、近似シストリックアレイのセットのサブセットを選択するステップと、を含み得る。
【0006】
本開示の別の態様は、生産のための推論チップ設計を生成するためのシステムを対象とする。システムは、1つまたは複数のプロセッサと、命令を記憶するメモリとを含む。命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、近似シストリックアレイのセットを生成するステップと、ディープニューラルネットワーク(DNN:deep neural network)を処理する近似シストリックアレイのセット内の各近似シストリックアレイの性能を決定するステップと、DNNの各レイヤを、近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップと、推論チップ設計に含めるために、マッピングと近似シストリックアレイのセット内の各近似シストリックアレイの性能とに基づいて、近似シストリックアレイのセットのサブセットを選択するステップと、を実行させる。
【0007】
いくつかの例では、近似シストリックアレイの第2のセットが生成され、DNNを処理する近似シストリックアレイの第2のセット内の各近似シストリックアレイの性能が決定され、DNNの各レイヤを近似シストリックアレイの第2のセット内の近似シストリックアレイにマッピングし、マッピングと近似シストリックアレイの第2のセット内の各近似シストリックアレイの性能とに基づいて、シストリックアレイのサブセットが更新される場合があり、近似シストリックアレイの更新されたサブセットは、近似シストリックアレイの第2のセットからの少なくとも1つのシストリックアレイを含む。
【0008】
いくつかの例では、近似シストリックアレイのセットは、アーキテクチャテンプレートを満たすように生成され、アーキテクチャテンプレートは、推論チップ設計のためのシストリックアレイの数および/またはサイズを定義する。いくつかの例では、近似シストリックアレイのセット内の各近似シストリックアレイは、予め定義された乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、予め定義されたMACはバンクに記憶される。
【0009】
いくつかの例では、近似シストリックアレイのセット内の各近似シストリックアレイは、乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、MACの少なくとも1つは、予め定義された基準に基づいて生成される。いくつかの例では、予め定義された基準は、電力使用量または精度のうちの1つまたは複数を含む。
【0010】
いくつかの例では、各近似シストリックアレイの性能を決定するステップは、各近似シストリックアレイの電力使用量を決定するステップを含む。いくつかの例では、各近似シストリックアレイの性能を決定するステップは、各近似シストリックアレイの精度を決定するステップをさらに含む。
【0011】
いくつかの例では、DNNの各レイヤを、近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップは、DNNの各レイヤについて、各近似シストリックアレイの電力使用量と精度とに基づいて、近似シストリックアレイのサブセット内の特定の近似シストリックアレイに、推論チップ設計内のルータを構成するステップを含む。
【0012】
いくつかの例では、推論チップ設計は、少なくとも1つの全精度シストリックアレイを含む。
【図面の簡単な説明】
【0013】
【
図1】本開示の態様による、最適化された推論チップを生成するための例示的なフレームワークのブロック図である。
【
図2】本開示の態様による、最適化された推論チップの図である。
【
図3】本開示の態様による、様々なMACの主成分を示すグラフである。
【
図4】本開示の態様による、単一のMACおよびシストリックアレイの消費電力を示すグラフである。
【
図5】本技術の態様による、厳密なシストリックアレイから形成されたMXUに対する、近似シストリックアレイの集合を含む最適化されたMXUの動作温度を示すグラフである。
【
図6】本技術の態様による、フレームワークを実装する例示的なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【0014】
詳細な説明
本明細書で説明する技術は、ディープラーニングモデルを実行する際に精度がほとんど損なわれない、近似的で低消費電力のディープラーニングアクセラレータチップを設計することを対象とする。さらに、本明細書で説明する近似的で低消費電力のディープラーニングアクセラレータチップ(「推論チップ」)は、精度を維持するためにディープラーニングモデルを再トレーニングする必要がない。その代わりに、推論チップは、「正確な」ユニット(例えば、全精度計算が可能な演算ユニット)から構成されたチップと同じ、またはほぼ同じ精度でディープラーニングモデルを処理するように設計されている。
【0015】
推論チップは、アーキテクチャテンプレートを使用して設計されてもよい。このテンプレートは、近似加算器および/または近似乗算器などの近似ユニットを含むシストリックアレイのバンクへの再構成可能な配線アレイを備えた効率的な設計の多様なセットを生成することができる。これにより、実行時に、ディープラーニングモデル内のエラー耐性レイヤを推論チップアクセラレータ内のより多くの近似ユニットに動的にルーティングすることが可能になり、大幅な省電力化が実現する。さらに、ディープラーニングモデル内のエラーにより敏感なレイヤは、より正確な近似ユニットおよび/または正確なユニットで評価され、エラーの発生を最小化または回避することができる。推論チップ上の近似ユニットを、ディープラーニングモデル内のレイヤのシストリックアレイへのソフトウェアマッピングと共同設計することで、精度を低下させることなく、省電力化を達成することができる。
【0016】
図1は、低消費電力で高精度の推論チップを作成するための設計プロセスを示すフロー図である。本明細書で説明するように、推論チップ設計のために近似乗積近似ユニットを選択するタスクは、処理要素(PE)の集合を含むチップのシストリックアレイにDNNレイヤをマッピングすることと同時に発生する。
【0017】
各シストリックアレイは、PEの2次元アレイを含むことができ、各PEは、1つまたは複数の乗算積算ユニット(MAC)を含む。さらに、各PEは、入力オペランドおよび出力結果用のバッファを含むことができる。各シストリックアレイはグローバルに活性化され、パラメータメモリはすべてのシストリックアレイで共有される。通常、各シストリックアレイは単一のタイプのMACを含むが、いくつかのシストリックアレイは複数のタイプのMACを含むことがある。さらに、本明細書で説明する例ではMACについて説明するが、他の演算ユニットも使用することができる(例えば、加算器)。ハードウェアを設計し、DNNレイヤをシストリックアレイに同時にマッピングすることによって、推論チップは、ニューラルネットワークの特定のクラスにカスタム調整することができる。
【0018】
フロー図は、シストリックアレイ生成器105を含むアクセラレータアーキテクチャ生成器106に入力された所与のアーキテクチャテンプレート101およびアーキテクチャパラメータ115を満たす近似ユニットおよび/または正確なユニットのシストリックアレイを生成するための推論チップ設計フレームワーク100を示す。フレームワーク100のアーキテクチャテンプレート101は、推論チップのレイアウトおよび構成に対応する要件を定義することができる。例えば、アーキテクチャテンプレート101は、推論チップのシストリックアレイの数およびシストリックアレイのサイズを定義することができる。例えば、アーキテクチャテンプレートは、推論チップが3つのシストリックアレイを有し、2つが近似ユニットから構成され、1つが正確なユニットから構成されることを定義することができる。他のテンプレートでは、他の量およびタイプのアレイが定義されてもよく、どの近似ユニット(例えば、MAC)を使用するかなどが定義されてもよい。アーキテクチャパラメータ115は、異種シストリックアレイの構成、メモリおよびシステムパラメータ等を含み得る。フレームワーク100による初期処理では、アーキテクチャパラメータは「シード」されてもよい。シードされたパラメータは、予め定義されてもよいし、または、フレームワークがプロセスを開始するたびに入力されてもよい。
【0019】
シストリックアレイ内の処理要素を作成するために使用され得るMACは、フレームワークのバンク103に記憶され得る。MACは、エラー耐性および電力使用量などの特定の基準を満たす属性を有し得る。例えば、第1のMACは、正確なMACに対して1%の誤差および正確なMACに対して99%の電力使用率などの属性を有することができる。別の例では、第2のMACは、正確なMACに対して3%の誤差および正確なMACに対して90%の電力使用率を有することができる。バンク103は、場合によっては、(近似計算ではなく)全精度計算を実行する正確なMACを含む、任意の数の構成されたMACを記憶することができる。場合によっては、MACはフレームワークによって生成されてもよい。この点に関して、フレームワークは、特定のエラー割合および電力使用量を有するMACなど、特定の使用ケースに適合するMACを生成することができる。シストリックアレイの生成中に、フレームワークは、バンク103に記憶された予め定義されたMACによって満たされない特定の使用ケースに適合するMACを生成してもよい。
【0020】
アクセラレータアーキテクチャ生成器106のシストリックアレイ生成器105は、バンク103に記憶されたMACを使用して、シストリックアレイのセットがDNN107を正確に実行できることを保証しながら、所与のアーキテクチャテンプレート(およびアーキテクチャパラメータ115)の要件を満たすように、多様なシストリックアレイのセットを生成することができる。これに関して、アクセラレータアーキテクチャ生成器106は、アーキテクチャテンプレート101およびアーキテクチャパラメータ115を受け取ることができる。次に、アクセラレータアーキテクチャ生成器106は、受け取ったデータの一部または全部をシストリックアレイ生成器に提供することができる。例えば、アクセラレータアーキテクチャ生成器106は、シストリックアレイのサイズ、構成(例えば、推論チップがx%のMACx、y%のMACyを含む)等のシストリックアレイの設計のパラメータをシストリックアレイ生成器105に通知してもよい。MACxおよびMACyは、バンク103から選択することができる。
【0021】
シストリックアレイ生成器105は、受け取ったパラメータに従って、シストリックアレイのセットを生成してもよい。これに関して、フレームワークのシストリックアレイ生成器105は、受け取ったパラメータに従って、精度および電力属性が変化するMACを選択してもよい。シストリックアレイ生成器105は、ベリログ(Verilog)、C++、または他のそのような言語などで、シストリックアレイを表すコードを生成してもよい。
【0022】
DNN107の各レイヤは、フレームワーク100のレイヤワイズマッピング120関数に入力されてもよい。レイヤワイズマッピング120関数は、DNN107の各レイヤを、シストリックアレイ生成器105によって生成されたシストリックアレイのセットの特定のシストリックアレイに割り当てることができる。本明細書で説明するように、DNNを処理するための最適な近似レベルは、ディープニューラルネットワークの異なるレイヤ間で劇的に変化する可能性がある。レイヤワイズマッピング関数120は、その近似許容度に基づいて各DNNレベルをマッピングしてもよい。
【0023】
本明細書で説明されるように、シストリックアレイの生成された各セットの電力および精度がテストされ、DNN107を実行するようにカスタム調整された推論チップ設計のためにシストリックアレイの最適セットが選択される場合がある。本明細書ではDNNについて説明するが、低消費電力で高精度の推論チップを作成するための設計プロセスは、他のタイプのニューラルネットワークに対して実行されてもよい。例えば、生成されたシストリックアレイの各セットは、本明細書で説明する高速精度推定109を使用して精度についてテストされてもよい。さらに、ブロック111によって示され、本明細書で説明されるように、生成されたシストリックアレイの各セットの電力推定値および性能推定値(集合的に「性能推定値」)が決定されてもよい。
【0024】
精度および性能推定値は、シストリックアレイの最適化された組み合わせを決定するために、本明細書で説明する目的関数112に入力されてもよい。この点に関して、目的関数112は、各DNNレイヤのマッピングが精度および性能の観点からどの程度優れているかを評価することができる。
【0025】
次に、アーキテクチャ探索アルゴリズム113は、目的関数の結果(および目的関数の他の以前の結果)を取り込み、異なるシストリックアレイのセットで改善が可能かどうかを決定することができる。これに関して、アーキテクチャ探索アルゴリズム113は、現在のパラメータに対する現在の目的関数の結果と、以前のパラメータに対する過去の目的関数の結果とを受け取ることができる。これらのパラメータに基づいて、アーキテクチャ探索アルゴリズム113は、試すべきパラメータの次のセットを決定することができる(
図1の113から115への矢印で図示)。フレームワーク100は、最適な構成をもたらすパラメータ空間の反復探索を通じて、目的関数の最適値を見つけることを目的とする。
【0026】
このプロセスは、ある回数、または、シストリックアレイ、レイヤワイズマッピングなどのすべての可能な組み合わせが完了するまで、繰り返すことができる。その後、最も効率的で正確なシストリックアレイのセットが選択される。図示していないが、フレームワークは、選択されたシストリックアレイのセットに従って推論チップを構成するための設計計画を出力することができる。
【0027】
シストリックアレイの最適化された組み合わせは、マルチタイル行列乗算ユニット(MXU)を構成することができる。マルチタイルMXUの各「タイル」は、特定の精度と電力属性を有するシストリックアレイを含むことができる。例えば、
図2は、アレイA207、アレイB209、およびアレイZ211を含む3つのシストリックアレイを含むマルチタイルMXU205を示す。MXU205は3つのアレイのみを含むように示されているが、MXUは任意の数のシストリックアレイを含むことができる。
図2にさらに示すように、活性化バッファ201は、DNNの以前のレイヤの結果を受け取ることができる。これらの以前の結果は、学習済みルータ203によって、DNNの次のレイヤを処理するためのシストリックアレイにルーティングされる。レイヤのルーティングは、ルータが処理のためにDNNの特定のレイヤを予め定義されたシストリックアレイに向けるように、事前にプログラムされてもよい。例えば、
図2はアレイZ211によって処理されている現在のDNNレイヤを示している。
【0028】
精度推定
大規模なディープニューラルネットワークのトレーニングと推論の両方は、何兆もの算術演算を伴う可能性がある。正確な算術演算と標準的なデータ型を使用すると、この評価はハイスループットGPU上で並列化できる。しかし、近似MACを使用した不正確な算術演算のシミュレーションでは、既存のハードウェアがそのような演算をサポートしていないため、不正確な算術演算の直接評価が困難な場合がある。例えば、Verilator回路シミュレータのような回路シミュレータで近似MACを直接評価すると、8ビットの正確な乗算を1回実行するだけで、高性能サーバでは3.75±0.95マイクロ秒かかることがある。したがって、50レイヤの深さのResNet-50のような大規模なニューラルネットワークの評価には、224×224フレームあたり4GFLOPsで約4.2時間かかる可能性がある。ImageNet検証セット全体では、1つの近似乗算器を評価するのに約23年かかる。
【0029】
さらに、呼び出しはキャッシュされる可能性があるが、Nビット乗算器のための完全な2N+Nルックアップテーブルは、広いビット幅に拡張できない可能性がある。例えば、16ビット入力の場合、ルックアップテーブルは16ギガバイトを超える。サイズが大きいため、GPUアクセラレーションを使用することはできない。
【0030】
【0031】
Nビットの誤差行列ε∈R2N+Nを記憶する際のメモリを節約するために、切り捨てられた特異値分解が、以下の式(1)を用いてk<<2Nで計算されてもよい。
【0032】
【0033】
総メモリ消費量は、O(n2)からO(nk)に減少する。式(1)中、Σは誤差行列、σiは誤差行列のi番目の固有値、uiとviはそれぞれ誤差行列のi番目の左特異ベクトルと右特異ベクトルである。パラメータk<<2Nは近似量を制御し、kが小さいほど近似量は増加するが、誤差行列を記憶するためのメモリ使用量は減少する。小さなk≦50では、総メモリ消費量は20MB以下より少なくなる。評価中、i×jの近似乗算の結果が再計算されることがある。
【0034】
すべての結果は、ImageNet2012データセットのような大規模画像データセットのような分類データセットを使用して評価される場合がある。ターゲットデータセット上でのエンドツーエンドモデルの評価速度を向上させるために、完全な検証セットの10%サンプルなどの小さなサンプルを評価することができる。例えば、ImageNet2012を使用する場合、5000画像のサンプルを使用することができる。サンプル検証セットでのモデルの順序付けは、通常、完全なデータセットでの性能と相関する。
【0035】
全体として、本明細書で説明する最適化は、Verilatorでの直接回路シミュレーションと比較して、7200倍のスピードアップをもたらす可能性がある。また、この戦略により、将来的に自動再トレーニングが可能なGPU評価が実現可能になる。低ランク分解でルックアップテーブルを圧縮することにより、本明細書で説明するモデル評価をより広いビット幅の回路に拡張することができる。
【0036】
さらに、本明細書で説明するアプローチは、他の既知の量子化方法と相補的である。例えば、推論前に重みが8ビットに静的に量子化されるダイナミックレンジのポストトレーニング量子化が実行されてもよい。推論中、活性は、[0;255]のuint8範囲にスケーリングされ、次いで量子化され得るが、他の範囲が使用されてもよい。その後、以下の式(2)を用いて量子化を解除することができる。
【0037】
【0038】
q1は重み行列を表し、q2は活性化行列を表し、Zはそれぞれのゼロ点を表す。量子化を考慮したトレーニングを利用した、より高度な量子化方法により、より高い省電力を達成することができる。
【0039】
【0040】
MXU全体にわたるシストリックアレイの性能を評価するために、半導体設計およびテストソフトウェアが使用され得る。テストは、サブ10nmプロセスでの半導体設計の評価が可能である。評価のために、各シストリックアレイに単一のクロックドメインが適用され、クロック周波数は最も遅いシストリックアレイによって決定される。この点で、クロック周波数は通常、「正確な」シストリックアレイに基づくが、他の「近似的な」シストリックアレイはより遅いため、クロック周波数の設定に使用される場合がある。さらに、この例では単一のクロック周波数について説明するが、MXUの設計の一部または全部のシストリックアレイは、異なる周波数でテストされる場合がある。合成中、異なるMXUバリアントは最も遅いクロック周波数に制約される。これにより、合成ツールは、より高い固有性能を持つ近似MXUバリアントに対してより小さなゲートサイズを選択することができるため、電力と面積をある程度節約することができる。
【0041】
実際には、DNNアクセラレータは通常、遅延の制限ではなく、熱設計電力(TDP)の制限を受けている。したがって、近似シストリックアレイによる熱の節約を使用して推論チップをオーバークロックすることで、さらなる利得が得られる可能性がある。例えば、
図5は、最適化された近似MXUが、「正確な」シストリックアレイのみを持つMXUと比較して、大幅に低い温度で動作することを示している。
【0042】
回路探索とレイヤマッピング
近似回路マッピング問題の定式化
特定の設計の性能は、畳み込みループのネストがどのようにアレイにマッピングされるかにも依存する。DNNレイヤを特定のシストリックアレイにマッピングすることで、生成されるアクセラレータが合成後に起こるものと一致するようになる。
【0043】
高いエンドツーエンドのタスク精度を維持するためには、ディープラーニングモデルのどのレイヤが近似耐性であるかを考慮する必要がある。この点に関して、最適な近似レベルは、ディープニューラルネットワークの異なるレイヤ間で劇的に変化する可能性がある。しかし、チップ設計のために近似シストリックアレイを選択するタスクと、DNNのレイヤをシストリックアレイにマッピングするタスクを同時に考慮することは困難である。この点で、これら2つのサブ問題(チップ設計のための近似ユニットの選択と、近似ユニットへのDNNのレイヤのマッピング)は、それぞれ困難な組み合わせ最適化問題である。これらを合わせると、K個のMAC設計候補とN個のディープニューラルネットワークレイヤをマッピングするO(KN)個の探索空間となる。Oとは、探索空間の複雑さを表す「ビッグO」表記である。さらに、最大2268個の探索空間、あるいはそれ以上、あるいはそれ以下の多数の作業負荷が存在する場合もある。この場合、探索空間は近似MACの設計方法を定義する。最適化アルゴリズムの目標は、この探索空間内で最適化された設計を見つけることである。したがって、ランダム探索ではうまくいかない。
【0044】
ガウス過程(GP)バンディットを用いたベイズ最適化は、高精度でありながらエネルギー効率の高いクロスレイヤ近似回路の構成を効率的に発見するために活用することができる。このアプローチは、未知の報酬関数f:x→yをガウス過程でモデル化することにより、ブラックボックス最適化のサンプル効率を改善する。
【0045】
近似回路マッピング問題の定式化のために、ディープニューラルネットワークレイヤへの近似回路の最小電力マッピングを求める以下の最適化問題を考える。
【0046】
【0047】
【0048】
精度オラクル「ACC」は、近似によるクロスレイヤ相互作用の影響をモデル化する。近似乗数のレイヤへの特定の割り当てが与えられると、ACCは特定のデータセットに対するモデルの期待精度を計算する。あるレイヤで発生した誤差はそれ以降のレイヤで複合的に作用するため、精度オラクルはモデル化するのが非常に困難である。したがって、モデルの精度は、検証セットに対して行われる。
【0049】
このことは、最適化問題をブラックボックスの組み合わせ最適化問題に縮小し、さらに、ベイズ最適化手法は、上記の最適化問題に適用された場合、典型的には失敗する。これは、ベイズ最適化手法がランダム探索に似たパフォーマンスで遅い収束を示すためである。さらに、ベイズ最適化は、高次元の状態、離散的な構造、および制約のある探索空間に苦戦する。したがって、上記の最適化問題は、既知のベイズ最適化ツールを使用できるように再定式化することができる。
【0050】
単レイヤ近似の校正
高精度の近似回路設計を見つけるために、実行可能な解は、制約(2b)の最小検証精度閾値で制約されてもよい。しかし、精度オラクル「ACC」は知られていない。したがって、探索空間の複雑さを軽減するために、ターゲットレイヤに対する近似乗数のみを使用するオフライン研究が実行されることがある。他のすべてのレイヤは厳密乗数を用いて評価することができる。このモデルは、クロスレイヤ近似から期待精度の上限を提供する。例外的に期待精度が低いマッピングは刈り込まれるかもしれない。
【0051】
状態空間の連続緩和
GPバンディットは主に離散探索空間上で最適化するように設計されている。ベイズ最適化フレームワークは、通常、実数値ボックスに埋め込むことによって離散探索空間をサポートする。しかし、この埋め込みは、異なるカテゴリー変数間の関係を考慮しないため、サンプル効率が悪い。例えば、この解決策には、連続予測変数を最も近い実行可能点に丸めることによる量子化誤差による不安定性という課題がある。
【0052】
この問題に対処するために、単レイヤ近似からのレイヤごとの精度劣化の推定値を使用して、各近似乗数の相対順序付けを表す順序付きセットを計算することができる。この点に関して、順序付けは、特定の乗数で単一レイヤkを近似するためのプロファイル化されたエンドツーエンド精度として定義することができる。しかし、丸められない精度での直接探索は、不安定な緩和最適化問題となる。この結果、2つの近似乗算器は同じような精度を達成するが、消費電力は大きく異なる。そのため、乗数の線形順序は、精度の固定閾値内の同値が比較不可能とみなされる部分順序セットに緩和される可能性がある。そして、完成した線形順序は、同様の精度で比較不可能な乗算器の各ペアの中で最も効率の悪い乗算器を削除することによって解決され得る。
【0053】
この手順により、ニューラルネットワークのN個のレイヤの各々について乗数の線形順序が導出される。マッピング後の新しい次元における距離を定義するために、単レイヤ近似校正から得られた各乗算器のトップ1精度(すなわち、高確率)に最小-最大スケーリングを適用することができる。探索空間のこの新しい定式化が与えられると、次のようなコスト最適化目的が定義される。N個のレイヤの各々について、(0から1までの)近似乗数の実数値の選択を、切り捨てで、最も近いレイヤのエネルギー消費量に対応付けるために、ステップワイズコスト関数Qi:R→Rを定義してもよい。
【0054】
次に、緩和された最適化問題は以下のようになる。
【0055】
【0056】
バリア関数を用いた制約なし最適化
最近の研究では、ベイズ最適化を使用した多目的最適化が研究され始めているが、これらのアプローチは、一般に、単一目的オプティマイザよりもサンプル効率が著しく低い。推論チップ設計を最適化するために、精度とエネルギー消費との間の2次元パレートフロンティアを検討することができる。実際には、同様の精度を持つ冗長な近似乗算器が単一チップ上にインスタンス化される縮退解を回避するために、最終的なシストリックアレイの面積も制限することが有用な場合がある。
【0057】
バリア法は、制約(3b)および(3c)を除去するために使用することができる。バリア法は、x≦bの形の各制約を、目的関数β(x,b)=-log(b-x)またはβ(x;b)=ex-bにおけるペナルティで置き換える。xが制約bに近づくと、ペナルティは∞になる。バリア法を利用すると、目的は以下のように表される。
【0058】
【0059】
この更新された目的は、制約(3b)と(3c)の除去を可能にする。指数バリア関数は、ソフトな制約違反を可能にするため、活用することができる。精度の項では、目標精度τは0.68またはそれ以上もしくはそれ以下であり、重みα2は8またはそれ以上もしくはそれ以下であり得る。面積の項では、目標面積率(正確な倍率を含む)はφ=400%などまたはそれ以上もしくはそれ以下であり、スケールα2は1:2またはそれ以上もしくはそれ以下であり得る。
【0060】
コンピューティング環境例
図6は、
図1に示されるような例示的なフレームワークを実装する例示的なコンピューティング環境600のブロック図である。例えば、フレームワークは、サーバコンピューティングデバイス615のような、1つまたは複数の場所に1つまたは複数のプロセッサを有する1つまたは複数のデバイスに実装され得る。ユーザコンピューティングデバイス612およびサーバコンピューティングデバイス615は、ネットワーク660を介して、1つまたは複数のストレージデバイス630に通信可能に結合され得る。ストレージデバイス630は、揮発性メモリと不揮発性メモリの組み合わせとすることができ、コンピューティングデバイス612、615と同じ物理的位置にあってもよく、異なる物理的位置にあってもよい。例えば、ストレージデバイス630は、ハードドライブ、ソリッドステートドライブ、テープドライブ、光学ストレージ、メモリカード、ROM、RAM、DVD、CD-ROM、書き込み可能なメモリ、および読み取り専用メモリなど、情報を記憶することができる任意のタイプの非一過性のコンピュータ可読媒体を含むことができる。
【0061】
サーバコンピューティングデバイス615は、1つまたは複数のプロセッサ613およびメモリ614を含み得る。メモリ614は、プロセッサ613によって実行され得る命令621を含む、プロセッサ613によってアクセス可能な情報を記憶し得る。メモリ614はまた、プロセッサ613によって検索、操作または記憶され得るデータ623を含み得る。メモリ614は、揮発性メモリおよび不揮発性メモリなど、プロセッサ613によってアクセス可能な情報を記憶することができるタイプの非一過性のコンピュータ可読媒体であり得る。プロセッサ613は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、および/またはテンソル処理装置(TPU)などの特定用途向け集積回路(ASIC)を含み得る。
【0062】
命令621は、プロセッサ613によって実行されると、1つまたは複数のプロセッサに命令によって定義される動作を実行させる1つまたは複数の命令を含み得る。命令621は、プロセッサ613によって直接処理されるためのオブジェクトコード形式で、または解釈可能なスクリプト、またはオンデマンドで解釈されるか、または事前にコンパイルされる独立したソースコードモジュールのコレクション、を含む他の形式で記憶され得る。命令621は、本開示の態様と一致するフレームワーク100を実装するための命令を含み得る。フレームワーク100は、プロセッサ613を使用して、および/またはサーバコンピューティングデバイス615から遠隔に位置する他のプロセッサを使用して、実行され得る。
【0063】
データ623は、近似MAC103のバンク、アーキテクチャテンプレート101、アーキテクチャパラメータ115など、命令621に従ってプロセッサ613によって検索、記憶、または変更することができる。データ623は、複数の異なるフィールドおよびレコードを有するテーブルとして、またはJSON、YAML、proto、またはXMLドキュメントとして、コンピュータレジスタ、リレーショナルまたは非リレーショナルデータベースに記憶することができる。また、データ623は、バイナリ値、ASCII、またはUnicodeなどのコンピュータ可読フォーマットでフォーマットされ得るが、これらに限定されない。さらに、データ623は、数字、記述テキスト、専有コード、ポインタ、他のネットワークロケーションを含む他のメモリに記憶されたデータへの参照、または関連データを計算する機能によって使用される情報など、関連情報を識別するのに十分な情報を含むことができる。
【0064】
ユーザコンピューティングデバイス612はまた、1つまたは複数のプロセッサ616、メモリ617、命令618、およびデータ619を備える、サーバコンピューティングデバイス615と同様に構成され得る。ユーザコンピューティングデバイス612はまた、ユーザ出力626、およびユーザ入力624を含むことができる。ユーザ入力624は、キーボード、マウス、機械的アクチュエータ、ソフトアクチュエータ、タッチスクリーン、マイクロフォン、およびセンサなど、ユーザからの入力を受信するための任意の適切な機構または技術を含み得る。
【0065】
サーバコンピューティングデバイス615は、データをユーザコンピューティングデバイス612に送信するように構成されてもよく、ユーザコンピューティングデバイス612は、受信されたデータの少なくとも一部を、ユーザ出力626の一部として実装されたディスプレイに表示するように構成され得る。ユーザ出力626はまた、ユーザコンピューティングデバイス612とサーバコンピューティングデバイス615との間のインターフェースを表示するために使用することもできる。ユーザ出力626は、代替的にまたは追加的に、ユーザコンピューティングデバイス612のプラットフォームユーザに非視覚および非可聴情報を提供する、1つまたは複数のスピーカ、トランスデューサ、または他のオーディオ出力、触覚インターフェース、または他の触覚フィードバックを含み得る。
【0066】
図6は、プロセッサ613、616およびメモリ614、617を、コンピューティングデバイス615、612内にあるものとして図示しているが、プロセッサ613、616およびメモリ614、617を含む本明細書で説明されるコンポーネントは、同じコンピューティングデバイス内ではなく異なる物理的位置で動作することができる複数のプロセッサおよびメモリを含み得る。例えば、命令621、618およびデータ623、619の一部は、取り外し可能なSDカードに記憶することができ、他は、読み取り専用コンピュータチップ内に記憶することができる。命令およびデータの一部または全部は、プロセッサ613、616から物理的に離れた場所に記憶され得るが、それでもなお、プロセッサ613、616によってアクセス可能である。同様に、プロセッサ613、616は、同時動作および/または逐次動作を実行することができるプロセッサの集合体を含むことができる。コンピューティングデバイス615、612はそれぞれ、タイミング情報を提供する1つまたは複数の内部クロックを含むことができ、これは、コンピューティングデバイス615、612によって実行される動作およびプログラムの時間測定のために使用され得る。
【0067】
サーバコンピューティングデバイス615は、ユーザコンピューティングデバイス612からデータを処理する要求を受信するように構成され得る。例えば、環境600は、プラットフォームサービスを公開する様々なユーザインターフェースおよび/またはAPIを通して、ユーザに様々なサービスを提供するように構成されたコンピューティングプラットフォームの一部であり得る。1つまたは複数のサービスは、指定されたタスクおよびトレーニングデータに従ってニューラルネットワークまたは他の機械学習モデルを生成するための機械学習フレームワークまたはツールのセットであり得る。ユーザコンピューティングデバイス612は、特定のニューラルネットワークタスクを実行するようにトレーニングされたニューラルネットワークを実行するために割り当てられるターゲットコンピューティングリソースを指定するデータを受信および送信することができる。
【0068】
デバイス612、615は、ネットワーク660を介して直接的および間接的な通信が可能であり得る。デバイス615、612は、情報を送受信するための開始接続を受け入れることができるリスニングソケットを設定することができる。ネットワーク660自体は、インターネット、ワールドワイドウェブ、イントラネット、仮想プライベートネットワーク、ワイドエリアネットワーク、ローカルネットワーク、および1つまたは複数の企業独自の通信プロトコルを使用するプライベートネットワークを含む様々な構成およびプロトコルを含むことができる。ネットワーク660は、様々な短距離および長距離接続をサポートすることができる。短距離および長距離接続は、2.402GHz~2.480GHz(一般にBluetooth(登録商標)規格に関連する)、2.4GHzおよび5GHz(一般にWi-Fi(登録商標)通信プロトコルに関連する)、またはワイヤレスブロードバンド通信用のLTE(登録商標)規格などの様々な通信規格など、異なる帯域幅で行うことができる。ネットワーク660は、追加的または代替的に、様々なタイプのイーサネット(登録商標)接続を含む、デバイス612、615間の有線接続もサポートすることができる。
【0069】
単一のサーバコンピューティングデバイス615およびユーザコンピューティングデバイス612が
図6に示されているが、本開示の態様は、逐次処理または並列処理のためのパラダイムにおける、または複数のデバイスの分散ネットワークにおけるものを含めて、コンピューティングデバイスの様々な異なる構成および数量に従って実施され得ることが理解される。いくつかの実装では、本開示の態様は、単一のデバイス、およびそれらの任意の組み合わせで実行され得る。
【0070】
本開示の態様は、デジタル回路、コンピュータ可読記憶媒体において、1つまたは複数のコンピュータプログラムとして、または前述の1つまたは複数の組み合わせで実施することができる。コンピュータ可読記憶媒体は、例えば、クラウドコンピューティングプラットフォームによって実行可能であり、有形記憶装置に記憶される1つまたは複数の命令として、非一過性であり得る。
【0071】
本明細書では、「構成されている」という語句は、コンピュータシステム、ハードウェア、またはコンピュータプログラム、エンジン、またはモジュールの一部に関連するさまざまな文脈で使用される。システムが1つまたは複数の動作を実行するように構成されていると言われる場合、これは、システムが、動作時に、システムに1つまたは複数の動作を実行させる、システムにインストールされた適切なソフトウェア、ファームウェア、および/またはハードウェアを有することを意味する。あるハードウェアが1つまたは複数の動作を実行するように構成されていると言われる場合、これは、ハードウェアが、動作時に、入力を受け取り、入力に従って、1つまたは複数の動作に対応する出力を生成する1つまたは複数の回路を含むことを意味する。コンピュータプログラム、エンジン、またはモジュールが1つまたは複数の動作を実行するように構成されていると言われる場合、これは、コンピュータプログラムが1つまたは複数のプログラム命令を含み、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに1つまたは複数の動作を実行させることを意味する。
【0072】
図面に示され、特許請求の範囲に記載された動作は特定の順序で示されているが、動作は示された順序とは異なる順序で実行することができ、いくつかの動作は省略することができ、複数回実行することができ、および/または他の動作と並行して実行することができることが理解される。さらに、異なる動作を実行するように構成された異なるシステムコンポーネントの分離は、コンポーネントを分離する必要があると理解されるべきではない。説明したコンポーネント、モジュール、プログラム、およびエンジンは、単一のシステムとして一緒に統合することも、複数のシステムの一部とすることもできる。本開示の態様による例示的なSTOCを実施する1つまたは複数の場所における1つまたは複数のプロセッサは、図面に示され、特許請求の範囲に記載された動作を実行することができる。
【0073】
特に断らない限り、前述の代替例は相互に排他的なものではなく、独自の利点を達成するために様々な組み合わせで実施することができる。上述した特徴のこれらおよび他の変形および組み合わせは、特許請求の範囲によって定義された主題から逸脱することなく利用することができるので、前述の例の説明は、特許請求の範囲によって定義された主題を限定するためではなく説明のためと解釈されるべきである。加えて、本明細書に記載された例の提供、ならびに「のように」、「を含む」などのように表現された句は、特許請求の範囲の主題を特定の例に限定するものとして解釈されるべきではなく、むしろ、例は、多くの可能な実施態様のうちの1つだけを例示することを意図している。さらに、異なる図面における同じ参照番号は、同じまたは類似の要素を識別することができる。
【手続補正書】
【提出日】2024-04-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
推論チップ設計を生成するための、コンピュータが実行する方法であって、
1つまたは複数のプロセッサによって、近似シストリックアレイのセットを生成するステップと、
前記1つまたは複数のプロセッサによって、ディープニューラルネットワーク(DNN:deep neural network)を処理する前記近似シストリックアレイのセット内の各近似シストリックアレイの性能を決定するステップと、
前記1つまたは複数のプロセッサによって、前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップと、
前記1つまたは複数のプロセッサによって、前記推論チップ設計に含めるために、前記マッピングと前記近似シストリックアレイのセット内の前記各近似シストリックアレイの性能とに基づいて、前記近似シストリックアレイのセットのサブセットを選択するステップとを含む、方法。
【請求項2】
近似シストリックアレイの第2のセットを生成するステップと、
前記DNNを処理する前記近似シストリックアレイの第2のセット内の各近似シストリックアレイの性能を決定するステップと、
前記DNNの各レイヤを、前記近似シストリックアレイの第2のセット内の近似シストリックアレイにマッピングするステップと、
前記マッピングと前記近似シストリックアレイの第2のセット内の前記各近似シストリックアレイの性能とに基づいて、前記近似シストリックアレイのサブセットを更新するステップとをさらに含み、前記近似シストリックアレイの更新されたサブセットは、前記近似シストリックアレイの第2のセットからの少なくとも1つのシストリックアレイを含む、請求項1に記載の方法。
【請求項3】
前記近似シストリックアレイのセットは、アーキテクチャテンプレートを満たすように生成され、前記アーキテクチャテンプレートは、前記推論チップ設計のためのシストリックアレイの数および/またはサイズを定義する、請求項1に記載の方法。
【請求項4】
前記近似シストリックアレイのセット内の各近似シストリックアレイは、予め定義された乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記予め定義されたMACはバンクに記憶される、請求項3に記載の方法。
【請求項5】
前記近似シストリックアレイのセット内の各近似シストリックアレイは、乗算積算ユニット(MAC:multiply-accumulate unit)を使用して生成され、前記MACの少なくとも1つは、予め定義された基準に基づいて生成される、請求項3に記載の方法。
【請求項6】
前記予め定義された基準は、電力使用量または精度のうちの1つまたは複数を含む、請求項5に記載の方法。
【請求項7】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの電力使用量を決定するステップを含む、請求項1に記載の方法。
【請求項8】
前記各近似シストリックアレイの性能を決定するステップは、前記各近似シストリックアレイの精度を決定するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記DNNの各レイヤを、前記近似シストリックアレイのセット内の近似シストリックアレイにマッピングするステップは、
前記DNNの各レイヤについて、前記各近似シストリックアレイの電力使用量と精度とに基づいて、前記近似シストリックアレイのサブセット内の特定の近似シストリックアレイに、前記推論チップ設計内のルータを構成するステップを含む、請求項8に記載の方法。
【請求項10】
前記推論チップ設計は、少なくとも1つの全精度シストリックアレイを含む、請求項1に記載の方法。
【請求項11】
推論チップ設計を生成するためのシステムであって、
1つまたは複数のプロセッサと、
命令を記憶するメモリとを備え、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに
請求項1~10のいずれか1項に記載の方法を実行させる、システム。
【国際調査報告】