JP2021510219A - マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 - Google Patents
マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 Download PDFInfo
- Publication number
- JP2021510219A JP2021510219A JP2020537478A JP2020537478A JP2021510219A JP 2021510219 A JP2021510219 A JP 2021510219A JP 2020537478 A JP2020537478 A JP 2020537478A JP 2020537478 A JP2020537478 A JP 2020537478A JP 2021510219 A JP2021510219 A JP 2021510219A
- Authority
- JP
- Japan
- Prior art keywords
- neural network
- convolutional neural
- module
- calculation
- hardware accelerator
- 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
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/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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
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)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Microcomputers (AREA)
Abstract
本発明はマルチキャストネットワークオンチップに基づいた再構成可能畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式を公開する。マルチキャストネットワークオンチップは下層ネットワークと上層ネットワークで構成された双層ネットワークオンチップであり、一つの元ノードから同時に多数の目的ノードへの転送を実現する。マルチキャストネットワークオンチップに基づいた再構成可能畳み込みニューラルネットワークは通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、設定モジュール、データメモリ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含んでいる。本発明は畳み込みニューラルネットワークハードウェアアクセラレータを用いてマルチキャストネットワークオンチップ上で転送するデータの加速処理を行い、ニューラルネットワーク計算の平行性を十分に発掘し、さらに早い数字識別の速さを獲得し、再利用可能性と拡張性を増強する。
Description
本発明は集積回路ネットワークオンチップの通信技術領域に属し、特にマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式に関与する。
畳み込みニューラルネットワークは人工ニューラルネットワークを源に由来する。多層感知機器として、図形の並行移動、比例ズーム、傾斜の変形に強い適応性を持ち、図形の特徴を迅速に抽出できる。重み付け値共有ネットワーク構造を採用し、この構造は生物ニューラルネットワーク構造に強い相似性を持ち、このような構造は重み付け値の数量を減少し、ネットワークモデルの複雑度を低減し、ネットワークに対して多次元画像を入力するとこの長所が更に明確にしていて、画像は直接ネットワークの入力として、伝統的な識別アルゴリズムの複雑な特徴抽出とデータ再構築プロセスが避けられる。
数字の書き方が簡単であり、十種類しかないが、数字の書き方が比較的に簡単であるため、差別が比較的に小さいであり、手書きの数字の形が差別が多く識別の難易度が高くなり、精度は比較的に低い。畳み込みニューラルネットワークを用いて識別精度を大きく高め、現状識別率が99.33%に達している。しかし、ある識別プロセスには、識別の速さおよび高い精度が求められている。
しかしながら、ソフトウェア的な畳み込みニューラルネットワークで図形を識別に時間がかかり、ニューラルネットワークの並行性は十分に発揮できなく、リアルタイム性と電力消費量の面では実際の要求に満たさない。ハードウェアに基づいた畳み込みニューラルネットワークの図形識別の面では、FPGAでニューラルネットワークを実現するのは新たな方向である。コンピュータエンジニアリングジャーナル第43巻第一期の《FPGAに基づいた畳み込みニューラルネットワークアクセラレータ》ではFPGAに基づいた畳み込みニューラルネットワークアクセラレータの実現方法を提出し、このアクセラレータはニューラルネットワークの計算で比較的に高い速度を獲得したが、ニューラルネットワークの計算時には畳み込み計算の並行性の利用はそれほど高くなく、それにゆえ畳み込み計算の面ではまだアップする区間が大きく、同時にこのアクセラレータは通信と計算を分離していなく、再利用性が強くない。
本発明は前記の現状の技術に不足なところを解決するため、マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式を提出し、畳み込みニューラルネットワークハードウェアアクセラレータを用いてマルチキャストネットワークオンチップ上転送するデータの処理の加速を期待し、ニューラルネットワークの並行性は十分に発揮し、更に早い数字識別速度を獲得し、再利用可能性と拡張性を高める。
本発明は上記目的を達すために採用する技術方式は下記となる:
本発明はマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータを提供する、前記マルチキャストネットワークオンチップはN×Mの下層二次元ネットワークとL×Sの上層ネットワークから構成され(MとNは2以上の整数であり、LとSは1以上の整数であり、かつ1≦L<N、1≦S<M)、
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータを含み、前記普通ノードルータは五つの水平転送方向が含まれ、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、個々の前記転送ノードルータはそれぞれ五つの水平転送方向と一つの下向き転送方向にデータ転送を行い、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続し、その中、五つの水平転送方向は、前後左右の四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータには、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
前記畳み込みニューラルネットワークハードウェアアクセラレータは初期化段階で五つのモードに分けるように配置され、個々のモードでは少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
第一種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n個の特徴図メモリ(1≦n≦N)および結果メモリに分け、それに目標図のデータを前記目標図メモリに書き込み、前記記憶制御モジュールは第一の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに一種の活性化関数を設定し、
第二種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−1個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第二の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第三種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第三の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第四種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第四の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第五種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリ、活性化関数モジュールを使用しなく、
個々の畳み込みニューラルネットワークハードウェアアクセラレータは下記方式で演算する:
(1)第一の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記目標図メモリから前記目標図データを読み出し、前記出力モジュールと再構築可能計算モジュールに転送し、前記出力処理モジュールは前記目標図データをパッケージング処理を行い前記通信インタフェースモジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを獲得し、前記記憶制御モジュールは第一の特徴図データを第一の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記入力処理モジュールが第一種のモードでの通信インタフェースモジュールからパッケージデータを受け取り、デパッケージング処理を行い、目標図データを獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを得、前記記憶制御モジュールは前記第一の特徴図データを第一の特徴図メモリに格納し、
(2)第二の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは第一の特徴図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは当該第二の特徴図データを第二の特徴図メモリに格納し、前記出力モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力モジュールに転送し、前記出力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送し、活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記第二の特徴データを第二の特徴図メモリに格納し、前記出力処理モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードの第一の特徴図データと第二種のモードの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得して記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードでの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
(3)最初の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記入力処理モジュールは順次に第二種のモード、第三種のモード及び第四種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、三つのモードでの畳み込み結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは三つのモードでの畳み込み結果の累積計算した累積結果を獲得してから前記出力処理モジュールに転送し、前記出力処理モジュールは累積結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
それ以外には、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データを畳み込み計算した畳み込み結果を前記再構築可能計算モジュールに転送し、前記入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第五種のモードでの累積結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは累積結果と畳み込み結果との同時に累積計算した第三の特徴図データを獲得し、前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第三の特徴図データを第三の特徴図メモリに格納し、
(4)第二の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第三の特徴図メモリから前記第三特徴図データを読み出し、活性化関数計算を行うようにそれぞれ前記活性化関数モジュールに転送し、活性化結果を獲得してから前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは前記活性化結果に対して畳み込み計算を行い、第一の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第一の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第一の出力結果を前記結果メモリに書き込み、前記出力処理モジュールは前記活性化結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第二の初歩結果を獲得して前記活性化関数モジュールに転送し、活性化計算を行い、第二の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第二の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第三の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第三の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第三の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、前記第二の出力結果と前記第三の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは順次に前記第二の出力結果と前記第三の出力結果を前記結果メモリに書き込み、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
本発明はマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータを提供する、前記マルチキャストネットワークオンチップはN×Mの下層二次元ネットワークとL×Sの上層ネットワークから構成され(MとNは2以上の整数であり、LとSは1以上の整数であり、かつ1≦L<N、1≦S<M)、
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータを含み、前記普通ノードルータは五つの水平転送方向が含まれ、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、個々の前記転送ノードルータはそれぞれ五つの水平転送方向と一つの下向き転送方向にデータ転送を行い、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続し、その中、五つの水平転送方向は、前後左右の四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータには、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
前記畳み込みニューラルネットワークハードウェアアクセラレータは初期化段階で五つのモードに分けるように配置され、個々のモードでは少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
第一種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n個の特徴図メモリ(1≦n≦N)および結果メモリに分け、それに目標図のデータを前記目標図メモリに書き込み、前記記憶制御モジュールは第一の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに一種の活性化関数を設定し、
第二種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−1個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第二の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第三種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第三の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第四種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第四の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第五種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリ、活性化関数モジュールを使用しなく、
個々の畳み込みニューラルネットワークハードウェアアクセラレータは下記方式で演算する:
(1)第一の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記目標図メモリから前記目標図データを読み出し、前記出力モジュールと再構築可能計算モジュールに転送し、前記出力処理モジュールは前記目標図データをパッケージング処理を行い前記通信インタフェースモジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを獲得し、前記記憶制御モジュールは第一の特徴図データを第一の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記入力処理モジュールが第一種のモードでの通信インタフェースモジュールからパッケージデータを受け取り、デパッケージング処理を行い、目標図データを獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを得、前記記憶制御モジュールは前記第一の特徴図データを第一の特徴図メモリに格納し、
(2)第二の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは第一の特徴図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは当該第二の特徴図データを第二の特徴図メモリに格納し、前記出力モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力モジュールに転送し、前記出力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送し、活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記第二の特徴データを第二の特徴図メモリに格納し、前記出力処理モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードの第一の特徴図データと第二種のモードの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得して記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードでの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
(3)最初の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記入力処理モジュールは順次に第二種のモード、第三種のモード及び第四種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、三つのモードでの畳み込み結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは三つのモードでの畳み込み結果の累積計算した累積結果を獲得してから前記出力処理モジュールに転送し、前記出力処理モジュールは累積結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
それ以外には、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データを畳み込み計算した畳み込み結果を前記再構築可能計算モジュールに転送し、前記入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第五種のモードでの累積結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは累積結果と畳み込み結果との同時に累積計算した第三の特徴図データを獲得し、前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第三の特徴図データを第三の特徴図メモリに格納し、
(4)第二の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第三の特徴図メモリから前記第三特徴図データを読み出し、活性化関数計算を行うようにそれぞれ前記活性化関数モジュールに転送し、活性化結果を獲得してから前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは前記活性化結果に対して畳み込み計算を行い、第一の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第一の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第一の出力結果を前記結果メモリに書き込み、前記出力処理モジュールは前記活性化結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第二の初歩結果を獲得して前記活性化関数モジュールに転送し、活性化計算を行い、第二の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第二の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第三の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第三の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第三の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、前記第二の出力結果と前記第三の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは順次に前記第二の出力結果と前記第三の出力結果を前記結果メモリに書き込み、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
本発明はマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータの動作方式も提供する、前記マルチキャストネットワークオンチップはN×Mの下層二次元ネットワークとL×Sの上層ネットワークから構成され(その中MとNは2以上の整数であり、LとSは1以上の整数であり、かつ1≦L<N、1≦S<M)、
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータが含まれ、前記普通ノードルータは五つの水平転送方向を含み、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、前記転送ノードルータは五つの水平転送方向と一つの下向き転送方向を含み、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続、その中、五つの水平転送方向は前後左右四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、畳み込み演算のプロセスは以下のとおりであり:
ステップ1、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、個々のモードには少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
ステップ2、第一と第二のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の畳み込み計算を行い、
ステップ2.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ2.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記目標図データを畳み込み計算してから活性化関数計算を行って第一特徴図データを獲得し、
ステップ3、第一、第二、第三および第四のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い、
ステップ3.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算し、さらに活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ3.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ4、第一、第二、第三、第四および第五種のモードでの前記畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ4.1カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.5、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ4.6、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ5、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ5.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データにを活性化関数計算してから活性化結果を獲得し、そして前記活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に前記第一の初歩的な結果を活性化関数計算し、第一の活性化結果を獲得して格納し、
ステップ5.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第二の初歩的な結果を獲得し、前記第二の初歩的な結果を活性化関数計算を行い、第二の出力結果を獲得し、
ステップ5.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第三の初歩的な結果を獲得し、前記第三の初歩的な結果を活性化関数計算し、第三の出力結果を獲得し、
ステップ5.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納し、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とする。
現有の技術と比較すると、本発明の有益な技術効果は下記となり:
1、本発明のアクセラレータは畳み込みニューラルネットワーク計算の並行性を大きく高め、畳み込みニューラルネットワーク計算の速さは伝統的な畳み込みニューラルネットワークアクセラレータより明確に高め、再構築可能な設計により本発明は異なるニューラルネットワークの計算要求に対して本発明の相応の設定を行うことができ、伝統的な畳み込みニューラルネットワークでは具備していない再構築機能を具備していて、計算と通信の分離の策略は本発明の拡張性と再利用可能性が伝統的な畳み込みニューラルネットワークハードウェアアクセラレータより高くなり、計算した畳み込みニューラルネットワークの規模により本発明の拡張を行うことができる。
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータが含まれ、前記普通ノードルータは五つの水平転送方向を含み、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、前記転送ノードルータは五つの水平転送方向と一つの下向き転送方向を含み、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続、その中、五つの水平転送方向は前後左右四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、畳み込み演算のプロセスは以下のとおりであり:
ステップ1、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、個々のモードには少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
ステップ2、第一と第二のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の畳み込み計算を行い、
ステップ2.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ2.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記目標図データを畳み込み計算してから活性化関数計算を行って第一特徴図データを獲得し、
ステップ3、第一、第二、第三および第四のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い、
ステップ3.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算し、さらに活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ3.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ4、第一、第二、第三、第四および第五種のモードでの前記畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ4.1カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.5、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ4.6、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ5、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ5.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データにを活性化関数計算してから活性化結果を獲得し、そして前記活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に前記第一の初歩的な結果を活性化関数計算し、第一の活性化結果を獲得して格納し、
ステップ5.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第二の初歩的な結果を獲得し、前記第二の初歩的な結果を活性化関数計算を行い、第二の出力結果を獲得し、
ステップ5.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第三の初歩的な結果を獲得し、前記第三の初歩的な結果を活性化関数計算し、第三の出力結果を獲得し、
ステップ5.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納し、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とする。
現有の技術と比較すると、本発明の有益な技術効果は下記となり:
1、本発明のアクセラレータは畳み込みニューラルネットワーク計算の並行性を大きく高め、畳み込みニューラルネットワーク計算の速さは伝統的な畳み込みニューラルネットワークアクセラレータより明確に高め、再構築可能な設計により本発明は異なるニューラルネットワークの計算要求に対して本発明の相応の設定を行うことができ、伝統的な畳み込みニューラルネットワークでは具備していない再構築機能を具備していて、計算と通信の分離の策略は本発明の拡張性と再利用可能性が伝統的な畳み込みニューラルネットワークハードウェアアクセラレータより高くなり、計算した畳み込みニューラルネットワークの規模により本発明の拡張を行うことができる。
2、本発明は通信インタフェースモジュール、入力出力処理モジュールを通して、畳み込みニューラルネットワークハードウェアアクセラレータの再構築計算モジュールとマルチキャストネットワークオンチップとは相互接続し、多数の畳み込みニューラルネットワークハードウェアアクセラレータの間の通信を実現し、同時に多数の畳み込みニューラルネットワークハードウェアアクセラレータの計算がお互いに独立していて、このような設計により多数の畳み込みニューラルネットワークハードウェアアクセラレータが同時に一つの畳み込みニューラルネットワークを計算することができ、ローカルの計算結果をマルチキャストネットワークオンチップを通して、一回で他の多数の畳み込みニューラルネットワークハードウェアアクセラレータに転送でき、次の並行計算を行うことができ、このような通信と計算分離の策略と伝統的な畳み込みニューラルネットワークハードウェアアクセラレータと比較して、畳み込みニューラルネットワークの計算の並行性を大きく高め、畳み込みニューラルネットワークの計算の速さを高めた。それと同時に、通信インタフェースモジュールと入力出力処理モジュールを通して、畳み込みニューラルネットワークの計算と通信を分離し、計算と通信が相互独立とした部分となり、このような操作により、畳み込みニューラルネットワークの計算規模の要求に応じて、ネットワークオンチップの規模を相応に変更する場合、入力出力処理モジュールのみに対して設定を行い、再構築計算モジュールが新たに設計することは必要がなく、拡張時の難易度を低減し、拡張可能性とモジュールの再利用可能性を高め、伝統的なニューラルネットワークアクセラレータの拡張可能性と再利用可能性の欠陥を克服した。
3、本発明は再構築可能な設計を採用し、原始的な畳み込みニューラルネットワークハードウェアアクセラレータは5種類の異なる動作モードに設定でき、それぞれ第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第三種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータである。5種類動作モードは原始的な畳み込みニューラルネットワークハードウェアアクセラレータの設定で得られ、実現した機能はお互いに異なり、例えば第一種の動作モードでの畳み込みニューラルネットワークハードウェアアクセラレータは目標図形の入力と畳み込みニューラルネットワークの計算結果の出力機能を実現でき、この二つの機能は他のモードでの畳み込みニューラルネットワークハードウェアアクセラレータには具備しなく、5種類の異なる動作モードでの畳み込みニューラルネットワークハードウェアアクセラレータを相互組み合わせて、完全な畳み込みニューラルネットワークの計算が実現でき、このような設計により異なる畳み込みニューラルネットワークを計算する場合、原始的な畳み込みニューラルネットワークハードウェアアクセラレータを複数の異なる動作モードに設定することのみで、相応の組み合わせを行い、異なる種類の畳み込みニューラルネットワークを計算することができる。5種類異なる動作モードの設計により本発明が伝統的な畳み込みニューラルネットワークアクセラレータに対して再構築可能の長所が具備する。同時に5種類異なる動作モードの設定により異なる計算ステップの畳み込みニューラルネットワークハードウェアアクセラレータの機能を簡略に分類し、畳み込みニューラルネットワークハードウェアアクセラレータの動作効率を高めた。
4、本発明の活性化関数モジュールは異なる類型の活性化関数ロジックに設定ができ、対応する畳み込みニューラルネットワークの計算要求に満たして、本発明は畳み込みニューラルネットワークの計算時に活性化関数計算プロセスの再構築可能性を実現した。
本実施例はマルチキャストネットワークオンチップアーキテクチャを採用して畳み込みニューラルネットワークの並行性を高め、手書きアラビア数字の識別の速さを加速する目的に至る。本実施例で採用した畳み込みニューラルネットワークは手書き数字識別ネットワークであり、その構造は二層の畳み込み層、二層の全接続層が含まれ、該当手書き識別ネットワークの構造は図1に示す。
本実施例の手書き識別機能はMNIST(Mixed National Institute of Standards and Technology database)手書きライブラリを用いて完成し、MNISTはグーグルラブとニューヨーク大学ケーロン研究所が建てた手書き数字トレーニングライブラリである。全体のトレーニングライブラリはトレーニングライブラリとテストライブラリが含まれ、トレニンーグライブライには60000枚の手書き数字画像があり、テストライブラリには10000枚がある。MNIST手書き数字画像の大きさは28×28であり、画像の特徴を抽出プロセスのエッジ影響を減少するために、ゼロ埋めを通して29×29の大きさに拡張する。このように入力層ニューラルノードの個数が29×29イコール841個である。
図1に示すように、該当畳み込みニューラルネットワークの計算は四層計算となり、第一層の計算は畳み込み層計算であり、入力層は841個のニューラルノードとなり、出力は6個の13×13の特徴図で全部で1041個のニューラルノードとなり、第二層は畳み込み層計算であり、入力層は第一個の畳み込み層が出力した16個の13×13の特徴図で全部で1041個のニューラルノードとなり、出力は50個の5×5の特徴図で全部で1250個のニューロンとなり、第三層は全接続層計算であり、入力層は第二個の畳み込み層が出力した50個の5×5の特徴図で全部で1250個のニューロンとなり、出力は100個のニューロンであり、第四層は全接続層計算であり、入力層は最初の全接続層が出力した100個のニューロンであり、出力は10個のニューロンである。
本発明はマルチキャストネットワークオンチップと畳み込みニューラルネットワークハードウェアアクセラレータの相互結合を採用し、畳み込みニューラルネットワークの計算を実現する。本実施例では、マルチキャストネットワークオンチップの構造は図2に示し、その中の円形アイコンはノードルータを表し、四角形アイコンはノードルータ上にマウントした畳み込みニューラルネットワークハードウェアアクセラレータを表し、6×6の下層二次元ネットワークと4×4の上層ネットワークから構成され、全部で40個のノードルータが含まれ、その中には下層二次元ネットワークは全部で36個のノードルータがあり、3×3の子ネットワークを単位に四つのマルチキャスト領域に分けられ、図2の中の点線で囲まれた四つの領域であり、個々の領域内は一つの中間ノードルータR3と複数の普通ノードルータR2を含み、普通ノードルータR2が五つの水平転送方向を含み、中間ノードルータR3は五つの水平転送方向と一つの上り転送方向を含み、上層ネットワークはいずれも転送ノードルータR1であり、転送ノードルータR1は五つの水平転送方向と一つの下向き転送方向を含み、個々の領域内の中間ノードルータR3と相応の転送ノードルータR1とは相互接続し、マルチキャストネットワークオンチップ構造は転送する情報を一つのノードルータから同時に多数のノードルータに転送することが実現でき、このように情報転送の効率を大きく高め、畳み込みニューラルネットワーク計算プロセスの中に再利用可能な情報転送の速さを高め、畳み込みニューラルネットワーク計算の並行性を高める。
本実施例で採用したマルチキャストネットワークオンチップ規模は使用している畳み込みニューラルネットワークの大きさにより設定し、実際の状況では計算で使用する畳み込みニューラルネットワークの種類が異なるため、実際状況に応じてマルチキャストネットワークオンチップの規模を設定し、6×6の下層二次元ネットワークと4×4の上層ネットワークが含まれているが、それだけに限らない双層ネットワーク構造である。
畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ下層二次元ネットワーク中の36個ノードルータと接続し、畳み込みニューラルネットワークハードウェアアクセラレータの内部構造は図4に示し、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構造可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
初期化段階では、畳み込みニューラルネットワークハードウェアアクセラレータは5種類のモードに設定し:
第一種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、三つの特徴図メモリ(それぞれ、特徴図1、特徴図2、特徴図3)と結果メモリに分割していて、目標図データを目標図メモリに書き込み、記憶制御モジュールは第一の重み付けデータを重み付けメモリに書き込み、活性化関数モジュールには活性化関数をReLU(Rectified Liner Units)関数に設定し、このモードでのアクセラレータの構造は図5に示し、
第二種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、二つの特徴図メモリ(それぞれ特徴図1、特徴図2)と結果メモリに分割していて、記憶制御モジュールは第二の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、このモードでのアクセラレータの構造は図6に示し、
第三種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ(特徴図2)と結果メモリに分割していて、記憶制御モジュールは第三の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、その構造は図7に示し、
第四種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ(特徴図2)と結果メモリに分割していて、記憶制御モジュールは第四の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、具体の構造は図8に示し、
第五種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリと活性化関数モジュールを使用しなく、その構造は図9に示し、
本実例では、5種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれマルチキャストネットワークオンチップに対応するノードルータ上にマウントしていて、具体的なマルチキャストネットワークオンチップのマッピング方法は図3に示すように、その中ノードルータアイコン上の大文字数字はノードルータでマウントしている畳み込みニューラルネットワークハードウェアアクセラレータのモード番号を表し、大文字数字がない場合、該当ノードルータとそれにマウントしている畳み込みニューラルネットワークハードウェアアクセラレータと疎通していなく、その第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが1個で、第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが5個で、第三種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが16個で、第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが4個で、第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが4個である。その中マルチキャストネットワークオンチップの上層ネットワークは畳み込みニューラルネットワークハードウェアアクセラレータをマウントしていない。本実施例で採用している畳み込みニューラルネットワークハードウェアアクセラレータマッピング方式は使用している手書き識別畳み込みニューラルネットワークハードウェアアクセラレータの規模により設定していて、本発明は異なる畳み込みニューラルネットワークによって異なる数目の5種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを採用していて、本実施例で採用しているマッピング方式と各種のモードでの畳み込みニューラルネットワークアクセラレータの数目が含まれ、それだけに限らない。5種類の異なる動作モードでのニューラルネットワークハードウェアアクセラレータを相互合わせて完全な畳み込みニューラルネットワーク計算が実現でき、このような設計により、異なる畳み込みニューラルネットワークを計算時には、原始的な畳み込みニューラルネットワークハードウェアアクセラレータを複数の異なる動作モードに設定するのみで、対応する組み合わせを行い、異なる種類の畳み込みニューラルネットワークを計算することができる。
初期化段階では、畳み込みニューラルネットワークハードウェアアクセラレータは5種類のモードに設定し:
第一種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、三つの特徴図メモリ(それぞれ、特徴図1、特徴図2、特徴図3)と結果メモリに分割していて、目標図データを目標図メモリに書き込み、記憶制御モジュールは第一の重み付けデータを重み付けメモリに書き込み、活性化関数モジュールには活性化関数をReLU(Rectified Liner Units)関数に設定し、このモードでのアクセラレータの構造は図5に示し、
第二種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、二つの特徴図メモリ(それぞれ特徴図1、特徴図2)と結果メモリに分割していて、記憶制御モジュールは第二の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、このモードでのアクセラレータの構造は図6に示し、
第三種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ(特徴図2)と結果メモリに分割していて、記憶制御モジュールは第三の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、その構造は図7に示し、
第四種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ(特徴図2)と結果メモリに分割していて、記憶制御モジュールは第四の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をReLU(Rectified Liner Units)関数に設定し、具体の構造は図8に示し、
第五種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリと活性化関数モジュールを使用しなく、その構造は図9に示し、
本実例では、5種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれマルチキャストネットワークオンチップに対応するノードルータ上にマウントしていて、具体的なマルチキャストネットワークオンチップのマッピング方法は図3に示すように、その中ノードルータアイコン上の大文字数字はノードルータでマウントしている畳み込みニューラルネットワークハードウェアアクセラレータのモード番号を表し、大文字数字がない場合、該当ノードルータとそれにマウントしている畳み込みニューラルネットワークハードウェアアクセラレータと疎通していなく、その第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが1個で、第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが5個で、第三種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが16個で、第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが4個で、第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが4個である。その中マルチキャストネットワークオンチップの上層ネットワークは畳み込みニューラルネットワークハードウェアアクセラレータをマウントしていない。本実施例で採用している畳み込みニューラルネットワークハードウェアアクセラレータマッピング方式は使用している手書き識別畳み込みニューラルネットワークハードウェアアクセラレータの規模により設定していて、本発明は異なる畳み込みニューラルネットワークによって異なる数目の5種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを採用していて、本実施例で採用しているマッピング方式と各種のモードでの畳み込みニューラルネットワークアクセラレータの数目が含まれ、それだけに限らない。5種類の異なる動作モードでのニューラルネットワークハードウェアアクセラレータを相互合わせて完全な畳み込みニューラルネットワーク計算が実現でき、このような設計により、異なる畳み込みニューラルネットワークを計算時には、原始的な畳み込みニューラルネットワークハードウェアアクセラレータを複数の異なる動作モードに設定するのみで、対応する組み合わせを行い、異なる種類の畳み込みニューラルネットワークを計算することができる。
第一の畳み込み層計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは目標図メモリから目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、出力処理モジュールは目標図データをパッケージング処理を行い、目標図データと転送目的のノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントしているノードの通信インタフェースモジュールに転送し、再構造可能計算モジュールは目標図データを受け取り、この時には再構築可能計算モジュールの通路選択機器は掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算し、さらに累積ロジック計算(すなわち完全な畳み込み計算)を行い、再構築可能計算モジュールは目標図データに対して畳み込み計算が完了してから活性化関数モジュールに転送してReLU活性化関数計算を行い、第一特徴図データを獲得し、畳み込み計算の並行度を高めるために、本実施例は掛け算ロジックユニット内に二つの乗算器を内蔵していて、同時に掛け算計算を行うことができ、第一層の畳み込み層計算時には、二つの乗算器が並行的に目標図データに対して掛け算ロジック計算を行っていて、本発明は掛け算ロジックユニットには多数の乗算器を内蔵することができ、本実施例の二つの乗算器が含まれているが、それだけに限定しなく、多数の乗算器の並行的な処理は畳み込み計算時の並行度を大きく高め、畳み込み計算の速さを高める。そのあとには、記憶制御モジュールは活性化関数から転送してきた第一特徴図データを受け取ってから、第一特徴図データを第一個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは第一種のモードでの通信インタフェースモジュールが転送してきたパッケージデータを受け取りデパッケージング処理を行い、パッケージデータ中の目標図データ抽出し、目標図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは目標図データを受け取り、掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送しReLU活性化関数計算を行い、第一特徴図データを獲得し、記憶制御モジュールは活性化関数モジュールから転送してきた第一特徴図データを受け取り、第一特徴図データを第一個の特徴図メモリに書き込み、
第二の畳み込み層計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、再構築可能計算モジュールの通路選択ユニットは第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送しReLU活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数モジュールから転送してきた第二特徴図データを受け取ってから、第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理を行い、第一特徴図データと転送目的ノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップ上に転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、入力処理モジュールは第一種のモードとその他の第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図と第二種のモードでの第一特徴図を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理し、第一特徴図データと転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータの目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、入力処理モジュールは順次に第一種のモードでと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
最初の全接続層計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して相応の目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、入力処理モジュールは順次に第二種のモード、第三種のモードおよび第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第三種のモードでの畳み込み結果を抽出し、第三種の畳み込み結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは三種類のモードでの畳み込み結果を受け取り、累積ロジック計算ユニットに接続し、三種類のモードでの畳み込み結果を累積計算してから累積結果を獲得し出力処理モジュールに転送し、出力処理モジュールは累積結果をパッケージング処理を行い、累積結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールはまだ第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールは第二特徴図データに対して畳み込み計算を行ってから畳み込み結果を再構築可能計算モジュールに転送し、入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取りデパッケージング処理を行い、第五種のモードでの累積結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールは累積結果と畳み込み結果に対して同時に累積計算を行い第三の特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第三の特徴図データを第三個の特徴図メモリに格納し、
第二の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第三個の特徴図メモリから第三特徴図データを読み出し、ReLU活性化関数計算を行うようにそれぞれ活性化関数モジュールに転送し、活性化結果を獲得してから再構築可能計算モジュールと出力処理モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第一の初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第一出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは第一出力結果を受け取ってから、第一出力結果を結果メモリに書き込み、出力処理モジュールは活性化結果に対してパッケージング処理を行い、活性化結果と転送目的ノード情報をパッケージングしてから通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第二初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第二出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第二出力結果に対してパッケージング処理を行い、第二出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第三初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第三出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第三出力結果に対してパッケージング処理を行い、第三出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
その他、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第二出力結果と第三出力結果を抽出し、第二出力結果と第三出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは順次に第二出力結果と第三出力結果を結果メモリに書き込み、
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは、三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とすることができる。
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは目標図メモリから目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、出力処理モジュールは目標図データをパッケージング処理を行い、目標図データと転送目的のノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントしているノードの通信インタフェースモジュールに転送し、再構造可能計算モジュールは目標図データを受け取り、この時には再構築可能計算モジュールの通路選択機器は掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算し、さらに累積ロジック計算(すなわち完全な畳み込み計算)を行い、再構築可能計算モジュールは目標図データに対して畳み込み計算が完了してから活性化関数モジュールに転送してReLU活性化関数計算を行い、第一特徴図データを獲得し、畳み込み計算の並行度を高めるために、本実施例は掛け算ロジックユニット内に二つの乗算器を内蔵していて、同時に掛け算計算を行うことができ、第一層の畳み込み層計算時には、二つの乗算器が並行的に目標図データに対して掛け算ロジック計算を行っていて、本発明は掛け算ロジックユニットには多数の乗算器を内蔵することができ、本実施例の二つの乗算器が含まれているが、それだけに限定しなく、多数の乗算器の並行的な処理は畳み込み計算時の並行度を大きく高め、畳み込み計算の速さを高める。そのあとには、記憶制御モジュールは活性化関数から転送してきた第一特徴図データを受け取ってから、第一特徴図データを第一個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは第一種のモードでの通信インタフェースモジュールが転送してきたパッケージデータを受け取りデパッケージング処理を行い、パッケージデータ中の目標図データ抽出し、目標図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは目標図データを受け取り、掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送しReLU活性化関数計算を行い、第一特徴図データを獲得し、記憶制御モジュールは活性化関数モジュールから転送してきた第一特徴図データを受け取り、第一特徴図データを第一個の特徴図メモリに書き込み、
第二の畳み込み層計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、再構築可能計算モジュールの通路選択ユニットは第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送しReLU活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数モジュールから転送してきた第二特徴図データを受け取ってから、第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理を行い、第一特徴図データと転送目的ノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップ上に転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、入力処理モジュールは第一種のモードとその他の第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図と第二種のモードでの第一特徴図を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理し、第一特徴図データと転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータの目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、入力処理モジュールは順次に第一種のモードでと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行ってから活性化関数モジュールに転送してReLU活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
最初の全接続層計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して相応の目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、入力処理モジュールは順次に第二種のモード、第三種のモードおよび第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第三種のモードでの畳み込み結果を抽出し、第三種の畳み込み結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは三種類のモードでの畳み込み結果を受け取り、累積ロジック計算ユニットに接続し、三種類のモードでの畳み込み結果を累積計算してから累積結果を獲得し出力処理モジュールに転送し、出力処理モジュールは累積結果をパッケージング処理を行い、累積結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールはまだ第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールは第二特徴図データに対して畳み込み計算を行ってから畳み込み結果を再構築可能計算モジュールに転送し、入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取りデパッケージング処理を行い、第五種のモードでの累積結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールは累積結果と畳み込み結果に対して同時に累積計算を行い第三の特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第三の特徴図データを第三個の特徴図メモリに格納し、
第二の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第三個の特徴図メモリから第三特徴図データを読み出し、ReLU活性化関数計算を行うようにそれぞれ活性化関数モジュールに転送し、活性化結果を獲得してから再構築可能計算モジュールと出力処理モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第一の初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第一出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは第一出力結果を受け取ってから、第一出力結果を結果メモリに書き込み、出力処理モジュールは活性化結果に対してパッケージング処理を行い、活性化結果と転送目的ノード情報をパッケージングしてから通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第二初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第二出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第二出力結果に対してパッケージング処理を行い、第二出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算(すなわち完全な畳み込み計算)を行い、第三初歩的な結果を獲得し活性化関数モジュールに転送してReLU活性化関数計算を行い、第三出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第三出力結果に対してパッケージング処理を行い、第三出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
その他、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第二出力結果と第三出力結果を抽出し、第二出力結果と第三出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは順次に第二出力結果と第三出力結果を結果メモリに書き込み、
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは、三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とすることができる。
本実施例には、マルチキャストネットワークオンチップと畳み込みニューラルネットワークハードウェアアクセラレータを相互結合することを採用し、畳み込みニューラルネットワークの計算を実現している。本実施例には、マルチキャストネットワークオンチップの構造は図2に示し、その中円形アイコンはノードルータを表し、四角形アイコンはノードルータ上にマウントした畳み込みニューラルネットワークハードウェアアクセラレータであり、6×6の下層二次元ネットワークと4×4の上層ネットワークから構成され、全部で40個のノードルータが含まれ、その中下層二次元ネットワークは全部で36個のノードルータがあり、3×3の子ネットワークを単位に四つのマルチキャスト領域に分割し、図2の中の点線で囲まれた四つの領域のようになり、個々の領域内は一つ中間ノードルータR3と複数の普通ノードルータR2を含み、普通ノードルータR2は五つの水平転送方向があり、中間ノードルータR3は五つの水平転送方向と一つの上り転送方向があり、上層ネットワークはいずれも転送ノードルータR1であり、転送ノードルータR1は五つの水平転送方向と一つの下向き転送方向があり、個々の領域内の中間ノードルータR3は相応の転送ノードルータR1とは相互接続し、マルチキャストネットワークオンチップの構造は転送する情報が一つのノードルータから同時に多数のノードルータに転送することが実現でき、このように情報転送の効率は大きく高め、畳み込みニューラルネットワーク計算プロセスの再利用可能な情報の転送の速さを高め、畳み込みニューラルネットワーク計算の並行性を高める。
本実例で採用したマルチキャストネットワークオンチップ規模は使用している畳み込みニューラルネットワークの大きさによって設定し、実際の状況では計算で使用している畳み込みニューラルネットワークの種類が異なるため、実際の状況によってマルチキャストネットワークオンチップの規模を設定し、6×6の下層二次元ネットワークと4×4の上層ネットワークが含まれているが、それだけに限らない双層ネットワーク構造である。
畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ下層二次元ネットワークの36個のノードルータと接続していて、
その動作方式は下記のとおりであり:
ステップ1、畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、
ステップ2、第一と第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが第一の畳み込み層計算を行い:
ステップ2.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算して第一特徴図データを獲得し、
ステップ2.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データに対して畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ3、第一、第二、第三および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い:
ステップ3.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.2、、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算して、さらに活性化関数計算を行って二つのモードでの第二特徴図データを獲得し、
ステップ3.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードの第二特徴図データを獲得し、
ステップ4、第一、第二、第三、第四および第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ4.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データに対して畳み込み計算してから畳み込み結果を獲得し、
ステップ4.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.5、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ4.6、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ5、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ5.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データに対して活性化関数計算してから活性化結果を獲得し、活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に第一の初歩的な結果に対して活性化関数計算を行い第一活性化結果を獲得して格納し、
ステップ5.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第二の初歩的な結果を獲得し、第二の初歩的な結果を活性化関数計算を行い、第二出力結果を獲得し、
ステップ5.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第三の初歩的な結果を獲得し、第三の初歩的な結果に対して活性化関数計算をし、第三出力結果を獲得し、
ステップ5.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納する。
その動作方式は下記のとおりであり:
ステップ1、畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、
ステップ2、第一と第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが第一の畳み込み層計算を行い:
ステップ2.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算して第一特徴図データを獲得し、
ステップ2.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データに対して畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ3、第一、第二、第三および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い:
ステップ3.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.2、、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算して、さらに活性化関数計算を行って二つのモードでの第二特徴図データを獲得し、
ステップ3.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードの第二特徴図データを獲得し、
ステップ4、第一、第二、第三、第四および第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ4.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データに対して畳み込み計算してから畳み込み結果を獲得し、
ステップ4.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.5、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ4.6、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ5、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ5.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データに対して活性化関数計算してから活性化結果を獲得し、活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に第一の初歩的な結果に対して活性化関数計算を行い第一活性化結果を獲得して格納し、
ステップ5.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第二の初歩的な結果を獲得し、第二の初歩的な結果を活性化関数計算を行い、第二出力結果を獲得し、
ステップ5.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第三の初歩的な結果を獲得し、第三の初歩的な結果に対して活性化関数計算をし、第三出力結果を獲得し、
ステップ5.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納する。
例えば、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
該当動作方式は数字図形の識別時間を大きく低減し、再構築可能な設計は拡張性を高め、マルチキャストネットワークオンチップを通してデータを転送し、計算と通信を完全に分離し、再利用範囲を計算ユニットの再利用可能から計算と通信ユニット全て再利用可能のレベルに拡張し、再利用設計のレベルを大きく高めた。
表1で示すように、本発明は一枚の図形を識別するシミュレート時間は0.16735msであり、実験の中のFPGAに基づいたCNN畳み込みニューラルネットワークが一枚の図形を識別の所要時間0.272msと比較して、本発明は比較試験に対して一枚の図形を識別する速さが38%を高め、本発明実例では10000枚の図形を識別するシミュレート時間は1673.5msであり、実験の中のFPGAに基づいたCNN畳み込みニューラルネットワークが10000枚の図形を識別の所要時間2912msと比較して、本発明は比較試験に対して10000枚の図形を識別する速さが43%を高め、
表2で示すように、本発明は1枚の図形の識別の所要時間が0.16735msであり、その中の第一層の畳み込み層の所要時間が0.03485msであり、第二層の畳み込み層の所要時間が0.09543msであり、第一層の全接続層の所要時間が0.03522msであり、第二層の全接続層の所要時間が0.00185msである。本発明は10枚の図形の識別の所要時間が1.6735msであり、その中第一層の畳み込み層の所要時間が0.3485msであり、第二層の畳み込み層の所要時間が0.9543msであり、第一層の全接続層の所要時間が0.3522msであり、第二層の全接続層の所要時間が0.0185msである。本発明は100枚の図形の識別の所要時間が16.735msであり、その中第一層の畳み込み層の所要時間が3.485msであり、第二層の畳み込み層の所要時間が9.543msであり、第一層の全接続層の所要時間が3.522msであり、第二層の全接続層の所要時間が0.185msである。
Claims (2)
- マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータであり、前記マルチキャストネットワークオンチップはN×Mの下層二次元ネットワークとL×Sの上層ネットワークから構成され(MとNは2以上の整数であり、LとSは1以上の整数であり、かつ1≦L<N、1≦S<M)、
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータを含み、前記普通ノードルータは五つの水平転送方向が含まれ、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、個々の前記転送ノードルータはそれぞれ五つの水平転送方向と一つの下向き転送方向にデータ転送を行い、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続し、その中、五つの水平転送方向は、前後左右の四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータには、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
前記畳み込みニューラルネットワークハードウェアアクセラレータは初期化段階で五つのモードに分けるように配置され、個々のモードでは少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
第一種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n個の特徴図メモリ(1≦n≦N)および結果メモリに分け、それに目標図のデータを前記目標図メモリに書き込み、前記記憶制御モジュールは第一の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに一種の活性化関数を設定し、
第二種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−1個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第二の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第三種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第三の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第四種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、n−2個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第四の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第五種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリ、活性化関数モジュールを使用しなく、
個々の畳み込みニューラルネットワークハードウェアアクセラレータは下記方式で演算する:
(1)第一の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記目標図メモリから前記目標図データを読み出し、前記出力モジュールと再構築可能計算モジュールに転送し、前記出力処理モジュールは前記目標図データをパッケージング処理を行い前記通信インタフェースモジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを獲得し、前記記憶制御モジュールは第一の特徴図データを第一の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記入力処理モジュールが第一種のモードでの通信インタフェースモジュールからパッケージデータを受け取り、デパッケージング処理を行い、目標図データを獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを得、前記記憶制御モジュールは前記第一の特徴図データを第一の特徴図メモリに格納し、
(2)第二の畳み込み層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは第一の特徴図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは当該第二の特徴図データを第二の特徴図メモリに格納し、前記出力モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力モジュールに転送し、前記出力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送し、活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記第二の特徴データを第二の特徴図メモリに格納し、前記出力処理モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードの第一の特徴図データと第二種のモードの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得して記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードでの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
(3)最初の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記入力処理モジュールは順次に第二種のモード、第三種のモード及び第四種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、三つのモードでの畳み込み結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは三つのモードでの畳み込み結果の累積計算した累積結果を獲得してから前記出力処理モジュールに転送し、前記出力処理モジュールは累積結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
それ以外には、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データを畳み込み計算した畳み込み結果を前記再構築可能計算モジュールに転送し、前記入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第五種のモードでの累積結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは累積結果と畳み込み結果との同時に累積計算した第三の特徴図データを獲得し、前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第三の特徴図データを第三の特徴図メモリに格納し、
(4)第二の全接続層の計算:
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第三の特徴図メモリから前記第三特徴図データを読み出し、活性化関数計算を行うようにそれぞれ前記活性化関数モジュールに転送し、活性化結果を獲得してから前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは前記活性化結果に対して畳み込み計算を行い、第一の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第一の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第一の出力結果を前記結果メモリに書き込み、前記出力処理モジュールは前記活性化結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第二の初歩結果を獲得して前記活性化関数モジュールに転送し、活性化計算を行い、第二の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第二の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第三の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第三の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第三の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、前記第二の出力結果と前記第三の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは順次に前記第二の出力結果と前記第三の出力結果を前記結果メモリに書き込み、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。 - マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータの動作方式であり、前記マルチキャストネットワークオンチップはN×Mの下層二次元ネットワークとL×Sの上層ネットワークから構成され(その中MとNは2以上の整数であり、LとSは1以上の整数であり、かつ1≦L<N、1≦S<M)、
前記下層二次元ネットワークは全部でN×M個のノードルータを有し、L×S個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータが含まれ、前記普通ノードルータは五つの水平転送方向を含み、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、前記転送ノードルータは五つの水平転送方向と一つの下向き転送方向を含み、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続、その中、五つの水平転送方向は前後左右四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである:
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、畳み込み演算のプロセスは以下のとおりであり:
ステップ1、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、個々のモードには少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
ステップ2、第一と第二のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の畳み込み計算を行い、
ステップ2.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ2.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記目標図データを畳み込み計算してから活性化関数計算を行って第一特徴図データを獲得し、
ステップ3、第一、第二、第三および第四のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い、
ステップ3.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ3.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算し、さらに活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ3.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ4、第一、第二、第三、第四および第五種のモードでの前記畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ4.1カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ4.5、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ4.6、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ5、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ5.1、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データにを活性化関数計算してから活性化結果を獲得し、そして前記活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に前記第一の初歩的な結果を活性化関数計算し、第一の活性化結果を獲得して格納し、
ステップ5.2、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第二の初歩的な結果を獲得し、前記第二の初歩的な結果を活性化関数計算を行い、第二の出力結果を獲得し、
ステップ5.3、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第三の初歩的な結果を獲得し、前記第三の初歩的な結果を活性化関数計算し、第三の出力結果を獲得し、
ステップ5.4、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納し、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810036727.3A CN108256628B (zh) | 2018-01-15 | 2018-01-15 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
CN201810036727.3 | 2018-01-15 | ||
PCT/CN2018/111268 WO2019137060A1 (zh) | 2018-01-15 | 2018-10-22 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021510219A true JP2021510219A (ja) | 2021-04-15 |
JP6960700B2 JP6960700B2 (ja) | 2021-11-05 |
Family
ID=62740693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020537478A Active JP6960700B2 (ja) | 2018-01-15 | 2018-10-22 | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6960700B2 (ja) |
CN (1) | CN108256628B (ja) |
WO (1) | WO2019137060A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
CN109254946B (zh) * | 2018-08-31 | 2021-09-17 | 郑州云海信息技术有限公司 | 图像特征提取方法、装置、设备及可读存储介质 |
CN109150731B (zh) * | 2018-09-19 | 2020-09-18 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
WO2020160653A1 (en) * | 2019-02-06 | 2020-08-13 | Lei Zhang | Method and system for convolution model hardware accelerator |
CN110598844A (zh) * | 2019-08-06 | 2019-12-20 | 天津大学 | 一种基于fpga的并行卷积神经网络加速器及加速方法 |
CN110689122B (zh) * | 2019-09-25 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种存储系统和方法 |
TWI717892B (zh) * | 2019-11-07 | 2021-02-01 | 財團法人工業技術研究院 | 動態多組態cnn加速器架構與操作方法 |
CN111178518A (zh) * | 2019-12-24 | 2020-05-19 | 杭州电子科技大学 | 一种基于fpga的软硬件协同的加速方法 |
CN111245730B (zh) * | 2020-01-15 | 2021-10-08 | 中山大学 | 一种片上网络的路由系统及通信方法 |
CN111401532A (zh) * | 2020-04-28 | 2020-07-10 | 南京宁麒智能计算芯片研究院有限公司 | 一种卷积神经网络推理加速器及加速方法 |
CN112152947B (zh) * | 2020-08-21 | 2021-07-20 | 北京百度网讯科技有限公司 | 处理器及实现方法、电子设备和存储介质 |
CN114363245B (zh) * | 2020-09-30 | 2024-04-26 | 北京灵汐科技有限公司 | 众核的片上网络数据传输方法、装置、设备及介质 |
CN114239816B (zh) * | 2021-12-09 | 2023-04-07 | 电子科技大学 | 一种卷积神经网络-图卷积神经网络可重构硬件加速架构 |
CN114844757B (zh) * | 2022-02-24 | 2023-11-24 | 电子科技大学长三角研究院(湖州) | 一种面向分布式并行运算类算法的片上网络设计方法 |
CN116863490B (zh) * | 2023-09-04 | 2023-12-12 | 之江实验室 | 面向FeFET存储阵列的数字识别方法及硬件加速器 |
CN118350429B (zh) * | 2024-06-12 | 2024-08-30 | 山东浪潮科学研究院有限公司 | 基于risc-v的多模式卷积神经网络加速器及加速方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216285A (ja) * | 2000-01-31 | 2001-08-10 | Nagoya Industrial Science Research Inst | ニューラルネットワーク演算方法及び装置 |
US20100241601A1 (en) * | 2009-03-20 | 2010-09-23 | Irvine Sensors Corporation | Apparatus comprising artificial neuronal assembly |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681628B (zh) * | 2016-01-05 | 2018-12-07 | 西安交通大学 | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 |
CN109328361B (zh) * | 2016-06-14 | 2020-03-27 | 多伦多大学管理委员会 | 用于深度神经网络的加速器 |
CN106951961B (zh) * | 2017-02-24 | 2019-11-26 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN106953800B (zh) * | 2017-04-21 | 2019-12-17 | 中国人民解放军国防科学技术大学 | 一种基于片上网络的自适应垂直路由方法及路由单元 |
CN107273970B (zh) * | 2017-05-11 | 2020-06-19 | 西安交通大学 | 支持在线学习的卷积神经网络的可重构平台及其构建方法 |
CN107273969B (zh) * | 2017-05-11 | 2020-06-19 | 西安交通大学 | 一种参数化可扩展的神经网络全连接层多层互连结构 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
CN107451659B (zh) * | 2017-07-27 | 2020-04-10 | 清华大学 | 用于位宽分区的神经网络加速器及其实现方法 |
CN108256628B (zh) * | 2018-01-15 | 2020-05-22 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方法 |
-
2018
- 2018-01-15 CN CN201810036727.3A patent/CN108256628B/zh active Active
- 2018-10-22 JP JP2020537478A patent/JP6960700B2/ja active Active
- 2018-10-22 WO PCT/CN2018/111268 patent/WO2019137060A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216285A (ja) * | 2000-01-31 | 2001-08-10 | Nagoya Industrial Science Research Inst | ニューラルネットワーク演算方法及び装置 |
US20100241601A1 (en) * | 2009-03-20 | 2010-09-23 | Irvine Sensors Corporation | Apparatus comprising artificial neuronal assembly |
Also Published As
Publication number | Publication date |
---|---|
JP6960700B2 (ja) | 2021-11-05 |
WO2019137060A1 (zh) | 2019-07-18 |
CN108256628A (zh) | 2018-07-06 |
CN108256628B (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6960700B2 (ja) | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 | |
US20230325348A1 (en) | Performing concurrent operations in a processing element | |
CN105892989B (zh) | 一种神经网络加速器及其运算方法 | |
US20210406010A1 (en) | Processor and control method for processor | |
CN108416437B (zh) | 用于乘加运算的人工神经网络的处理系统及方法 | |
US20170236053A1 (en) | Configurable and Programmable Multi-Core Architecture with a Specialized Instruction Set for Embedded Application Based on Neural Networks | |
CN107239824A (zh) | 用于实现稀疏卷积神经网络加速器的装置和方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN110163358A (zh) | 一种计算装置及方法 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN110766127B (zh) | 神经网络计算专用电路及其相关计算平台与实现方法 | |
CN117933327A (zh) | 处理装置、处理方法、芯片及电子装置 | |
CN110276447A (zh) | 一种计算装置及方法 | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
CN110163350A (zh) | 一种计算装置及方法 | |
Gao et al. | Customized high performance and energy efficient communication networks for AI chips | |
Duan et al. | Energy-efficient architecture for FPGA-based deep convolutional neural networks with binary weights | |
Campbell et al. | 3D wafer stack neurocomputing | |
CN109978143B (zh) | 一种基于simd架构的堆栈式自编码器及编码方法 | |
US11687831B1 (en) | Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference | |
Lo et al. | Energy-efficient accelerator design with 3d-sram and hierarchical interconnection architecture for compact sparse cnns | |
CN110222819B (zh) | 一种用于卷积神经网络加速的多层数据分区域联合计算方法 | |
CN110765413B (zh) | 矩阵求和结构及神经网络计算平台 | |
CN111291884B (zh) | 神经网络剪枝方法、装置、电子设备及计算机可读介质 | |
Yin et al. | A reconfigurable accelerator for generative adversarial network training based on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200706 |
|
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: 20210907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211005 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6960700 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |