IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コンチネンタル オートノマス モビリティー ジャーマニー ゲーエムベーハーの特許一覧

特表2024-528185ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法
<>
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図1
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図2
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図3
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図4a
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図4b
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図5
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図6
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図7a
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図7b
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図7c
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図7d
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図8a
  • 特表-ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法 図8b
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】ニューラルネットワークアクセラレータの診断カバレッジのための装置及び方法
(51)【国際特許分類】
   G06F 11/22 20060101AFI20240719BHJP
   G06N 3/063 20230101ALI20240719BHJP
   G06F 17/10 20060101ALI20240719BHJP
【FI】
G06F11/22 673F
G06N3/063
G06F17/10 S
G06F17/10 A
G06F11/22 605G
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024506558
(86)(22)【出願日】2022-07-25
(85)【翻訳文提出日】2024-02-01
(86)【国際出願番号】 EP2022070743
(87)【国際公開番号】W WO2023016785
(87)【国際公開日】2023-02-16
(31)【優先権主張番号】21190615.1
(32)【優先日】2021-08-10
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】522400548
【氏名又は名称】コンチネンタル オートノマス モビリティー ジャーマニー ゲーエムベーハー
【氏名又は名称原語表記】Continental Autonomous Mobility Germany GmbH
【住所又は居所原語表記】Ringlerstrasse 17, 85057 Ingolstadt, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】シャウミク ガングリー
【テーマコード(参考)】
5B048
5B056
【Fターム(参考)】
5B048AA02
5B048BB01
5B048CC02
5B048FF01
5B056BB26
5B056BB71
5B056FF01
5B056FF02
(57)【要約】
安全重視畳み込みニューラルネットワーク推論アプリケーションのための安全性フレームワーク並びに関連する畳み込み及び行列乗算ベースシステムを実施するためのシステム、装置、及び方法が、開示される。例示的システムは、安全重視アプリケーション、ハードウェアアクセラレータ、及びハードウェアアクセラレータの検証を実行するための追加ハードウェアを含む。検証ハードウェアは、ハードウェアアクセラレータより低い帯域幅を有し、したがって計算毎により多くのマシンサイクルが必要である。結果の不整合は、故障処理要素を示す。
【特許請求の範囲】
【請求項1】
システム(100、600)であって、多重処理要素(PE、122)を含む積和演算(MAC)アレイ(110、610)と、安全性処理エンジン(SPE、211、411)と、を備え、前記MACアレイが、多重PEにおいて並列で行列乗算演算を実行して前記MACアレイ上で畳み込みを演算し、前記SPE上で前記行列乗算演算のサブセットを実行し、前記PE及び前記SPE上で実行された演算の結果を比較し、前記結果の不整合に基づいて故障条件を判定するように構成され、
前記SPEが、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計を計算する第1の演算、重みの合計に対応する値との乗算の第2の演算、及び2つの前記第1の演算の結果と多重PE上で実行された等価な演算の結果との比較の第3の演算を実行する、
システム。
【請求項2】
前記行列乗算演算の前記サブセットの前記結果の前記比較が、前記積和演算アレイの多重処理要素の前記演算を検証することを可能にする、請求項1に記載のシステム。
【請求項3】
前記行列乗算演算の前記サブセットの前記結果の前記比較が、前記積和演算アレイの全ての処理要素の前記演算を検証することを可能にする、請求項1又は2に記載のシステム。
【請求項4】
前記SPEが、入力ベクトルの入力値を順次受信し、各入力値と重みとを乗算する、請求項1~3のいずれか一項に記載のシステム。
【請求項5】
前記SPEが、所与の入力ベクトルの値のサブセットを含む、ストライド適用した入力値を順次受信する、請求項4に記載のシステム。
【請求項6】
前記MACアレイ及び前記SPEが、推論アクセラレータの検証を実行するための追加又は共有ハードウェアを含む、安全重視推論アプリケーションを実施する推論アクセラレータシステムの一部であり、検証ハードウェアが前記推論アクセラレータより低い処理帯域幅を有するため、比較のための前記結果を生成する計算毎に、より多くのマシンサイクルが必要である、請求項1~5のいずれか一項に記載のシステム。
【請求項7】
畳み込み層(730)が、yf,j+1=Σij+n*wf,n、n=[0,k]と定義され、kが、自然数である、請求項1~6のいずれか一項に記載のシステム。
【請求項8】
前記SPEで使用される前記重みの合計(740)が、W=Σwf,nと定義される、請求項7に記載のシステム。
【請求項9】
前記重みの合計の計算が、コンパイル時に実行される、請求項1~8のいずれか一項に記載のシステム。
【請求項10】
前記重みの合計が、畳み込み層の完全な重みカーネル(842)、前記畳み込み層の完全な重みカーネル(842)のサブセット(841)、又は任意の他の組み合わせである、請求項1~9のいずれか一項に記載のシステム。
【請求項11】
処理要素(PE、122)のアレイ上で積和演算のセットを含む行列演算計算を継続的に実行することと、検証演算として前記行列演算計算のサブセットを別個に且つ継続的に実行することと、結果を比較することであって、前記結果の比較が、前記計算が正しく実行されたかどうかを検証することを可能にする、前記比較することと、
を含み、
前記検証演算が、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計を実行する第1の演算と、重みの合計に対応する値との乗算を実行する第2の演算と、前記結果の比較を実行する第3の演算と、を含む、
方法。
【請求項12】
前記行列演算計算のサブセットを別個に且つ継続的に実行することが、別個の安全性処理要素(SPE、211、411)において実行される、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
背景技術
エマージングテクノロジー分野は、機械学習又は人工知能(AI)であり、ニューラルネットワークは、機械学習モデルの一種である。人工知能は、様々な自動車用途で幅広く使用され、より具体的には、畳み込みニューラルネットワーク(CNN)が、知覚及び他の用途のための従来アルゴリズムと比較して著しい精度改善をもたらすことが分かっている。CNNなどのニューラルネットワークは、手書き数字分類及び顔検出などのタスクにおいて優れた性能を示している。加えて、ニューラルネットワークは、その他の、より困難な視覚的分類タスクにおいてもうまく実行する見込みを示している。ニューラルネットワークの他の用途には、発話認識、言語モデリング、感情分析、予測入力などが含まれる。
【0002】
しかしながら、それらは、多くの場合、ISO26262などの安全性要件を満たし得るAIハードウェア及びソフトウェア不足のために、非安全重視機能に制限される。ほとんどのAIアクセラレータは、まだどのASILレベルも独立して満たしているとは主張しておらず、いくつかのAIアクセラレータが、将来的にASIL D準拠に到達する予定で「最も厳しい安全性準拠規格」の資格を得ると主張している。安全なAIアクセラレーションの分野は、依然としてその初期段階であると特徴付けられ得る。ハードウェア設計に関する安全性に言及すると、考慮されるべき2つの側面、決定論的能力(Systematic Capability)、即ち、例えばISO26262により標準化されたプロセスに従うことによって対処される決定論的故障に対するカバレッジ、及び診断カバレッジ(DC:Diagnostic Coverage)、即ち、ランダムハードウェア故障に対するカバレッジが存在する。後者のDCは、任意の新たなハードウェアアーキテクチャが高い安全完全性レベルに到達するための主要課題である。いくつかの手法が、後続の段落において説明されている。
【0003】
リアルタイム又は準リアルタイム使用のための機械学習アルゴリズムの典型的な展開では、ソフトウェアアプリケーションは、推論アクセラレータハードウェアエンジンにニューラルネットワークを供給する。多くの場合、アクセラレータは、それぞれが乗算及び加算又は積和演算を実行することが可能な多重処理要素を含む積和演算(MAC)アレイである。推論アクセラレータが安全重視環境において動作するとき、推論アクセラレータをモニタリングして異常又は故障挙動をチェックすることが望ましい。推論アクセラレータをモニタリングするための典型的な実施態様は、推論アクセラレータ処理ハードウェアサブブロックにモニタリングロジックを挿入する。例えば、マシンチェックアーキテクチャは、処理ハードウェアにおけるモニタリングロジックが異常挙動をチェックするメカニズムである。
【0004】
信頼性要件及び規定などの達成には、継続的な故障検出を含むハードウェア信頼性レベルを保証することが必要であり得る。継続動作中にランダムハードウェア故障を検出及び保護するのに必要な診断カバレッジを満たすために、マイクロコントローラに使用される多くの既存の一般的な故障検出及びハンドリング技術もAIアクセラレータに適用可能であり、使用可能である。しかしながら、これらの技術には欠点が有る場合がある。
【0005】
2つのハードウェアリソースが同一の機能を実行し結果を比較する、ロックステップコア法(Lockstep Core method)(米国特許第5915082A号明細書、国際公開第2011117155A1号パンフレット)は、高い診断カバレッジを達成するために自動車電子制御ユニット(ECU)において幅広く使用される手法である。この手法は、潜在的には、単一点故障のための計算要素の100%の診断カバレッジを主張し得るが、ハードウェアリソースを二重化することを必要とし、ハードウェアリソースの二重化は、コスト、空間、及び電力予算に対して悪影響がある。
【0006】
ロックステップ手法の一部としての二重ハードウェアリソースの使用は、コスト、領域、及び電力消費を追加して性能非効率性をもたらし、したがってこれらの欠点を補償するのに十分な性能及び電力マージンを有するハイエンド製品のみに、その使用が限定され得る。
【0007】
同様に、機能ロジックと共に組み込み自己テスト(BIST)を使用することによって、高い診断カバレッジが得られ得るが、多くの実施態様は、安全に一時停止し、機能アプリケーションの中間結果を記憶して自己テストを実行し、その後機能を再起動する必要があるため、自己テストに必要なランタイムに加えてレイテンシオーバヘッドがもたらされ、それによりさらなる性能劣化が引き起こされ得る。自己テストを実行する間アプリケーションの中間結果を保持することは、別の主要な懸念事項である。この手法には、追加回路が実施される必要がある。
【0008】
ソフトウェアテストライブラリ(STL)を使用して、あるハードウェアの必要とされる診断カバレッジを保証することが可能な純粋なソフトウェア実施態様も存在する。この手法は、ソフトウェアレベルで安全性チェックを実行するため、ハードウェアにおいて追加回路を必要としない。しかしながら、ハイレベルな手法の望ましくない副作用は、特に積和演算(MAC)アレイに対して、ハードウェアの高い故障カバレッジを達成することが困難になることであり得る。ニューラルネットワークアクセラレータについての積和演算(MAC)アレイは、ハードウェアの主要部分を構成し得る。最新技術に関するさらなる詳細は、ISO26262の機能安全規格から導き出され得る。
【0009】
自動車のユースケースに対して高いASILレベルに到達するための上述した手法に加えて、ニューラルネットワークハードウェアアクセラレータに対してより高い安全性要件を達成するための様々な設計修正を提案する、いくつかの研究発表が存在する。典型的には、これらの安全メカニズムは、ニューラルネットワークの重みだけなく、入力データ又は活性値ともいうネットワークの層からの中間結果の、ランタイムにおいて計算されたチェックサムに依存する。安全メカニズムのこの動的性質は、チェックサムのリアルタイム計算及びリアルタイムで受信した入力データへの依存関係に依存し、ハードウェア性能要件の増大に加えて、そのようなハードウェアに対して決定論的診断カバレッジを達成することに有利な議論をすることを困難にする。
【発明の概要】
【課題を解決するための手段】
【0010】
後述の発明の手法は、既存の手法(例えば、ロックステップ手法のための冗長ハードウェア又は自己テストのためのBIST回路)と比較して高いカバレッジを達成するための追加ハードウェアリソースの追加コストを減少させることに改善をもたらす。別の改善事項は、診断カバレッジを損なうことなく、機能アプリケーションとランタイムにおける自己テスト又はソフトウェアベースの安全性テストとの間の切り替えに起因し得る、追加のランタイムオーバヘッドを減少させることに関係する。同様に、発明の手法は、BIST及びSTLの両方の場合に必要とされ得る動作フローの潜在的な中断を最小限にし、又は除去し得る。最後に、多くの既存のアクセラレータは、決定論的診断カバレッジを提供する機能を含まないため、発明の手法は、AIハードウェアアクセラレータの決定論的診断カバレッジを提供し得る。
【0011】
ニューラルネットワーク(NN)は、非常に計算量の多いアプリケーションであると知られており、特に、それらは畳み込み及び行列乗算を伴う。畳み込み及び行列乗算は、本質的には積和(MAC)演算である。典型的な畳み込みニューラルネットワーク(CNN)アプリケーションは、畳み込みを含んでもよく、畳み込みは、その計算要件の90%未満を占める。その結果、AIハードウェアアクセラレータ又は推論アクセラレータは、アクティブプロセッサ領域(メモリを除く)、総処理電力などの多くを消費する、多重MACプロセッサ又は等価物を有し得る。我々の解決策は、NN及びAIアクセラレータのこの固有の特徴を利用し、それによって、CNN、長・短期記憶(LSTM)、回帰型ニューラルネットワーク(RNN)などのアプリケーションが加速される。実際には、その概念は、MACアレイを含む任意のアーキテクチャに対する用途を見出し、それにより、そのようなアレイの高い安全性カバレッジが保証され得る。
【0012】
畳み込み又は行列乗算は、多重MAC演算を含む演算であり、多重MAC演算によって、入力行列[x]及びフィルタ行列[w]が入力として使用され、出力行列[y]が生成される。既存のアクセラレータは、MACアレイとして処理エンジン(PE)のクラスタを使用してこれらの計算を実行し得る。各PEは、1つのMAC演算の実行を担当する。MACアレイのサイズは、アーキテクチャの並列化可能性を判定する因子の1つであり、計算の入力データ及び中間結果を記憶するための内部メモリ又は入力/出力(IO)若しくは電力若しくはシリコン領域の利用可能性などの因子によって制約される。例えば、単純な3×3の畳み込みは、多くとも9個のPEが、行列乗算の全ての演算が並列で発生することを可能にする必要がある。その際、演算は、連続した畳み込みが実行される毎に繰り返される。繰り返される演算又は継続した演算は、多くの場合、自動車用途において発見されたそれらのユースケースなどの、リアルタイムデータ処理アプリケーションにおいて発見され得る。
【0013】
実施態様において、CNNは、典型的には、小さなフィルタ行列と共により高い次元数の入力行列で重畳畳み込みを実行する。入力行列は、小さな重畳行列にスライスされ、その後、それぞれの小さな入力行列とフィルタ行列とをドット積及び合計して、対応する畳み込み演算を完了する。その結果、入力行列の各入力データ値は、連続的に反復して、フィルタ行列の異なる重みと乗算され、フィルタ行列の全ての重みと個別に乗算されて終了する。
【0014】
発明の解決策は、1つ又は複数の追加又は共有処理エンジンをMACアレイ内に含むことを提案し、それは、安全性処理エンジン(SPE)と呼ばれてもよく、実施形態において3つの演算を実行する。第1に、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計である。対応する乗算は、MACアレイの既存の異なるPEにおいて既に実行されているため、SPEは、対応する加算を実行するだけでよく、同一の入力データ要素は、行列の連続するスライス毎に異なる相対位置を有し、その位置は、各加算サイクルで進行し得ることに留意する。
【0015】
次いで、SPEは、重みに対応する値、例えば、通常の畳み込み演算に使用される重み全ての合計と乗算される一意の入力データ要素との対応する乗算を実行する必要がある。結果の比較によって、計算が正しく実行されたかどうかを検証することが可能となる。
【0016】
SPEにおける追加の処理要素の数は、設計選択の対象であり、PEの数及び畳み込みの種類だけでなく、ハードウェアがサポートすることを意図するカーネルサイズの考慮を含む。実施形態において、システムは、畳み込み毎、又は畳み込み1つおきにSPEにおける処理要素を1つだけ必要とする。他の実施形態では、SPEにおける多重処理要素は、MACアレイの演算を検証するために使用される計算を加速させる役割をする。サイクル毎に検証される個々のPEの数が増加するにつれて、SPEによって実行される演算数が増加する、トレードオフが存在する。システムの安全性要件に応じて、広く空いた規則的な間隔で検証が実行されるシステムが、想定され得る。
【0017】
上述した概念は、標準畳み込み、及び畳み込みの他の変形、行列乗算演算などもチェック及び検証することに有効である。様々な実施形態は、1より大きなストライド(デフォルトストライドは1に等しい)で畳み込みが実行されるストライド畳み込み(strided convolution)、ポイントワイズ畳み込み(1に等しいカーネルサイズの畳み込み)、及び行列乗算演算もサポートする。
【0018】
発明の手法は、他の手法と比較して少ないハードウェアリソースでハードウェア故障の改善されたカバレッジを提供してもよく、それにより、チェック又は検証を実行するのに必要なサイクル数がそれに応じて増加することに留意する。実施形態の追加の利点は、冗長ハードウェアに対する要件を含まないか、制限された要件を含んでもよく、それは、例えば、ロックステップ手法と比較して著しく低下したHW、又は起動時にBISTを実行するための追加回路の必要性がないことを意味し得る。同様に、(BISTは、テスト中に内部レジスタの状態を十分に失い、BISTの後でリセットすることを必要とするため)典型的にはBIST動作の後で必要とされる追加のシステムリブートの必要がない場合がある。また、実施形態は、ソフトウェア手法、及びあるBIST法とでさえ比較して著しく高いカバレッジを提供し得る。実施形態では、速度性能を劣化させることなく、且つ高く継続的なカバレッジを維持しながら、他の手法と比較してコスト、領域、電力を節約することが十分に可能であり得る。実施形態は、追加の計算全体が著しく減少された、NNアクセラレータ又は他の畳み込みアクセラレータのためのロックステップ手法のカバレッジと比較可能な、又はそれに近いカバレッジを保証することが可能であり得る。発明の手法は、ランダムハードウェア故障に対する高い診断カバレッジを達成するために、設計に統合されたハードウェア安全メカニズムを新たなハードウェアアーキテクチャに提供し、それにより、ハードウェアが安全重視アプリケーションを効率的なやり方で実施可能であることを保証する。
【0019】
発明の手法の実施形態は、多くの場合ハードウェアアクセラレータの領域及び計算必要性の相当な部分を占める、アクセラレータのMACアレイのための周期的テストの必要性を低下させるか又は除去すらすることを可能にし得る。同様に、実施形態は、動作フローにおける中断を有しないこと、任意の安全性関連テストを実行すること、及びアクセラレータの決定論的カバレッジを取得することを可能にする。実施形態は、また、アクセラレーション機能の計算及びメモリ要件全体と比較して軽微な、安全性を保証するための計算及びメモリ要件を提供する。実際には、IC生産フローの間にICテストのための実施形態を使用することが想定され得る。
【0020】
本明細書に記載された方法及びメカニズムの利点は、添付図面と併せて以下の説明を参照することによって、より良く理解され得る。
【図面の簡単な説明】
【0021】
図1】MACアレイにおける1D畳み込みの例を示す。
図2】SPEを用いた安全性チェックの追加を示す。
図3】安全性チェックを実行するためのSPEの動作を示す。
図4】安全性チェックを実行するためのSPEの動作の追加の詳細を示す。
図5】安全性チェックを実行するためのSPEの動作の追加の詳細を示す。
図6】Conv2D層のためのハードウェアの例示的な実施態様を示す。
図7】異なる種類の計算についての安全性チェックを示す。
図8】重みの合計の実施態様に関する詳細を提供する。
【発明を実施するための形態】
【0022】
以下の説明では、多数の特定の詳細が、本明細書に提示された方法及びメカニズムの完全な理解をもたらすために記載されている。しかしながら、当業者は、様々な実施態様がこれらの特定の詳細なしに実施され得ると認識すべきである。いくつかの場合に、周知の構造、コンポーネント、信号、コンピュータプログラム命令、及び技術は、本明細書に記載された手法を不明確にしないために、詳細に示されていない。例示の単純性及び明確性のために、図面に示された要素が必ずしも縮尺通りに描かれていないことを理解されたい。例えば、要素のいくつかの寸法が、他の要素に対して誇張されてもよい。
【0023】
安全重視ニューラルネットワークアプリケーションのための安全性プロセッサフレームワークを実施するためのシステム、装置、及び方法が、本明細書に開示されている。一実施態様では、システムは、安全重視ニューラルネットワークアプリケーション、安全性プロセッサ、及び推論アクセラレータエンジンを含む。安全性プロセッサは、入力画像、テストデータ(例えば、テストベクトル)、並びにニューラルネットワーク仕様(例えば、レイヤ及び重み)を安全重視ニューラルネットワークアプリケーションから受信する。開示される手法は、AI推論に使用されてもよい(が、限定されない)。訓練済みAIニューラルネットワーク(NN)は、コンパイルされて、アクセラレータとも呼ばれる専用プロセッサ上で実行される。
【0024】
ここで図1aを参照すると、積和演算(MAC)アレイ110などのアクセラレータの典型的なユースケースのためのコンピューティングシステム100の一実施態様が示されている。ランタイムにおいて、NNバイナリ(モデルグラフ、重み、及びパラメータを含む)は、畳み込みとしてハードウェア上で実行される。入力データは、例えばカメラなどのセンサから、第1の層に提供されてもよく、第1の層の結果は、第2の結果への入力として使用されるなどして、最終的には、アプリケーションの出力を取得する。これは、以下のように示され得る。
y=f(i)
ここで、iは、センサからの入力であり、f(.)は、非線形NNモデルであり、yは、出力である。
【0025】
実施態様において、CNNは、小さなフィルタ行列(例えば、3×3、5×5など)を有するより高い次元数の入力行列(例えば、1920×1080×3のカメラ入力)を用いた重畳畳み込みを実行し得る。したがって、入力行列は、フィルタ行列[w]に等価な小さな重畳行列[xk]にスライスされ、その後、それぞれの小さな入力行列とフィルタ行列とをドット積及び合計して、対応する畳み込み演算を完了する。
yk=Σ_i(xk_i*w_i)
ここで、iは、フィルタ行列のサイズにわたる範囲であり、
kは、入力行列のスライス数に及ぶ範囲であり、
xk_iは、[xk]のi番目の入力データ要素(入力行列[x]のk番目のスライス)であり、
w_iは、フィルタ行列の対応するi番目の重みであり、
ykは、入力行列のk番目のスライスについての出力値である。
【0026】
その結果、入力行列の各入力データ値は、連続的に反復して、フィルタ行列の異なる重みと乗算され、フィルタ行列の全ての重みと個別に乗算されて終了する。
【0027】
同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計が、110としてハードウェアにおいて示されている。システムは、MACアレイとして配置された多重PEを含む。連続するプロセッサ要素PE121、122、123は、入力i[j]、i[j+1]、i[j+2]を受信する。各PEは、重みw[0,0]、w[0,1]、w[0,2]を含み、これは、対応するPEにより被乗数として使用される。この実施例では、3つの入力が、対応する重みでそれぞれ乗算されてもよく、結果が、次の処理要素に提供される。実施形態において、1つの乗算加算演算がサイクルを定義する場合、P[0,0]の結果が、各サイクルの後で生成され、P[0,1]の結果が、第2のサイクルの後に開始する各サイクルで生成され、結果Y[j+1]は、第3のサイクルの後に利用可能となり始める。この実施例では、結果は、メモリバンク126に送信される。
【0028】
この特定の実施例は、重み固定データフローに基づくがこれに限定されず、典型的にはPEは、図1bに示されるように、レジスタファイルというローカルメモリ要素113から構成され、ローカルメモリ要素113は、メモリバンクを介して乗算器128に移送され、且つ1つのMAC演算を完了するために加算器129において部分合計要素に加算される、異なる入力要素と乗算される重み要素を記憶する。多くの他の可能な変形の中の例示的な実施態様を1つだけ例示している。発明の手法は、あるデータフロー又は実施態様に限定されず、継続的なデータ処理が必要とされる場合はどこでも用途を見出す。実施形態は、後続の段落及び図面においてより詳細に説明される。
【0029】
図1cは、対応するグラフィカル図を示し、そこで、入力値は、式130に従って、それらのそれぞれの重みと乗算され合計される。これらの個々の入力値は、131においてi[0]・・・i[4]と示され、132として示されるそれぞれの重みと乗算され、合計されて133として示される結果が計算される。
【0030】
図2aにおいて、211として安全性処理要素SPEの実施態様と共に、アクセラレータの典型的なユースケースのためのコンピューティングシステム200の同一の実施態様210が示されている。システムは、MACアレイとして配置された多重PEを含む。システム100のように、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計が、210としてハードウェアにおいて示されている。連続するプロセッサ要素PE221、222、223が、入力i[0]、i[1]、i[2]を受信する。各PEは、重みw[0,0]、w[0,1]、w[0,2]を含み、これは、対応するPEにより被乗数として使用される。この実施例では、3つの入力が、対応する重みでそれぞれ乗算されてもよく、結果が、次の処理要素に提供される。実施形態において、1つの乗算加算演算がサイクルを定義する場合、P[0,0]の結果が、各サイクルの後で生成され、P[0,1]の結果が、第2のサイクルの後に開始する各サイクルで生成され、結果Y[j+1]は、第3のサイクルの後に利用可能となり始める。この実施例では、結果は、メモリバンク226に送信される。
【0031】
この例示的な実施形態における、図2bで詳細に説明されたSPE211の計算について、ここで説明する。第1に、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計が、以下でより詳細に説明されるように、実行される。対応する乗算は既に実行されており、且つMACの異なるPEにおいて利用可能であるため、SPEは、212において、異なるマシンサイクルに潜在的に生成されたこれらの値の加算を実行するだけでよいことに留意されたい。この実施形態において、留意されるべきなのは、これらの乗算のそれぞれの非演算子のうちの1つと同一の入力データ要素を有する、中間乗算の加算である。第2に、レジスタファイル213の内部メモリには、式240に示された重みの合計が記憶され、それは、214において入力データと乗算される。重みの合計も、メモリに記憶された追加の重み要素と共にコンパイル時に実行されてもよく、リアルタイム実行中に計算される必要はないことに留意されたい。これは、本手法における決定論を可能にし、リアルタイム性能要件を改善する利点を有する。第3に、ハードウェアの誤った機能につながる任意の故障をチェックするために、212及び214の結果の比較が、215において行われる。異なる段階のより詳細な説明が、以下で与えられる。
【0032】
図3を参照すると、これは、ハードウェア上で安全性チェックを実行するためのSPEの機能を詳述する。図面は、330において示されるように、標準の1d畳み込み演算を示し、入力データのストリーム及び重みが、潜在的にはコンピューティングシステム100上で動作中の異なるマシンサイクルにおいて、畳み込まれて出力331、332、及び333のストリームを生成する。
【0033】
図4a及び図4bは、実施形態の追加の詳細を示している。図4aに示されるように、例えばコンピューティングシステム200にSPE411を追加することによって、これらの演算を実行し起こり得る故障を検出するために使用されるハードウェア上で安全性チェックを実行する可能性がもたらされる。第1に、異なるマシンサイクルにおける異なるPEにおいて利用可能な、中間乗算結果335、336、及び337の合計が、412において実行される。図示されるように、同一の入力データ要素は、ここでxi_iによって示される、行列の連続スライス又は積和演算サイクル毎に異なる相対位置を有する。結果となる部分合計は、
s1=Σ_i(xi_i*w_i)
と表され得る。
ここで、iは、最大でフィルタ行列のサイズに及ぶ。入力スライスの次元Kはまた、iに従って変化し、xi_iは、[xi]のi番目の入力データ要素(入力行列のi番目のスライス)であり、w_iは、フィルタ行列からの対応する重みであり、s1は、対応する合計であることに留意されたい。
【0034】
第2に、この例示的実施形態のSPEは、以下の乗算を実行する必要がある。
s2=xi_i*W
ここで、xi_iは、入力行列からの対応データを示し、Wは、Σw_iであり、ローカルメモリに記憶された(実施形態において、典型的にはコンパイル時の間にオフラインで計算された)重みの合計である。この演算の表現及びグラフィック表現は、図4bとして示されている。440による重みの合計は、レジスタファイル413にローカルに記憶される。図4bの441に示される乗算は、414において実行される。
【0035】
この例示的実施形態の第3のステップにおいて、s1及びs2の比較が415において実行されて、計算が正しく実行されたかどうかが検証される。335、336、及び337の合計結果は、441の結果に等しいはずである。2つの値に不整合がある場合、これは、ハードウェア故障を示すととられ得る。不整合の評価は、数字の単純比較であってもよく、又は実行されている演算に応じた値の比較であってもよい。
【0036】
この実施例では、MACアレイの特定の構成に応じて、K個のPEの演算又はPEによって実行されるK個の演算を検証するためには、SPEのK個の演算が必要とされることに留意されたい。
【0037】
図5を参照すると、値の比較が、ステップj=1~3にわたって示されている。図面において、SPE511は、PEの523、522、及び521のそれぞれから、合計するための中間結果335、336、及び337を受信する。したがって、その比較演算415においてSPE511は、単一点ハードウェア故障に起因して引き起こされる、計算の任意のエラーを検出することが可能であるはずである。
【0038】
SPE511自体は、正しい演算を検証するために必要な安全性チェック及び計算を実行するために使用される、別個の特化されたPEであってもなくてもよい。発明の概念は、専用接続及びメモリを有する別個のSPEがあるシステムにおいて想定され得る。同様に、発明の概念は、PEのプールを有するシステムにおいて想定されてもよく、PEの大半が、MACアレイの進行中の計算に使用され、その少なくとも1つが、他のPEの演算をチェックするためのSPEとして使用される。組み合わせも可能であり、その場合、多重PEが利用可能であり、且つSPE演算のための特化されたデータ接続があるか、又はグローバルデータバスが移送に使用され、且つPEの専用アレイだけでなく、チェック演算を実行するための別個のSPEが存在する。同様に、結果の比較がSPEにおいて生じてもよく、又は別個のプロセッサにおいて生じてもよい。実施形態では、結果の比較は、中央プロセッサ又はシステム制御プロセッサにおいて発生する。
【0039】
SPEは、また、ソフトウェアで実施されるブロックとして想定されてもよく、又は、例えばコンパイル時に、推論若しくはAIモデルに統合されたブロックとしても想定されてもよい。
【0040】
ここに記載された例示的実施形態では、3×3の畳み込みでは、SPEが実行する9の乗算演算がある。加えて、比較計算について、1の乗算及び9の加算、並びに2つの結果を比較する比較ステップがある。畳み込みのサイズが増加するにつれて、SPEのための演算数も増加するが、より長時間にわたって、又はより多くの計算サイクルにわたって、追加の演算が実行され得る。例えば、5×5の畳み込みの場合、追加の25の積和演算、1の乗算及び25の加算、並びに故障を識別するための1の結果比較を意味する。そのようなシステムの例示的実施態様が、図6に示されている。図6aにおいて、SPE611を含むPE610のアレイに加えて、メモリバンク625及び626を含む、典型的なコンピューティングシステム600が示されている。入力データ605、重み606、及び層の結果として生じる出力607を有する単一畳み込み層が、図6bに示されている。所与のシナリオにおいて、605が解像度1024×1024×2の高解像度特徴マップ及び3×3の重みカーネルサイズであると仮定すると、この実施例は、合計で2×3×3×1=18のパラメータ又は重みを有する次元数1024×1024×1の出力607を生成する(例えば、これは、各画素を2つのクラス「物体」及び「背景」に分類するセマンティックセグメンテーションモデルの最後の層を表し得る)。一実施態様では、畳み込み層は、25のPEの所与のアレイ610においてマシンサイクル毎に18のMAC演算を実行し得る。610内の全てのPEに接続された単一の追加SPE611は、図2図5に詳述されたように、必要な安全性チェックの実行に成功することが可能であるはずである。別の実施態様では、610として示される種類の多重ブロックは、コンピューティングシステム全体において1つ又は複数のSPEを必要とし得る。他の実施態様は、コンピューティングシステムにおいてSPEの異なる組み合わせを使用し得る。検証又はチェック演算の速度と、使用されるSPEの数との間にはトレードオフが存在し得る。
【0041】
図7は、異なる種類の計算に対する安全性チェックを実施するために適用される発明の概念を示す。実施形態におけるSPEは、上述したものと同一の3つのステップの演算を実行する。しかしながら、異なる演算に対する安全性チェックを実施するための可能な変形及び柔軟性が示されている。そのような変形の1つが図7aに示されており、畳み込み層は、式730により出力737として複数の特徴を生成する多重フィルタカーネル735を有する。重みの列は、736として示される。図7bとして示されるそのようなシナリオでは、結果741が、411に記載されたSPEの動作と類似の要素736の合計と比較され得るように、SPEで使用される重みの合計が、440の代わりに740として定義され得る。この手法又はその組み合わせは、同一の入力要素が、335、336、及び337に示されるユースケースとは異なりカーネルの各重み要素と乗算されない、特定の種類の畳み込みにより適し得る。例えば、1より大きなストライドを用いた畳み込み、ポイントワイズ畳み込み、膨張及びアトラス畳み込み(dilated and atrous convolution)が、発明の概念を使用してチェックされ得る演算のいくつかの種類である。
【0042】
計算の別の変形、行列乗算の典型が図7c及び図7dに示され、結果751を要素752の合計と比較し得るように、類似のSPE及びその3つのステップを有するが、750に示される重みの合計についての修正された機能を有する設計に、安全性チェックの発明の概念を統合し得る。
【0043】
図8を参照すると、図8は、前の図面に示される、重みの合計(240、440)の実施態様についての詳細を与える。重みの合計は、追加パラメータを生成するコンパイル時間それ自体において計算されてもよく、それにより、実行中に実行されるべき重みの合計を必要としない。ネットワークの既存の重みの合計を実行することによって取得されるこれらの追加パラメータの数は、ユースケースに応じて様々な組み合わせで実施され得る。図8aに示されるように、入力活性値801について、重みカーネル810、811、812のセットが存在する場合に、畳み込み後に生成された出力は、結果として3つのチャネル820、821、及び822をそれぞれ生じる。このような畳み込み層の場合、図8bに示されるように、重みの合計840は、841に示された3つの別個のパラメータのいずれかであってもよく、又は単一パラメータ842、全ての重みカーネル810、811、及び812の合計であってもよく、又は任意の他の異なる重みの組み合わせであってもよい。実施態様の選択は、所与のユースケースに依存し、その場合に、841は842と比較すると、追加パラメータの数がより多いことに起因してより多くのメモリを必要とするが、妥当性チェックを実行するためのレイテンシはより小さくなる。
【0044】
実施形態では、データのシストリック移動と組み合わされた反復演算が、1つ又は複数の処理要素を含む別個のSPEを使用して、演算のサブセットを実行し、そのようにPEアレイの演算を検証する可能性を作り出す。実際には、前述の実施例に示されるように、実施形態は、ストライド畳み込み及びポイントワイズ畳み込みに加えて、デプスワイズ若しくはグループ畳み込み、又は膨張及びアトラス畳み込みなどのほぼ全ての形態の畳み込みに対処し得る。
【0045】
実施態様及び実施形態では、推論アクセラレータエンジン又はMACアレイは、畳み込みニューラルネットワークの1つ又は複数の層を実施する。例えば、実施態様では、推論アクセラレータエンジンは、1つ若しくは複数の畳み込み層、及び/又は1つ若しくは複数の完全接続された層を実施する。別の実施態様では、推論アクセラレータエンジンは、回帰型ニューラルネットワークの1つ又は複数の層を実施する。概して、「推論エンジン」又は「推論アクセラレータエンジン」は、ハードウェア及び/又はソフトウェアとして定義され、それは例えば、画像データを受信し、画像データについての1つ又は複数のラベル確率を生成する。場合によっては、「推論エンジン」又は「推論アクセラレータエンジン」は、「分類エンジン」又は「分類器」と呼ばれる。別の実施態様では、推論アクセラレータエンジンは、画像又はビデオフレームを分析して、フレームについての1つ又は複数のラベル確率を生成し得る。潜在的なユースケースには、少なくともアイトラッキング、物体認識、ポイントクラウド推測、レイトレーシング、ライトフィールドモデリング、深度トラッキングなどが含まれる。
【0046】
推論アクセラレータエンジンは、実施態様に従って変化する、様々な異なる安全重視アプリケーションのいずれかによって使用され得る。例えば、一実施態様では、推論アクセラレータエンジンは、自動車用途において使用され、その場合に、推論アクセラレータエンジンは自動運転自動車(即ち、自律自動車)、ドライバ支援自動車、又は高度ドライバ支援システムの1つ又は複数の機能を制御し得る。他の実施態様では、推論アクセラレータエンジンは、他の種類のユースケースに対して訓練及びカスタマイズされ得る。実施態様に応じて、推論アクセラレータエンジンは、入力画像又はビデオフレームにおいて検出された様々な物体についての分類結果の確率を生成し得る。
【0047】
メモリサブシステム125、126は、任意の数及び種類のメモリデバイスを含んでもよく、2つのメモリサブシステム125及び126は、単一メモリとして、又は任意の他の構成で結合されてもよい。例えば、メモリサブシステム内のメモリの種類には、高帯域幅メモリ(HBM)、不揮発性メモリ(NVM)、動的ランダムアクセスメモリ(DRAM)、静的ランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)などが含まれ得る。メモリサブシステム125及び126は、推論アクセラレータエンジンによって、及び他のプロセッサによってアクセス可能であってもよい。I/Oインターフェースには、任意の種類のデータ移送バス又はチャネル(例えば、周辺コンポーネント相互接続(PCI)バス、PCI拡張(PCI-X)、PCIE(PCIエクスプレス)バス、ギガビットイーサネット(GBE)バス、ユニバーサルシリアルバス(USB))が含まれ得る。
【0048】
いくつかの実施態様では、コンピューティングシステム100、200、500、600の全体、又はそれらの1つ若しくは複数の部分が、ロボットシステム、自動運転自動車、自律ドローン、外科用具、又は他の種類の機械デバイス若しくはシステムの中に統合される。実際には、発明の概念は、ハードウェアの安全性、セキュリティ、及び/又は信頼性が必要とされ、又は所望される任意のシステムにおける用途を見出す。コンピューティングシステム100のコンポーネントの数は、実施態様毎に変化することに留意されたい。例えば、他の実施態様では、図面に示された数よりも多くの、又は少ない、それぞれのコンポーネントが存在する。他の実施態様において、コンピューティングシステム100が、図1及び他の図面に示されていない他のコンポーネントを含むことにも留意されたい。加えて、他の実施態様では、コンピューティングシステム100は、図面に示された以外の方法で構築される。
図1
図2
図3
図4a
図4b
図5
図6
図7a
図7b
図7c
図7d
図8a
図8b
【手続補正書】
【提出日】2024-02-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
システム(100、600)であって、多重処理要素(PE、122)を含む積和演算(MAC)アレイ(110、610)と、安全性処理エンジン(SPE、211、411)と、を備え、前記MACアレイが、多重PEにおいて並列で行列乗算演算を実行して前記MACアレイ上で畳み込みを演算し、前記SPE上で前記行列乗算演算のサブセットを実行し、前記PE及び前記SPE上で実行された演算の結果を比較し、前記結果の不整合に基づいて故障条件を判定するように構成され、
前記SPEが、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計を計算する第1の演算、重みの合計に対応する値との乗算の第2の演算、及び2つの前記第1の演算の結果と多重PE上で実行された等価な演算の結果との比較の第3の演算を実行する、
システム。
【請求項2】
前記行列乗算演算の前記サブセットの前記結果の前記比較が、前記積和演算アレイの多重処理要素の前記演算を検証することを可能にする、請求項1に記載のシステム。
【請求項3】
前記行列乗算演算の前記サブセットの前記結果の前記比較が、前記積和演算アレイの全ての処理要素の前記演算を検証することを可能にする、請求項1又は2に記載のシステム。
【請求項4】
前記SPEが、入力ベクトルの入力値を順次受信し、各入力値と重みとを乗算する、請求項1又は2に記載のシステム。
【請求項5】
前記SPEが、所与の入力ベクトルの値のサブセットを含む、ストライド適用した入力値を順次受信する、請求項4に記載のシステム。
【請求項6】
前記MACアレイ及び前記SPEが、推論アクセラレータの検証を実行するための追加又は共有ハードウェアを含む、安全重視推論アプリケーションを実施する推論アクセラレータシステムの一部であり、検証ハードウェアが前記推論アクセラレータより低い処理帯域幅を有するため、比較のための前記結果を生成する計算毎に、より多くのマシンサイクルが必要である、請求項1又は2に記載のシステム。
【請求項7】
畳み込み層(730)が、yf,j+1=Σij+n*wf,n、n=[0,k]と定義され、kが、自然数である、請求項1又は2に記載のシステム。
【請求項8】
前記SPEで使用される前記重みの合計(740)が、W=Σwf,nと定義される、請求項7に記載のシステム。
【請求項9】
前記重みの合計の計算が、コンパイル時に実行される、請求項1又は2に記載のシステム。
【請求項10】
前記重みの合計が、畳み込み層の完全な重みカーネル(842)、前記畳み込み層の完全な重みカーネル(842)のサブセット(841)、又は任意の他の組み合わせである、請求項1又は2に記載のシステム。
【請求項11】
処理要素(PE、122)のアレイ上で積和演算のセットを含む行列演算計算を継続的に実行することと、検証演算として前記行列演算計算のサブセットを別個に且つ継続的に実行することと、結果を比較することであって、前記結果の比較が、前記計算が正しく実行されたかどうかを検証することを可能にする、前記比較することと、
を含み、
前記検証演算が、同一の入力データ要素とフィルタ行列の異なる重みとの中間乗算の合計を実行する第1の演算と、重みの合計に対応する値との乗算を実行する第2の演算と、前記結果の比較を実行する第3の演算と、を含む、
方法。
【請求項12】
前記行列演算計算のサブセットを別個に且つ継続的に実行することが、別個の安全性処理要素(SPE、211、411)において実行される、請求項11に記載の方法。
【国際調査報告】