JP6896306B1 - ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 - Google Patents
ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 Download PDFInfo
- Publication number
- JP6896306B1 JP6896306B1 JP2020071932A JP2020071932A JP6896306B1 JP 6896306 B1 JP6896306 B1 JP 6896306B1 JP 2020071932 A JP2020071932 A JP 2020071932A JP 2020071932 A JP2020071932 A JP 2020071932A JP 6896306 B1 JP6896306 B1 JP 6896306B1
- Authority
- JP
- Japan
- Prior art keywords
- memory
- circuit
- quantization
- convolution
- layer
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 282
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 47
- 238000013139 quantization Methods 0.000 claims abstract description 233
- 230000015654 memory Effects 0.000 claims abstract description 216
- 239000013598 vector Substances 0.000 claims description 43
- 238000011176 pooling Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000004913 activation Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 abstract description 28
- 238000012546 transfer Methods 0.000 description 42
- 238000013527 convolutional neural network Methods 0.000 description 27
- 238000010606 normalization Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000013585 weight reducing agent Substances 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Electrotherapy Devices (AREA)
- Details Of Television Systems (AREA)
Abstract
Description
本発明の第一の態様に係るニューラルネットワーク回路は、入力データを格納する第一メモリと、前記第一メモリに格納された前記入力データと重みとに対して畳み込み演算を行う畳み込み演算回路と、前記畳み込み演算回路の畳み込み演算出力データを格納する第二メモリと、前記第二メモリに格納された前記畳み込み演算出力データに対して量子化演算を行う量子化演算回路と、を備え、前記量子化演算回路の量子化演算出力データは、前記第一メモリに格納されて、前記第一メモリに格納された前記量子化演算出力データは、前記畳み込み演算回路に前記入力データとして入力され、前記第一メモリと、前記畳み込み演算回路と、前記第二メモリと、前記畳み込み演算回路とは、ループ状に形成されている。
本発明の第二の態様に係るエッジデバイスは、上記ニューラルネットワーク回路を含み、バッテリーによって駆動する。
本発明の第一実施形態について、図1から図20を参照して説明する。
図1は、畳み込みニューラルネットワーク200(以下、「CNN200」という)を示す図である。第一実施形態に係るニューラルネットワーク回路100(以下、「NN回路100」という)が行う演算は、推論時に使用する学習済みのCNN200の少なくとも一部である。
CNN200は、畳み込み演算を行う畳み込み層210と、量子化演算を行う量子化演算層220と、出力層230と、を含む多層構造のネットワークである。CNN200の少なくとも一部において、畳み込み層210と量子化演算層220とが交互に連結されている。CNN200は、画像認識や動画認識に広く使われるモデルである。CNN200は、全結合層などの他の機能を有する層(レイヤ)をさらに有してもよい。
畳み込み層210は、入力データaに対して重みwを用いた畳み込み演算を行う。畳み込み層210は、入力データaと重みwとを入力とする積和演算を行う。
NN回路100は、畳み込み層210の畳み込み演算(式1)を分割して演算する。なお、NN回路100は、畳み込み層210の畳み込み演算(式1)を分割せずに演算することもできる。
NN回路100は、畳み込み層210の畳み込み演算における入力データaおよび重みwを展開して畳み込み演算を行う。
分割入力データa(x+i、y+j、co)は、Bc個の要素を持つベクトルデータに展開される。分割入力データaの要素は、ciでインデックスされる(0≦ci<Bc)。以降の説明において、i,jごとにベクトルデータに展開された分割入力データaを「入力ベクトルA」ともいう。入力ベクトルAは、分割入力データa(x+i、y+j、co×Bc)から分割入力データa(x+i、y+j、co×Bc+(Bc−1))までを要素とする。
図4は、本実施形態に係るNN回路100の全体構成を示す図である。
NN回路100は、第一メモリ1と、第二メモリ2と、DMAコントローラ3(以下、「DMAC3」ともいう)と、畳み込み演算回路4と、量子化演算回路5と、コントローラ6と、を備える。NN回路100は、第一メモリ1および第二メモリ2を介して、畳み込み演算回路4と量子化演算回路5とがループ状に形成されていることを特徴とする。
図5は、NN回路100の動作例を示すタイミングチャートである。
DMAC3は、レイヤ1の入力データaを第一メモリ1に格納する。DMAC3は、畳み込み演算回路4が行う畳み込み演算の順序にあわせて、レイヤ1の入力データaを分割して第一メモリ1に転送してもよい。
図6は、NN回路100の他の動作例を示すタイミングチャートである。
NN回路100は、入力データaを部分テンソルに分割して、時分割により部分テンソルに対する演算を行ってもよい。部分テンソルへの分割方法や分割数は特に限定されない。
図7は、DMAC3の内部ブロック図である。
DMAC3は、データ転送回路31と、ステートコントローラ32と、を有する。DMAC3は、データ転送回路31に対する専用のステートコントローラ32を有しており、命令コマンドが入力されると、外部のコントローラを必要とせずにDMAデータ転送を実施できる。
制御回路34は、命令キュー33に命令コマンドC3が入力されると(Not empty)、アイドルステートS1からデコードステートS2に遷移する。
図9は、畳み込み演算回路4の内部ブロック図である。
畳み込み演算回路4は、重みメモリ41と、乗算器42と、アキュムレータ回路43と、ステートコントローラ44と、を有する。畳み込み演算回路4は、乗算器42およびアキュムレータ回路43に対する専用のステートコントローラ44を有しており、命令コマンドが入力されると、外部のコントローラを必要とせずに畳み込み演算を実施できる。
乗算器42は、入力ベクトルAと重みマトリクスWとを乗算する。入力ベクトルAは、上述したように、分割入力データa(x+i、y+j、co)が展開されたBc個の要素を持つベクトルデータである。また、重みマトリクスWは、分割重みw(i,j,co、do)が展開されたBc×Bd個の要素を持つマトリクスデータである。乗算器42は、Bc×Bd個の積和演算ユニット47を有し、入力ベクトルAと重みマトリクスWとを乗算を並列して実施できる。
積和演算ユニット47は、入力ベクトルAの要素A(ci)と、重みマトリクスWの要素W(ci,di)との乗算を実施する。また、積和演算ユニット47は、乗算結果と他の積和演算ユニット47の乗算結果S(ci,di)と加算する。積和演算ユニット47は、加算結果S(ci+1,di)を出力する。要素A(ci)は、2ビットの符号なし整数(0,1,2,3)である。要素W(ci,di)は、1ビットの符号付整数(0,1)であり、値「0」は+1を表し、値「1」は−1を表す。
アキュムレータ回路43は、乗算器42の積和演算結果O(di)を第二メモリ2にアキュムレートする。アキュムレータ回路43は、Bd個のアキュムレータユニット48を有し、Bd個の積和演算結果O(di)を並列して第二メモリ2にアキュムレートできる。
アキュムレータユニット48は、加算器48aと、マスク部48bとを有している。加算器48aは、積和演算結果Oの要素O(di)と、第二メモリ2に格納された式1に示す畳み込み演算の途中経過である部分和と、を加算する。加算結果は、要素あたり16ビットである。加算結果は、要素あたり16ビットに限定されず、例えば要素あたり15ビットや17ビットであってもよい。
図14は、量子化演算回路5の内部ブロック図である。
量子化演算回路5は、量子化パラメータメモリ51と、ベクトル演算回路52と、量子化回路53と、ステートコントローラ54と、を有する量子化演算回路5は、ベクトル演算回路52および量子化回路53に対する専用のステートコントローラ54を有しており、命令コマンドが入力されると、外部のコントローラを必要とせずに量子化演算を実施できる。
ベクトル演算回路52は、第二メモリ2に格納された出力データf(x,y,do)に対して演算を行う。ベクトル演算回路52は、Bd個の演算ユニット57を有し、出力データf(x,y,do)に対して並列にSIMD演算を行う。
演算ユニット57は、例えば、ALU57aと、第一セレクタ57bと、第二セレクタ57cと、レジスタ57dと、シフタ57eと、を有する。演算ユニット57は、公知の汎用SIMD演算回路が有する他の演算器等をさらに有してもよい。
演算ユニット57は、ALU57aによる比較結果に応じて第二セレクタ57cを制御して、レジスタ57dに格納されたデータと要素f(di)の大きい方を選択できる。演算ユニット57は、第一セレクタ57bの選択により要素f(di)の取りうる値の最小値をALU57aに入力することで比較対象を最小値に初期化できる。本実施形態において要素f(di)は16bit符号付き整数であるので、要素f(di)の取りうる値の最小値は「0x8000」である。ベクトル演算回路52は、Bd個の演算ユニット57による上記の演算等を繰り返すことで、式3のMAXプーリングの演算を実施できる。なお、MAXプーリングの演算ではシフタ57eは第二セレクタ57cの出力をシフトしない。
量子化ユニット58は、ベクトル演算回路52の出力データの要素in(di)に対して量子化を行う。量子化ユニット58は、比較器58aと、エンコーダ58bと、を有する。量子化ユニット58はベクトル演算回路52の出力データ(16ビット/要素)に対して、量子化演算層220における量子化層224の演算(式6)を行う。量子化ユニット58は、量子化パラメータメモリ51から必要な量子化パラメータq(th0,th1,th2)を読み出し、比較器58aにより入力in(di)と量子化パラメータqとの比較を行う。量子化ユニット58は、比較器58aによる比較結果をエンコーダ58bにより2ビット/要素に量子化する。式4におけるα(c)とβ(c)は、変数cごとに異なるパラメータであるため、α(c)とβ(c)を反映する量子化パラメータq(th0,th1,th2)はin(di)ごとに異なるパラメータである。
コントローラ6は、外部ホストCPUから転送される命令コマンドを、DMAC3、畳み込み演算回路4および量子化演算回路5が有する命令キューに転送する。コントローラ6は、各回路に対する命令コマンドを格納する命令メモリを有してもよい。
図18は、セマフォSによるNN回路100の制御を説明する図である。
セマフォSは、第一セマフォS1と、第二セマフォS2と、第三セマフォS3と、を有する。セマフォSは、P操作によりデクリメントされ、V操作によってインクリメントされる。DMAC3、畳み込み演算回路4および量子化演算回路5によるP操作およびV操作は、内部バスIBを経由して、コントローラ6が有するセマフォSを更新する。
図19は、第一データフローF1のタイミングチャートである。
第一ライトセマフォS1Wは、第一データフローF1におけるDMAC3による第一メモリ1に対する書き込みを制限するセマフォである。第一ライトセマフォS1Wは、第一メモリ1において、例えば入力ベクトルAなどの所定のサイズのデータを格納可能なメモリ領域のうち、データが読み出し済みで他のデータを書き込み可能なメモリ領域の数を示している。第一ライトセマフォS1Wが「0」の場合、DMAC3は第一メモリ1に対して第一データフローF1における書き込みを行えず、第一ライトセマフォS1Wが「1」以上となるまで待たされる。
図20は、第二データフローF2のタイミングチャートである。
第二ライトセマフォS2Wは、第二データフローF2における畳み込み演算回路4による第二メモリ2に対する書き込みを制限するセマフォである。第二ライトセマフォS2Wは、第二メモリ2において、例えば出力データfなどの所定のサイズのデータを格納可能なメモリ領域のうち、データが読み出し済みで他のデータを書き込み可能なメモリ領域の数を示している。第二ライトセマフォS2Wが「0」の場合、畳み込み演算回路4は第二メモリ2に対して第二データフローF2における書き込みを行えず、第二ライトセマフォS2Wが「1」以上となるまで待たされる。
第三ライトセマフォS3Wは、第三データフローF3における量子化演算回路5による第一メモリ1に対する書き込みを制限するセマフォである。第三ライトセマフォS3Wは、第一メモリ1において、例えば量子化演算回路5の量子化演算出力データなどの所定のサイズのデータを格納可能なメモリ領域のうち、データが読み出し済みで他のデータを書き込み可能なメモリ領域の数を示している。第三ライトセマフォS3Wが「0」の場合、量子化演算回路5は第一メモリ1に対して第三データフローF3における書き込みを行えず、第三ライトセマフォS3Wが「1」以上となるまで待たされる。
畳み込み演算回路4は、畳み込み演算を行う際、第一メモリ1から読み出しを行い、第二メモリ2に対して書き込みを行う。すなわち、畳み込み演算回路4は、第一データフローF1においてはConsumerであり、第二データフローF2においてはProducerである。そのため、畳み込み演算回路4は、畳み込み演算を開始する際、第一リードセマフォS1Rに対してP操作を行い(図19参照)、第二ライトセマフォS2Wに対してP操作を行う(図20参照)。畳み込み演算回路4は、畳み込み演算の完了後に、第一ライトセマフォS1Wに対してV操作を行い(図19参照)、第二リードセマフォS2Rに対してV操作を行う(図20参照)。
量子化演算回路5は、量子化演算を行う際、第二メモリ2から読み出しを行い、第一メモリ1に対して書き込みを行う。すなわち、量子化演算回路5は、第二データフローF2においてはConsumerであり、第三データフローF3においてはProducerである。そのため、量子化演算回路5は、量子化演算を開始する際、第二リードセマフォS2Rに対してP操作を行い、第三ライトセマフォS3Wに対してP操作を行う。量子化演算回路5は量子化演算の完了後に、第二ライトセマフォS2Wに対してV操作を行い、第三リードセマフォS3Rに対してV操作を行う。
畳み込み演算回路4が第一メモリ1から読み出す入力データは、第三データフローにおいて量子化演算回路5が書き込んだデータである場合もある。この場合、畳み込み演算回路4は、第三データフローF3においてはConsumerであり、第二データフローF2においてはProducerである。そのため、畳み込み演算回路4は、畳み込み演算を開始する際、第三リードセマフォS3Rに対してP操作を行い、第二ライトセマフォS2Wに対してP操作を行う。畳み込み演算回路4は、畳み込み演算の完了後に、第三ライトセマフォS3Wに対してV操作を行い、第二リードセマフォS2Rに対してV操作を行う。
上記実施形態において、第一メモリ1と第二メモリ2は別のメモリであったが、第一メモリ1と第二メモリ2の態様はこれに限定されない。第一メモリ1と第二メモリ2は、例えば、同一メモリにおける第一メモリ領域と第二メモリ領域であってもよい。
上記実施形態において、セマフォSは第一データフローF1、第二データフローF2および第三データフローF3に対して設けられていたが、セマフォSの態様はこれに限定されない。セマフォSは、例えば、DMAC3が重みWを重みメモリ41に書き込み、乗算器42が重みWを読み出すデータフローに設けられていてもよい。セマフォSは、例えば、DMAC3が量子化パラメータqを量子化パラメータメモリ51に書き込み、量子化回路53が量子化パラメータqを読み出すデータフローに設けられていてもよい。
例えば、上記実施形態に記載のCNN200に入力されるデータは単一の形式に限定されず、静止画像、動画像、音声、文字、数値およびこれらの組み合わせで構成することが可能である。なお、CNN200に入力されるデータは、CNN200が設けられるエッジデバイスに搭載され得る、光センサ、温度計、Global Positioning System(GPS)計測器、角速度計測器、風速計などの物理量測定器における測定結果に限られない。周辺機器から有線または無線通信経由で受信する基地局情報、車両・船舶等の情報、天候情報、混雑状況に関する情報などの周辺情報や金融情報や個人情報等の異なる情報を組み合わせてもよい。
NN100が設けられるエッジデバイスは、バッテリー等で駆動する携帯電話などの通信機器、パーソナルコンピュータなどのスマートデバイス、デジタルカメラ、ゲーム機器、ロボット製品などのモバイル機器を想定するが、これに限られるものではない。Power on Ethernet(PoE)などでの供給可能なピーク電力制限、製品発熱の低減または長時間駆動の要請が高い製品に利用することでも他の先行例にない効果を得ることができる。例えば、車両や船舶などに搭載される車載カメラや、公共施設や路上などに設けられる監視カメラ等に適用することで長時間の撮影を実現できるだけでなく、軽量化や高耐久化にも寄与する。また、テレビやディスプレイ等の表示デバイス、医療カメラや手術ロボット等の医療機器、製造現場や建築現場で使用される作業ロボットなどにも適用することで同様の効果を奏することができる。
NN回路100は、NN回路100の一部または全部を一つ以上のプロセッサを用いて実現してもよい。例えば、NN回路100は、入力層または出力層の一部または全部をプロセッサによるソフトウェア処理により実現してもよい。ソフトウェア処理により実現する入力層または出力層の一部は、例えば、データの正規化や変換である。これにより、様々な形式の入力形式または出力形式に対応できる。なお、プロセッサで実行するソフトウェアは、通信手段や外部メディアを用いて書き換え可能に構成してもよい。
NN回路100は、CNN200における処理の一部をクラウド上のGraphics Processing Unit(GPU)等を組み合わせることで実現してもよい。NN回路100は、NN回路100が設けられるエッジデバイスで行った処理に加えて、クラウド上でさらに処理を行ったり、クラウド上での処理に加えてエッジデバイス上で処理を行ったりすることで、より複雑な処理を少ないリソースで実現できる。このような構成によれば、NN回路100は、処理分散によりエッジデバイスとクラウドとの間の通信量を低減できる。
NN回路100が行う演算は、学習済みのCNN200の少なくとも一部であったが、NN回路100が行う演算の対象はこれに限定されない。NN回路100が行う演算は、例えば畳み込み演算と量子化演算のように、2種類の演算を繰り返す学習済みのニューラルネットワークの少なくとも一部であってもよい。
100 ニューラルネットワーク回路(NN回路)
1 第一メモリ
2 第二メモリ
3 DMAコントローラ(DMAC)
4 畳み込み演算回路
42 乗算器
43 アキュムレータ回路
5 量子化演算回路
52 ベクトル演算回路
53 量子化回路
6 コントローラ
61 レジスタ
S セマフォ
F1 第一データフロー
F2 第二データフロー
F3 第三データフロー
Claims (21)
- 入力データを格納する第一メモリと、
前記第一メモリに格納された前記入力データと重みとに対して畳み込み演算を行う畳み込み演算回路と、
前記畳み込み演算回路の畳み込み演算出力データを格納する第二メモリと、
前記第二メモリに格納された前記畳み込み演算出力データに対して量子化演算を行う量子化演算回路と、
を備え、
前記量子化演算回路の量子化演算出力データは、前記第一メモリに格納されて、
前記第一メモリに格納された前記量子化演算出力データは、前記畳み込み演算回路に前記入力データとして入力され、
前記第一メモリと、前記畳み込み演算回路と、前記第二メモリと、前記畳み込み演算回路とは、ループ状に形成されている、
ニューラルネットワーク回路。 - 前記畳み込み演算回路は、前記畳み込み演算回路用の命令コマンドに基づき、前記第一メモリから前記入力データを読み出し、前記畳み込み演算出力データを前記第二メモリに書き込み、
前記量子化演算回路は、前記量子化演算回路用の命令コマンドに基づき、前記第二メモリから前記畳み込み演算出力データを読み出し、前記量子化演算出力データを前記第一メモリに書き込む、
請求項1に記載のニューラルネットワーク回路。 - 前記入力データは、第一部分テンソルと第二部分テンソルとに分解され、
前記畳み込み演算回路における前記第一部分テンソルに対する前記畳み込み演算と、前記量子化演算回路における前記第二部分テンソルに対する前記量子化演算と、は並列に実行される、
請求項1または請求項2に記載のニューラルネットワーク回路。
- 前記畳み込み演算回路は、前記第一メモリに格納された前記入力データに対してレイヤ2M−1(Mは自然数)の前記畳み込み演算を行い、前記レイヤ2M−1の前記畳み込み演算出力データを前記第二メモリに格納し、
前記量子化演算回路は、前記第二メモリに格納された前記レイヤ2M−1の前記畳み込み演算出力データに対してレイヤ2Mの前記量子化演算を行い、前記レイヤ2Mの前記量子化演算出力データを前記第一メモリに格納し、
前記畳み込み演算回路は、前記第一メモリに格納された前記レイヤ2Mの前記量子化演算出力データを前記入力データとしてレイヤ2M+1の前記畳み込み演算を行い、レイヤ2M+1の前記畳み込み演算出力データを前記第二メモリに格納する、
請求項1または請求項2に記載のニューラルネットワーク回路。 - 前記入力データは、第一部分テンソルと第二部分テンソルとに分解され、
前記第一部分テンソルに対応する前記レイヤ2M+1の前記畳み込み演算と、前記第二部分テンソルに対応する前記レイヤ2Mの前記量子化演算と、は並列に実施される、
請求項4に記載のニューラルネットワーク回路。 - 前記畳み込み演算回路は、
前記入力データと前記重みとを積和演算する乗算器と、
前記乗算器の積和演算結果を累積加算するアキュムレータ回路と、
を有する、
請求項1から請求項5のいずれか一項に記載のニューラルネットワーク回路。 - 前記乗算器は、前記入力データと前記重みとを反転器およびセレクタにより乗算する
請求項6に記載のニューラルネットワーク回路。 - 前記入力データは、ベクトルデータであり、
前記重みは、マトリクスデータである、
請求項1から請求項7のいずれか一項に記載のニューラルネットワーク回路。 - 前記入力データの各要素は、2ビットであり、
前記重みの各要素は、1ビットである、
請求項1から請求項8のいずれか一項に記載のニューラルネットワーク回路。 - 前記量子化演算回路は、前記畳み込み演算出力データを正規化する回路をさらに有する、
請求項1から請求項9のいずれか一項に記載のニューラルネットワーク回路。 - 前記量子化演算回路は、プーリングの演算を実施する回路をさらに有する、
請求項1から請求項9のいずれか一項に記載のニューラルネットワーク回路。 - 前記量子化演算回路は、活性化関数の演算を実施する回路をさらに有する、
請求項1から請求項9のいずれか一項に記載のニューラルネットワーク回路。 - 前記第一メモリに前記入力データを転送するDMAコントローラをさらに有する、
請求項1に記載のニューラルネットワーク回路。 - 前記第二メモリは、ランダムアクセス可能かつ書き換え可能なメモリである、
請求項1に記載のニューラルネットワーク回路。 - 前記DMAコントローラによる前記第一メモリに対する書き込みを制限する第一ライトセマフォと、
前記畳み込み演算回路による前記第一メモリからの読み出しを制限する第一リードセマフォと、
を有する、
請求項13に記載のニューラルネットワーク回路。 - 前記畳み込み演算回路による前記第二メモリに対する書き込みを制限する第二ライトセマフォと、
前記量子化演算回路による前記第二メモリからの読み出しを制限する第二リードセマフォと、
を有する、
請求項1に記載のニューラルネットワーク回路。 - 前記量子化演算回路による前記第一メモリに対する書き込みを制限する第三ライトセマフォと、
前記畳み込み演算回路による前記第一メモリからの読み出しを制限する第三リードセマフォと、
を有する、
請求項1に記載のニューラルネットワーク回路。 - 入力データを格納する第一メモリと、
前記第一メモリに格納された前記入力データと重みとに対して畳み込み演算を行う畳み込み演算回路と、
前記畳み込み演算回路の畳み込み演算出力データを格納する第二メモリと、
前記第二メモリに格納された前記畳み込み演算出力データに対して量子化演算を行う量子化演算回路と、
を備え、
前記量子化演算回路の量子化演算出力データは、前記第一メモリに格納されて、
前記第一メモリに格納された前記量子化演算出力データは、前記畳み込み演算回路に前記入力データとして入力され、
前記畳み込み演算回路は、前記第一メモリに格納された前記入力データに対してレイヤ2M−1(Mは自然数)の前記畳み込み演算を行い、前記レイヤ2M−1の前記畳み込み演算出力データを前記第二メモリに格納し、
前記量子化演算回路は、前記第二メモリに格納された前記レイヤ2M−1の前記畳み込み演算出力データに対してレイヤ2Mの前記量子化演算を行い、前記レイヤ2Mの前記量子化演算出力データを前記第一メモリに格納し、
前記畳み込み演算回路は、前記第一メモリに格納された前記レイヤ2Mの前記量子化演算出力データを前記入力データとしてレイヤ2M+1の前記畳み込み演算を行い、レイヤ2M+1の前記畳み込み演算出力データを前記第二メモリに格納し、
前記入力データは、第一部分テンソルと第二部分テンソルとに分解され、
前記第一部分テンソルに対応する前記レイヤ2M+1の前記畳み込み演算と、前記第二部分テンソルに対応する前記レイヤ2Mの前記量子化演算と、は並列に実施される、
ニューラルネットワーク回路。 - 請求項1から請求項18のいずれか一項に記載のニューラルネットワーク回路を含み、バッテリーによって駆動するエッジデバイス。
- プロセッサをさらに備え、
前記プロセッサは前記ニューラルネットワーク回路の入力層または出力層における少なくとも一部の演算を行う、
請求項19に記載のエッジデバイス。 - 第一メモリ領域と第二メモリ領域とを用いて畳み込み演算と量子化演算とを行うニューラルネットワーク演算方法であって、
前記第一メモリ領域に格納された入力データに対してレイヤ2M−1(Mは自然数)の前記畳み込み演算を行い、前記レイヤ2M−1の畳み込み演算出力データを前記第二メモリ領域に格納し、
前記第二メモリ領域に格納された前記レイヤ2M−1の前記畳み込み演算出力データに対してレイヤ2Mの前記量子化演算を行い、前記レイヤ2Mの量子化演算出力データを前記第一メモリ領域に格納し、
前記第一メモリ領域に格納された前記レイヤ2Mの前記量子化演算出力データを前記入力データとしてレイヤ2M+1の前記畳み込み演算を行い、レイヤ2M+1の前記畳み込み演算出力データを前記第二メモリ領域に格納し、
前記入力データを、第一部分テンソルと第二部分テンソルとに分解し、
前記第一部分テンソルに対応する前記レイヤ2M+1の前記畳み込み演算と、前記第二部分テンソルに対応する前記レイヤ2Mの前記量子化演算と、を並列に実施する、
ニューラルネットワーク演算方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020071932A JP6896306B1 (ja) | 2020-04-13 | 2020-04-13 | ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 |
TW110113109A TWI773245B (zh) | 2020-04-13 | 2021-04-12 | 神經網路電路、網路終端設備及神經網路運算方法 |
KR1020210047004A KR102667790B1 (ko) | 2020-04-13 | 2021-04-12 | 뉴럴 네트워크 회로, 에지 디바이스 및 뉴럴 네트워크 연산 방법 |
US17/227,785 US20210319294A1 (en) | 2020-04-13 | 2021-04-12 | Neural network circuit, edge device and neural network operation process |
CN202110388524.2A CN113537479A (zh) | 2020-04-13 | 2021-04-12 | 神经网络电路、边缘设备以及神经网络运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020071932A JP6896306B1 (ja) | 2020-04-13 | 2020-04-13 | ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6896306B1 true JP6896306B1 (ja) | 2021-06-30 |
JP2021168095A JP2021168095A (ja) | 2021-10-21 |
Family
ID=76540464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020071932A Active JP6896306B1 (ja) | 2020-04-13 | 2020-04-13 | ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210319294A1 (ja) |
JP (1) | JP6896306B1 (ja) |
KR (1) | KR102667790B1 (ja) |
CN (1) | CN113537479A (ja) |
TW (1) | TWI773245B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023058422A1 (ja) * | 2021-10-08 | 2023-04-13 | LeapMind株式会社 | ニューラルネットワーク回路およびニューラルネットワーク回路の制御方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023139990A1 (ja) * | 2022-01-24 | 2023-07-27 | LeapMind株式会社 | ニューラルネットワーク回路およびニューラルネットワーク演算方法 |
KR20240128219A (ko) | 2023-02-17 | 2024-08-26 | 주식회사 이엠솔루션 | IoT 에지 디바이스에 기반하여 고속의 시각정보를 제공하는 지능 플랫폼 시스템 및 그 서비스 제공방법 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04233063A (ja) * | 1990-12-28 | 1992-08-21 | Matsushita Electric Ind Co Ltd | ニューロプロセッサ |
WO2007046368A1 (ja) * | 2005-10-18 | 2007-04-26 | Matsushita Electric Industrial Co., Ltd. | 半導体集積回路 |
JP6539459B2 (ja) * | 2015-02-24 | 2019-07-03 | 国立大学法人広島大学 | Lvqニューラルネットワーク |
JP6964234B2 (ja) | 2016-11-09 | 2021-11-10 | パナソニックIpマネジメント株式会社 | 情報処理方法、情報処理装置およびプログラム |
US10528321B2 (en) * | 2016-12-07 | 2020-01-07 | Microsoft Technology Licensing, Llc | Block floating point for neural network implementations |
US10410098B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Compute optimizations for neural networks |
US10474458B2 (en) * | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
CN112214726B (zh) * | 2017-07-07 | 2024-05-03 | 华为技术有限公司 | 运算加速器 |
KR102534917B1 (ko) * | 2017-08-16 | 2023-05-19 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10699160B2 (en) * | 2017-08-23 | 2020-06-30 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
WO2019113007A1 (en) * | 2017-12-05 | 2019-06-13 | Wave Computing, Inc. | Pipelined tensor manipulation within a reconfigurable fabric |
CN108364061B (zh) * | 2018-02-13 | 2020-05-05 | 北京旷视科技有限公司 | 运算装置、运算执行设备及运算执行方法 |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
US20190332925A1 (en) * | 2018-04-30 | 2019-10-31 | International Business Machines Corporation | Neural hardware accelerator for parallel and distributed tensor computations |
WO2019222150A1 (en) * | 2018-05-15 | 2019-11-21 | Lightmatter, Inc. | Algorithms for training neural networks with photonic hardware accelerators |
WO2019220692A1 (ja) * | 2018-05-15 | 2019-11-21 | 三菱電機株式会社 | 演算装置 |
US10860865B2 (en) * | 2018-09-13 | 2020-12-08 | Chiral Software, Inc. | Predictive security camera system |
US10713012B2 (en) * | 2018-10-15 | 2020-07-14 | Intel Corporation | Method and apparatus for efficient binary and ternary support in fused multiply-add (FMA) circuits |
-
2020
- 2020-04-13 JP JP2020071932A patent/JP6896306B1/ja active Active
-
2021
- 2021-04-12 US US17/227,785 patent/US20210319294A1/en active Pending
- 2021-04-12 KR KR1020210047004A patent/KR102667790B1/ko active IP Right Grant
- 2021-04-12 TW TW110113109A patent/TWI773245B/zh active
- 2021-04-12 CN CN202110388524.2A patent/CN113537479A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023058422A1 (ja) * | 2021-10-08 | 2023-04-13 | LeapMind株式会社 | ニューラルネットワーク回路およびニューラルネットワーク回路の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2021168095A (ja) | 2021-10-21 |
KR102667790B1 (ko) | 2024-05-20 |
TWI773245B (zh) | 2022-08-01 |
KR20210127099A (ko) | 2021-10-21 |
TW202139077A (zh) | 2021-10-16 |
US20210319294A1 (en) | 2021-10-14 |
CN113537479A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6896306B1 (ja) | ニューラルネットワーク回路、エッジデバイスおよびニューラルネットワーク演算方法 | |
TWI818944B (zh) | 神經網路處理單元及系統晶片 | |
Choi et al. | An energy-efficient deep convolutional neural network training accelerator for in situ personalization on smart devices | |
WO2021210527A1 (ja) | ニューラルネットワーク回路の制御方法 | |
EP3709225A1 (en) | System and method for efficient utilization of multipliers in neural-network computations | |
WO2022163861A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
US20100257342A1 (en) | Row of floating point accumulators coupled to respective pes in uppermost row of pe array for performing addition operation | |
JP6931252B1 (ja) | ニューラルネットワーク回路およびニューラルネットワーク回路の制御方法 | |
WO2023058422A1 (ja) | ニューラルネットワーク回路およびニューラルネットワーク回路の制御方法 | |
WO2022085661A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
WO2022004815A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク生成方法およびニューラルネットワーク生成プログラム | |
WO2024038662A1 (ja) | ニューラルネットワーク学習装置およびニューラルネットワーク学習方法 | |
JP2022105437A (ja) | ニューラルネットワーク回路およびニューラルネットワーク演算方法 | |
WO2023139990A1 (ja) | ニューラルネットワーク回路およびニューラルネットワーク演算方法 | |
WO2024111644A1 (ja) | ニューラルネットワーク回路およびニューラルネットワーク演算方法 | |
JP2022183833A (ja) | ニューラルネットワーク回路およびニューラルネットワーク演算方法 | |
JP2024118195A (ja) | ニューラルネットワーク回路およびニューラルネットワーク演算方法 | |
WO2022230906A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
JP2023154880A (ja) | ニューラルネットワーク生成方法およびニューラルネットワーク生成プログラム | |
JP2022114698A (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
JP2023006509A (ja) | ソフトウェア生成装置およびソフトウェア生成方法 | |
US20240256901A1 (en) | Information processing apparatus, information processing method and non-transitory computer-readable storage medium | |
JP2024026993A (ja) | 情報処理装置、情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200413 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200413 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200507 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20200622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200901 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20201102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210219 |
|
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: 20210511 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210602 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6896306 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |