JP2022541899A - 畳み込みニューラルネットワークを実装するための構成可能なプロセッサ - Google Patents
畳み込みニューラルネットワークを実装するための構成可能なプロセッサ Download PDFInfo
- Publication number
- JP2022541899A JP2022541899A JP2022502865A JP2022502865A JP2022541899A JP 2022541899 A JP2022541899 A JP 2022541899A JP 2022502865 A JP2022502865 A JP 2022502865A JP 2022502865 A JP2022502865 A JP 2022502865A JP 2022541899 A JP2022541899 A JP 2022541899A
- Authority
- JP
- Japan
- Prior art keywords
- cnn
- processor
- configurable
- data
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013527 convolutional neural network Methods 0.000 title claims description 380
- 230000015654 memory Effects 0.000 claims abstract description 255
- 239000000872 buffer Substances 0.000 claims abstract description 176
- 230000006870 function Effects 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims description 75
- 238000012549 training Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 53
- 230000008569 process Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 25
- 238000013507 mapping Methods 0.000 description 21
- 239000000306 component Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 16
- 230000009466 transformation Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 13
- 230000004913 activation Effects 0.000 description 9
- 238000001994 activation Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000010606 normalization Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 101150060820 Pfas gene Proteins 0.000 description 7
- 239000004744 fabric Substances 0.000 description 7
- 229920011301 perfluoro alkoxyl alkane Polymers 0.000 description 7
- 230000009255 platelet function activity Effects 0.000 description 7
- 238000000844 transformation Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000513884 Falco rusticolus Species 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000414697 Tegra Species 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Microcomputers (AREA)
Abstract
Description
本出願は、2020年5月15日に出願された、代理人整理番号SINHA-1003P2を有する「Direct Conversion of Raw Image Sensor Input(Bayer-Pattem)to Image/Video Analytics using a Single CNN」という名称の米国仮出願第63/025,580号、2019年11月27日に出願された、代理人整理番号SINHA-1003P1を有する「Direct Conversion of Raw Image Sensor Input(Bayer-Pattern)to Image/Video Analytics using a Single CNN」という名称の米国仮出願第62/941,646号、並びに、2019年7月19日に出願された、代理人整理番号SINHA-1002P2を有する「Programmable Functional Array(PFA)Processor for CNNs」という名称の米国仮出願第62/876,219号の優先権と利益を主張するものであり、それぞれの内容全体は引用により本明細書に援用されるものとする。
GroqおよびGyrfalconについて上述したアーキテクチャの欠点の一つは、これらのアーキテクチャが単に従来のロード/ストアアーキテクチャパラダイムを提供するだけであり、CNNアーキテクチャに特化していないことである。従来のロード/ストアアーキテクチャは、意図するタスクを事前にプログラムする個別のメカニズムを有するが、操作されるデータは通常のデータパスアーキテクチャによって個別に処理される。本明細書で説明する構成可能なCNNプロセッサアーキテクチャでは、プログラム制御シーケンスの主要部分をデータフロー自体に注入し、非常に効率的なプロセッサとすると同時に、CNNの処理に高度に特化したものとなっている。
図1は、本開示のいくつかの態様に係る、アクティブメモリバッファ102および複数のコア計算要素(104-1、104-2、104-3、104-4、まとめて104と称する)を含む、畳み込みニューラルネットワーク(CNN)を実装するための例示的な構成可能なプロセッサ100を示すブロック図である。コア計算要素(例えば、コア計算回路要素)104の各々は、予め選択されたデータフローグラフに従ってCNN関数を実行するように構成され得る。予め選択されたデータフローグラフは、プロセッサ100に実装される予め選択されたCNNから導出することができる。CNN関数は、畳み込み関数、ダウンサンプリング(例えば、プーリング)関数、アップサンプリング関数、ネイティブ1×1畳み込み関数、ネイティブN×N畳み込み(例えば、本明細書でさらに詳細に説明するように、3×3)関数、ルックアップテーブル(LUT)値補間による設定可能な活性化関数、統合関数、ローカル応答正規化関数、およびローカルバッチ正規化関数のうちの1または複数を含むことが可能である。コア計算要素の各々は、LSTMセルおよび/または浅い深さのエラスティックFIFOによってバッファリングされた入力と出力を含むことができる。コア計算要素104に関する更なる詳細は後述する。
図4は、本開示のいくつかの態様に係る、4つのPFU402を含むプログラマブル機能アレイ(PFA)として具現化された構成可能なCNNプロセッサ400を示すブロック図である。PFAとして具現化されたこの構成可能なCNNプロセッサ400は、前述したPFUの階層的な集合体として見ることができる。同様に、複数のPFAは、全体的な構成可能なCNNプロセッサまたはPFAプロセッサを形成するために並列に段階化され得る。PFU間の相互接続性は、相互接続モジュール404によって制御することができ、これは、CNNデータフローグラフによって記述されるようにコンパイル時にプログラムされ得る。
図6は、本開示のいくつかの態様に係る構成可能なCNNプロセッサ内で使用するための例示的なアクティブメモリバッファ600を示すブロック図である。主なIOは、書き込みポート602および読み取りポート604である。他のIOインターフェースは、インテリジェントメモリバッファ600の構成を担うレジスタモジュールインターフェース606である。各読み取り/書き込みポート(604、602)は、小さな先入れ先出しデータバッファ(FIFO)(608、610)によってサポートされ、メモリ操作を効果的かつ柔軟に行うことができる。同様に、各コア計算要素は、入力および出力にFIFOを含むことができ、それにより、メモリおよび様々なコア計算要素間のデータフロー全体が非常に柔軟になる。
(1)実装されるCNNアーキテクチャを入力する。
(2)CNNの各畳み込み演算をコア計算要素に割り当てる。
(3)最悪条件に割り当てられたそれぞれのコア計算要素による、各畳み込みモジュールの正味の計算時間を含む時間を評価する。
(4)1秒毎に特定のフレームを処理するための要件に基づいて、各コア計算モジュールに計算時間バジェットを割り当てる。
(5)時間バジェット内で十分に計算可能な各コア計算要素について、単一のコア計算モジュールで2つのCNN演算の計算が可能であるか否かを評価する。2つのCNNの計算を単一のコア計算要素に組み合わせる際に、必要な全体係数を考慮に入れることができる。
(6)利用可能な時間バジェットを超えている各コア計算要素について、各コア計算要素が必要な出力ボリュームの半分のみを計算するように、2つのコア計算要素に畳み込みを分割する。各コア計算要素がその時間バジェット内で個別に割り当てられたタスクを計算できるようになるまで、このステップを繰り返す。
(7)3×3より大きな畳み込み演算の場合、ステップ(2)で、CNN演算を複数のコア計算要素に割り当てることができる。この場合、ステップ(3)~(6)において、CNN演算を示すコア計算要素のグループが考慮される。
(8)入力データをインテリジェントメモリバッファのメモリにロードし、出力をインテリジェントメモリバッファから読み出す。インテリジェントメモリバッファのメモリ空間全体は、プロセッサの外部との通信を担うIOデバイスからアクセス可能である。
図12は、本開示のいくつかの態様に係る例示的なCNN1200を示す図である。CNN1200は、一般的なCNNである。この具体的な例は、畳み込み、ReLu、プーリング、全結合層およびソフトマックス層などの様々な計算ノードとともに、データおよび計算のフローを示している。計算ノードとそれに関連するメモリ要件は、CNNのデータフローグラフの対象となる。
図15は、本開示のいくつかの態様に係る、CNNの一部をコア計算要素にマッピングするための3つの例示的な変換を示すブロック図である。図15は、本明細書に記載の構成可能なCNNプロセッサへのCNNデータフローグラフのマッピング中に使用され得る3つの異なる種類の変換(例えば、ケース1、ケース2、ケース3)を示している。図15では、コア計算要素が、CNNの必要な計算をすべて計算すると仮定され、正しいデータがそれに渡され、適切な出力データがそこから正しく収集されると仮定されている。
(1)プロセッサ実装のテクノロジーノードを考えると、プロセッサは、計算される入力データレートよりも桁違いに速い速度で動作し得る。一例として、リアルタイムモーションは、400×400×3サイズの画像が毎秒約14.5メガピクセルのデータレートを有する場合に、毎秒30フレームのフレームレートを有する可能性があり、1GHzで動作する本明細書に記載の構成可能なCNNプロセッサと比較すると、速度におけるオーダーの違いは約70倍である(例えば、構成可能なCNNプロセッサは、リアルタイムモーションデータソースの70倍のデータレートで動作している)。計算エンジンと目標データ処理レートとの間のこのデータレートの違いは、先に述べた畳み込み変換の助けを借りて、CNNのすべてのステージに容易に拡張することができる。その場合、すべてのステージは、それぞれの目標データ処理レートと、インテリジェントメモリバッファおよびコア計算要素などのハードウェア計算要素の処理レートに行き着くことになる。その結果、CNNの各ステージにおいて、メモリおよびコア計算要素は、目標処理レートより遥かに速い速度で動作するように構成することができる。
(2)上記仮定の下で、各インテリジェントメモリバッファとコア計算要素の動作速度が目標処理レートより速い場合、インテリジェントメモリバッファは容易にマルチタスクを実行できると結論付けるのが妥当であろう。インテリジェントメモリバッファの場合、データが格納されている内部メモリは、複数の読み取りおよび書き込みポートを介して、データの読み取りと書き込みの要件を有する複数のコア計算要素を使用可能にするために、容易にマルチタスクを実行することができる。1つの例は、インテリジェントメモリバッファのコアメモリがデュアルポートの連続メモリで、インテリジェントメモリバッファが8つの読み取りポートと8つの書き込みポートを同時にサポートする場合である。換言すれば、この例では、平均的かつ最大スループット能力において、インテリジェントフレームバッファは、8クロック毎に読み取りポートと書き込みポートの各々を使用可能にすることができる。
(3)コア計算要素の各々は、割り当てられたタスクを計算するために8クロックを超えるクロックを使用するように構成することができる。一態様では、並行して計算するフィルタがいくつかある場合に、これが桁違いに増加する可能性がある。これは、コア計算要素にデータを供給する際にボトルネックとなることなく、異なるコア計算要素間でマルチタスクを実行することができるため、インテリジェントメモリバッファに最適である。一態様では、この時間多重化の能力により、インテリジェントメモリバッファは、低消費電力実装の制約下で動作しながら、複数の読み取りおよび書き込みポートを提供し、複数のコア計算要素間でデータの一貫性を維持することができる。この戦略により、畳み込み用のデータを最適に読み出すことができ、キャッシュベースのメモリ階層システムの場合に必要とされるような、余分な読み取り操作をすべて回避することができる。
(4)最新のテクノロジ実装では、読み取りや書き込みなどのメモリ操作は、加算、減算、乗算などの単純な算術演算よりも遥かに多くの電力を消費する可能性がある。したがって、ここで活用される1つの有用な戦略は、メモリへの読み取り/書き込み操作を最小化し、クロックあたりの計算の総数を最大化することである。一態様では、インテリジェントメモリバッファは、各コア計算要素にデータを供給する役割を果たし、その後、コア計算要素が数クロックを使用してデータを使い、意味のある結果をもたらす。すべてのメモリ読み取り/書き込み操作をインテリジェントメモリバッファ内にカプセル化し、最適な読み取りおよび書き込み操作を実行することにより、構成可能なCNNプロセッサはメモリの読み取り/書き込みの電力消費を最小化することができる。畳み込み演算では、データが畳み込みのサイズを反映したチャンクで処理される。例えば、一態様では、CNNステージで128個の並列フィルタを用いた3×3×16の畳み込みは、コア計算要素が計算するために3×3×16のデータチャンクを必要とし、128個の並列フィルタに対応する128のデータポイント(例えば、各並列フィルタに対して1つ)を計算した後、次のセットの128の出力ポイントを生成するために3×3×16データの次のチャンクを使用する必要が生じるであろう。畳み込みが1×1の畳み込みである場合、各セットの3×3×16のデータポイントは一意である。しかしながら、この場合、3×3フィルタであるため、後続の3×3×16のデータブロック間でデータポイントが重複する結果となる。図7は、サポートされる様々なモードを示している。これにより、データ読み取り動作の繰り返しを防止することができる。しかしながら、この例では、2×3×16の重複があり、1×3×16の新しいデータポイント(例えば、図7のモード3)のみをインテリジェントメモリバッファから読み出す必要がある。しかしながら、フィルタのサイズが3×3ではなく1×1である場合、この例は図7のモード1と同様である。これにより、最適なメモリ読み取り動作が確保され、最適な読み取り電力を保証することができる。
(5)一態様では、任意の時点で畳み込みを実行するために、フィルタの次元と同じ数の行データのみが、入力フレームに対して計算を開始するために必要とされる可能性がある。例えば、3×3の畳み込みは、任意の時点で深さデータポイントとともに3ラインを格納することのみを必要とし、それは次の入力行データによって上書きされ、さらに次の入力行データによって上書きされる。インテリジェントメモリバッファの連続メモリにより、任意の時点で保存する必要があるラインバッファの総数の使用を最適化することができ、同時に、読み取りおよび書き込みポートを通じて、多数のコア計算要素間で共有リソースを提供することができる。同時に、これにより、フレームデータ全体をメモリモジュール内に格納するオプションも提供される。これは、デバッグに使用したり、後で使用されるフレーム全体の中間ストレージを含むCNNネットワークに使用したりすることができる。これにより、任意のCNNステージで、勿論メモリ全体の範囲内で、必要なデータの次元に適応するように、インテリジェントメモリバッファに柔軟性が提供される。例えば、コンパイル時にコンパイラは、インテリジェントメモリバッファで利用可能な総メモリのサイズに基づいて、単一のインテリジェントメモリバッファでサポートできるCNN畳み込みの数を決定することができる。この決定は、必要なデータ処理レートにも影響される。
(6)一態様では、インテリジェントメモリバッファを構成可能なCNNプロセッサのコアコンポーネントと見なすことができる。それは、コア計算要素にデータを提供する役割を果たすとともに、次の畳み込みモジュールのためにコア計算要素からメモリに計算結果を書き戻す役割も果たす。
(7)一態様では、インテリジェントメモリバッファの読み取りポート毎に複数のコア計算要素があり、コア計算要素の各々が、インテリジェントメモリバッファの書き込みポートのセットにのみアクセスすることができる。インテリジェントメモリバッファとコア計算要素との間の接続は、実装されるCNNのデータフローグラフに基づいて決定される。これは、コンパイル時に決定することができ、それにより、所与のCNNの実行時にモジュール間のこの接続を動的に変更する必要がなくなる。この固定された接続により、電力消費(そうでなければ接続を常に切り替えることと、命令セットアーキテクチャを使用する従来のプロセッサに典型的である、実行時に接続を変更する命令を格納する機構によって消費されるであろう電力消費)が著しく減少する。
図25は、本開示のいくつかの態様に係る、MIPIアプリケーション2501における構成可能なCNNプロセッサの第1のユースケース2500を示すブロック図である。MIPIまたはモバイル・インダストリ・プロセッサ・インターフェイスは、モバイルエコシステム、特にスマートフォンのための技術仕様であるが、他のモバイルインダストリも含まれる。カメラシリアルインターフェース(CSI)は、モバイル・インダストリ・プロセッサ・インターフェイス(MIPI)アライアンスの仕様である。これは、カメラとホストプロセッサの間のインターフェイスを定義している。MIPIの態様は、図25の様々なコンポーネントに組み込まれている。
一態様において、本明細書に記載の構成可能なCNNプロセッサは、様々な利点を提供することができる。例えば、アクティブメモリバッファとコア計算要素との間のインターフェースは、非常に弾力的であり、FIFOによって制御され得る。これにより、それらモジュールの各々は、その動作に影響を与えることなく、互いに非同期で実行することができる。それらFIFOの各々は、浅い深さであり、典型的には8~16ワードの深さのオーダーであり得る。その結果、各コア計算要素は、入出力FIFOとパイプラインレジスタ以外の大きなローカルメモリを使用することがなくなる。これは、コア計算要素とアクティブメモリバッファとの間のデータフローが、コンパイル時に静的に定義できるためである。プロセッササブシステム内の様々なコンポーネントを非同期に相互作用させる能力は、チップ設計内のタイミングクロージャなどの問題を排除するのに役立ち、タイミングを近付けるためにチップトップレベルで高コストな電力消費型クロックバッファ(例えば、至る所にある)を必要としないことによって、全体の電力を節約するのに役立つ。
Claims (37)
- 畳み込みニューラルネットワーク(CNN)の実装専用の構成可能なプロセッサであって、
複数のコア計算回路要素であって、各々が、予め選択されたデータフローグラフに従ってCNN関数を実行するように構成される、複数のコア計算回路要素と、
アクティブメモリバッファと、
前記アクティブメモリバッファと前記複数のコア計算回路要素との間の複数の接続であって、各々が、前記予め選択されたデータフローグラフに従って確立される、複数の接続と、
前記複数のコア計算回路要素間の複数の接続であって、各々が、前記予め選択されたデータフローグラフに従って確立される、複数の接続とを備え、
前記アクティブメモリバッファが、前記予め選択されたデータフローグラフに従って、前記アクティブメモリバッファを介して前記複数のコア計算回路要素間でデータを移動させるように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記予め選択されたデータフローグラフが、予め選択されたCNNに基づいていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素の各々が、命令セットを使用せずに、前記予め選択されたデータフローグラフに従ってCNN関数を実行するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素のうちの少なくとも2つが、互いに非同期で動作するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記アクティブメモリバッファおよび前記複数のコア計算回路要素の各々が、互いに非同期で動作するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素の各々が、CNN関数を実行する専用のものであることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素の各々が、前記構成可能なプロセッサの実行時間の前に、CNN関数を実行するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素の各々が、CNN関数のレイヤを計算するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路素子の各々が、CNN全体を計算するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路素子の各々が、推論とトレーニングの両方のためにCNN関数を実行するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記複数のコア計算回路要素の各々が、CNN関数の実行に使用される重みを格納するように構成されたメモリを備えることを特徴とする構成可能なプロセッサ。 - 請求項1に記載の構成可能なプロセッサにおいて、
前記アクティブメモリバッファと前記複数のコア計算回路要素との間の複数の接続が、コンパイル時に確立されて、当該構成可能なプロセッサの実行時に固定され、
前記複数のコア計算回路要素間の複数の接続が、前記コンパイル時に確立されて、前記実行時に固定されることを特徴とする構成可能なプロセッサ。 - プロセッサアレイであって、
請求項1に記載の複数の構成可能なプロセッサと、
相互接続回路と、
前記複数の構成可能なプロセッサおよび/または前記相互接続回路間の複数の接続であって、各々が、前記予め選択されたデータフローグラフに従って確立される、複数の接続とを備えることを特徴とするプロセッサアレイ。 - システムであって、
モバイル・インダストリ・プロセッサ・インタフェース(MIPI)ソースと、
MIPIシンクと、
前記MIPIソースと前記MIPIシンクとの間に結合されたMIPIバスと、
請求項1に記載の構成可能なプロセッサであって、前記MIPIバス上のすべてのデータが当該構成可能なプロセッサを通過するように、前記MIPIバスに沿って直列に配置される構成可能なプロセッサとを備えることを特徴とするシステム。 - 請求項14に記載のシステムにおいて、
SPI、I2Cインターフェース、またはUARTインターフェースのうちの少なくとも1つを含む非MIPI出力インターフェースをさらに備え、
前記構成可能なプロセッサが、前記非MIPI出力インターフェースまたは前記MIPIバスのいずれかを使用して、外部デバイスに情報を送信するように構成されていることを特徴とするシステム。 - システムであって、
センサデータを生成するように構成されたセンサと、
請求項1に記載の構成可能なプロセッサであって、前記センサに直接結合され、前記センサデータに基づいて処理されたデータを生成するように構成された構成可能なプロセッサと、
前記構成可能なプロセッサに直接結合され、前記処理されたデータの少なくとも一部を送信するように構成された無線送信機とを備えることを特徴とするシステム。 - 請求項16に記載のシステムにおいて、
前記センサデータが、画像データを含み、
前記処理されたデータが、前記画像データに基づいて生成された分類データを含み、
前記無線送信機が、前記分類データを送信するように構成されていることを特徴とするシステム。 - 畳み込みニューラルネットワーク(CNN)の実装専用の構成可能なプロセッサを構成する方法であって、
予め選択されたデータフローグラフを受信するステップと、
複数のコア計算回路要素の各々を、前記予め選択されたデータフローグラフに従ってCNN関数を実行するようにプログラミングするステップと、
前記予め選択されたデータフローグラフに従って、アクティブメモリバッファをプログラミングするステップと、
前記予め選択されたデータフローグラフに従って、前記アクティブメモリバッファと前記複数のコア計算回路要素との間の複数の接続をプログラミングするステップと、
前記予め選択されたデータフローグラフに従って、前記複数のコア計算回路要素間の複数の接続をプログラミングするステップと、
前記予め選択されたデータフローグラフに従って、前記メモリバッファを介して前記複数のコア計算回路要素間でデータを移動させるように、前記アクティブメモリバッファをプログラミングするステップとを備えることを特徴とする方法。 - 請求項18に記載の方法において、
プログラミング動作の各々が、前記構成可能なプロセッサの実行時間の前に実行されることを特徴とする方法。 - 請求項18に記載の方法において、
前記複数のコア計算回路要素を動作させて、命令セットを使用せずに、CNN関数を実行するステップと、
命令セットを使用せずに、前記アクティブメモリバッファを動作させるステップとをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記予め選択されたデータフローグラフが、予め選択されたCNNに基づいていることを特徴とする方法。 - 請求項18に記載の方法において、
前記複数のコア計算回路要素のうちの少なくとも2つを互いに非同期で動作させるステップをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記アクティブメモリバッファおよび前記複数のコア計算回路要素の各々を互いに非同期で動作させるステップをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記複数のコア計算回路要素の各々が、CNN関数を実行する専用のものであることを特徴とする方法。 - 請求項18に記載の方法において、
前記構成可能なプロセッサの実行時に、前記複数のコア計算回路要素のそれぞれの1つにおいて、CNN関数を実行するステップをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記構成可能なプロセッサの実行時に、前記複数のコア計算回路要素のそれぞれの1つにおいて、CNN関数のレイヤを計算するステップをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記構成可能なプロセッサの実行時に、前記複数のコア計算回路要素のうちの少なくとも1つにおいてCNN全体を計算するステップをさらに含むことを特徴とする方法。 - 請求項18に記載の方法において、
前記アクティブメモリバッファと前記複数のコア計算回路要素との間の複数の接続が、コンパイル時にプログラムされ、前記構成可能なプロセッサの実行時に固定され、
前記複数のコア計算回路要素間の複数の接続が、前記コンパイル時にプログラムされ、前記実行時に固定されることを特徴とする方法。 - 請求項18に記載の方法において、
前記複数のコア計算回路要素の各々が、推論とトレーニングの両方のためにCNN関数を実行するように構成されていることを特徴とする方法。 - 請求項18に記載の方法において、
前記複数のコア計算回路要素の各々が、CNN関数の実行に使用される重みを格納するように構成されたメモリを備えることを特徴とする方法。 - 畳み込みニューラルネットワーク(CNN)の実装専用の構成可能なプロセッサであって、
予め選択されたデータフローグラフに従ってCNN関数を実行するための複数の手段と、
データを格納するための手段と、
前記予め選択されたデータフローグラフに従って、前記データを格納するための手段と前記CNN関数を実行するための複数の手段との間の接続を確立するための手段と、
前記予め選択されたデータフローグラフに従って、前記CNN関数を実行するための複数の手段間の接続を確立するための手段とを備え、
前記データを格納するための手段が、前記予め選択されたデータフローグラフに従って、前記データを格納するための手段を介して、前記CNN関数を実行するための複数の手段間でデータを移動させるための手段を備えることを特徴とする構成可能なプロセッサ。 - 畳み込みニューラルネットワーク(CNN)の実装専用の構成可能なプロセッサであって、
モバイル・インダストリ・プロセッサ・インタフェース(MIPI)ソースに直接結合されるように構成されたMIPI入力と、
アプリケーションプロセッサに直接結合されるように構成されたMIPI出力と、
前記MIPI入力と前記MIPI出力との間に結合されたMIPIバスと、
前記MIPIバス上のすべてのデータが前記構成可能なプロセッサを通過するように、前記MIPIバスに沿って直列に配置された構成可能なCNNサブプロセッサであって、
前記MIPIソースから画像データを受信し、
前記画像データに基づいて処理されたデータを生成し、かつ、
前記処理されたデータを前記アプリケーションプロセッサに提供するように構成された構成可能なCNNサブプロセッサとを備えることを特徴とする構成可能なプロセッサ。 - 請求項32に記載の構成可能なプロセッサにおいて、
前記構成可能なCNNサブプロセッサが、予め選択されたCNNを用いて前記画像データに基づいて前記処理されたデータを生成するようにさらに構成されていることを特徴とする構成可能なプロセッサ。 - 請求項32に記載の構成可能なプロセッサにおいて、
前記構成可能なCNNサブプロセッサが、カスケード構成にある複数の構成可能なCNNサブプロセッサを含むことを特徴とする構成可能なプロセッサ。 - 請求項32に記載の構成可能なプロセッサにおいて、
前記構成可能なCNNサブプロセッサが、前記MIPIバスを介して前記アプリケーションプロセッサに前記処理されたデータを提供するように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項32に記載の構成可能なプロセッサにおいて、
前記構成可能なCNNサブプロセッサが、
複数のコア計算回路要素であって、各々が予め選択されたデータフローグラフに従ってCNN関数を実行するように構成された、複数のコア計算回路要素と、
アクティブメモリバッファと、
前記アクティブメモリバッファと前記複数のコア計算回路要素との間の複数の接続であって、各々が前記予め選択されたデータフローグラフに従って確立される、複数の接続と、
前記複数のコア計算回路要素間の複数の接続であって、各々が前記予め選択されたデータフローグラフに従って確立される、複数の接続とをさらに備え、
前記アクティブメモリバッファが、前記予め選択されたデータフローグラフに従って、前記アクティブメモリバッファを介して前記複数のコア計算回路要素間でデータを移動させるように構成されていることを特徴とする構成可能なプロセッサ。 - 請求項32に記載の構成可能なプロセッサにおいて、
SPI、I2CインターフェースまたはUARTインターフェースのうちの少なくとも1つを含む非MIPI出力インターフェースをさらに備え、
前記構成可能なプロセッサが、前記非MIPI出力インターフェースまたは前記MIPIバスのいずれかを使用して、前記アプリケーションプロセッサに情報を送信するように構成されていることを特徴とする構成可能なプロセッサ。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962876219P | 2019-07-19 | 2019-07-19 | |
US62/876,219 | 2019-07-19 | ||
US201962941646P | 2019-11-27 | 2019-11-27 | |
US62/941,646 | 2019-11-27 | ||
US202063025580P | 2020-05-15 | 2020-05-15 | |
US63/025,580 | 2020-05-15 | ||
PCT/IB2020/000609 WO2021014215A1 (en) | 2019-07-19 | 2020-07-20 | Configurable processor for implementing convolution neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022541899A true JP2022541899A (ja) | 2022-09-28 |
JP7569109B2 JP7569109B2 (ja) | 2024-10-17 |
Family
ID=74193514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022502865A Active JP7569109B2 (ja) | 2019-07-19 | 2020-07-20 | 畳み込みニューラルネットワークを実装するための構成可能なプロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210034958A1 (ja) |
JP (1) | JP7569109B2 (ja) |
CA (1) | CA3147392A1 (ja) |
WO (1) | WO2021014215A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11521085B2 (en) * | 2020-04-07 | 2022-12-06 | International Business Machines Corporation | Neural network weight distribution from a grid of memory elements |
US11500680B2 (en) * | 2020-04-24 | 2022-11-15 | Alibaba Group Holding Limited | Systolic array-friendly data placement and control based on masked write |
EP4137913A1 (en) * | 2021-08-17 | 2023-02-22 | Axis AB | Power management in processing circuitry which implements a neural network |
KR20240007495A (ko) * | 2022-07-08 | 2024-01-16 | 리벨리온 주식회사 | 뉴럴 코어, 이를 포함하는 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치의 데이터 로드 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110097240A (ko) * | 2010-02-25 | 2011-08-31 | 삼성전자주식회사 | 광 시리얼라이저, 광 디시리얼라이저, 및 이들을 포함하는 데이터 처리 시스템 |
JP5904525B2 (ja) | 2011-06-24 | 2016-04-13 | 国立研究開発法人情報通信研究機構 | 論理推論システムおよび論理推論方法 |
US9811775B2 (en) * | 2012-12-24 | 2017-11-07 | Google Inc. | Parallelizing neural networks during training |
CN207517054U (zh) * | 2017-01-04 | 2018-06-19 | 意法半导体股份有限公司 | 串流开关 |
US11157806B2 (en) | 2017-04-17 | 2021-10-26 | Cerebras Systems Inc. | Task activating for accelerated deep learning |
JP7014393B2 (ja) | 2017-06-15 | 2022-02-01 | 公立大学法人会津大学 | データ処理装置、及びこれにおけるデータ処理方法 |
US11373088B2 (en) * | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
US10331983B1 (en) * | 2018-09-11 | 2019-06-25 | Gyrfalcon Technology Inc. | Artificial intelligence inference computing device |
-
2020
- 2020-07-20 CA CA3147392A patent/CA3147392A1/en active Pending
- 2020-07-20 US US16/933,859 patent/US20210034958A1/en active Pending
- 2020-07-20 JP JP2022502865A patent/JP7569109B2/ja active Active
- 2020-07-20 WO PCT/IB2020/000609 patent/WO2021014215A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP7569109B2 (ja) | 2024-10-17 |
WO2021014215A1 (en) | 2021-01-28 |
CA3147392A1 (en) | 2021-01-28 |
US20210034958A1 (en) | 2021-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7569109B2 (ja) | 畳み込みニューラルネットワークを実装するための構成可能なプロセッサ | |
US9535877B2 (en) | Processing system with interspersed processors and communication elements having improved communication routing | |
US20230023303A1 (en) | Machine learning network implemented by statically scheduled instructions | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
US20180181503A1 (en) | Data flow computation using fifos | |
US11227030B2 (en) | Matrix multiplication engine using pipelining | |
US10997102B2 (en) | Multidimensional address generation for direct memory access | |
US20190057060A1 (en) | Reconfigurable fabric data routing | |
US11934308B2 (en) | Processor cluster address generation | |
Wiangtong et al. | Hardware/software codesign: a systematic approach targeting data-intensive applications | |
JP2020525907A (ja) | 高スループットプロセッサ | |
US20230017778A1 (en) | Efficient communication between processing elements of a processor for implementing convolution neural networks | |
Chai et al. | Streaming processors for next-generation mobile imaging applications | |
CA3174808A1 (en) | Efficient communication between processing elements of a processor for implementing convolution neural networks | |
Izawa et al. | A Co-Processor Design for an Energy Efficient Reconfigurable Accelerator CMA | |
Xue et al. | Approach to constructing reconfigurable computer vision system | |
Izawa et al. | International Journal of Networking and Computing–www. ijnc. org ISSN 2185-2839 (print) ISSN 2185-2847 (online) Volume X, Number Y, pages 501–513, January 20XX |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240823 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240903 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240927 |