(57)【要約】  本発明はマルチキャストネットワークオンチップに基づいた再構成可能畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式を公開する。マルチキャストネットワークオンチップは下層ネットワークと上層ネットワークで構成された双層ネットワークオンチップであり、一つの元ノードから同時に多数の目的ノードへの転送を実現する。マルチキャストネットワークオンチップに基づいた再構成可能畳み込みニューラルネットワークは通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、設定モジュール、データメモリ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含んでいる。本発明は畳み込みニューラルネットワークハードウェアアクセラレータを用いてマルチキャストネットワークオンチップ上で転送するデータの加速処理を行い、ニューラルネットワーク計算の平行性を十分に発掘し、さらに早い数字識別の速さを獲得し、再利用可能性と拡張性を増強する。
2021510219.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータであり、前記マルチキャストネットワークオンチップはＮ×Ｍの下層二次元ネットワークとＬ×Ｓの上層ネットワークから構成され（ＭとＮは２以上の整数であり、ＬとＳは１以上の整数であり、かつ１≦Ｌ＜Ｎ、１≦Ｓ＜Ｍ）、
前記下層二次元ネットワークは全部でＮ×Ｍ個のノードルータを有し、Ｌ×Ｓ個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータを含み、前記普通ノードルータは五つの水平転送方向が含まれ、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、個々の前記転送ノードルータはそれぞれ五つの水平転送方向と一つの下向き転送方向にデータ転送を行い、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続し、その中、五つの水平転送方向は、前後左右の四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである：
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータには、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
前記畳み込みニューラルネットワークハードウェアアクセラレータは初期化段階で五つのモードに分けるように配置され、個々のモードでは少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
第一種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ個の特徴図メモリ（１≦ｎ≦Ｎ）および結果メモリに分け、それに目標図のデータを前記目標図メモリに書き込み、前記記憶制御モジュールは第一の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに一種の活性化関数を設定し、
第二種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−１個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第二の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第三種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−２個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第三の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第四種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−２個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第四の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第五種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリ、活性化関数モジュールを使用しなく、
個々の畳み込みニューラルネットワークハードウェアアクセラレータは下記方式で演算する：
（１）第一の畳み込み層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記目標図メモリから前記目標図データを読み出し、前記出力モジュールと再構築可能計算モジュールに転送し、前記出力処理モジュールは前記目標図データをパッケージング処理を行い前記通信インタフェースモジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを獲得し、前記記憶制御モジュールは第一の特徴図データを第一の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記入力処理モジュールが第一種のモードでの通信インタフェースモジュールからパッケージデータを受け取り、デパッケージング処理を行い、目標図データを獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを得、前記記憶制御モジュールは前記第一の特徴図データを第一の特徴図メモリに格納し、
（２）第二の畳み込み層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは第一の特徴図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは当該第二の特徴図データを第二の特徴図メモリに格納し、前記出力モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力モジュールに転送し、前記出力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送し、活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記第二の特徴データを第二の特徴図メモリに格納し、前記出力処理モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードの第一の特徴図データと第二種のモードの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得して記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードでの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
（３）最初の全接続層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記入力処理モジュールは順次に第二種のモード、第三種のモード及び第四種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、三つのモードでの畳み込み結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは三つのモードでの畳み込み結果の累積計算した累積結果を獲得してから前記出力処理モジュールに転送し、前記出力処理モジュールは累積結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
それ以外には、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データを畳み込み計算した畳み込み結果を前記再構築可能計算モジュールに転送し、前記入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第五種のモードでの累積結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは累積結果と畳み込み結果との同時に累積計算した第三の特徴図データを獲得し、前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第三の特徴図データを第三の特徴図メモリに格納し、
（４）第二の全接続層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第三の特徴図メモリから前記第三特徴図データを読み出し、活性化関数計算を行うようにそれぞれ前記活性化関数モジュールに転送し、活性化結果を獲得してから前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは前記活性化結果に対して畳み込み計算を行い、第一の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第一の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第一の出力結果を前記結果メモリに書き込み、前記出力処理モジュールは前記活性化結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第二の初歩結果を獲得して前記活性化関数モジュールに転送し、活性化計算を行い、第二の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第二の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第三の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第三の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第三の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、前記第二の出力結果と前記第三の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは順次に前記第二の出力結果と前記第三の出力結果を前記結果メモリに書き込み、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
【請求項２】
マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータの動作方式であり、前記マルチキャストネットワークオンチップはＮ×Ｍの下層二次元ネットワークとＬ×Ｓの上層ネットワークから構成され（その中ＭとＮは２以上の整数であり、ＬとＳは１以上の整数であり、かつ１≦Ｌ＜Ｎ、１≦Ｓ＜Ｍ）、
前記下層二次元ネットワークは全部でＮ×Ｍ個のノードルータを有し、Ｌ×Ｓ個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータが含まれ、前記普通ノードルータは五つの水平転送方向を含み、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、前記転送ノードルータは五つの水平転送方向と一つの下向き転送方向を含み、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続、その中、五つの水平転送方向は前後左右四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである：
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、畳み込み演算のプロセスは以下のとおりであり：
ステップ１、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、個々のモードには少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
ステップ２、第一と第二のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の畳み込み計算を行い、
ステップ２．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ２．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記目標図データを畳み込み計算してから活性化関数計算を行って第一特徴図データを獲得し、
ステップ３、第一、第二、第三および第四のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い、
ステップ３．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算し、さらに活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ３．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ４、第一、第二、第三、第四および第五種のモードでの前記畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ４．１カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．５、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ４．６、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ５、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ５．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データにを活性化関数計算してから活性化結果を獲得し、そして前記活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に前記第一の初歩的な結果を活性化関数計算し、第一の活性化結果を獲得して格納し、
ステップ５．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第二の初歩的な結果を獲得し、前記第二の初歩的な結果を活性化関数計算を行い、第二の出力結果を獲得し、
ステップ５．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第三の初歩的な結果を獲得し、前記第三の初歩的な結果を活性化関数計算し、第三の出力結果を獲得し、
ステップ５．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納し、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路ネットワークオンチップの通信技術領域に属し、特にマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式に関与する。
【背景技術】
【０００２】
畳み込みニューラルネットワークは人工ニューラルネットワークを源に由来する。多層感知機器として、図形の並行移動、比例ズーム、傾斜の変形に強い適応性を持ち、図形の特徴を迅速に抽出できる。重み付け値共有ネットワーク構造を採用し、この構造は生物ニューラルネットワーク構造に強い相似性を持ち、このような構造は重み付け値の数量を減少し、ネットワークモデルの複雑度を低減し、ネットワークに対して多次元画像を入力するとこの長所が更に明確にしていて、画像は直接ネットワークの入力として、伝統的な識別アルゴリズムの複雑な特徴抽出とデータ再構築プロセスが避けられる。
【０００３】
数字の書き方が簡単であり、十種類しかないが、数字の書き方が比較的に簡単であるため、差別が比較的に小さいであり、手書きの数字の形が差別が多く識別の難易度が高くなり、精度は比較的に低い。畳み込みニューラルネットワークを用いて識別精度を大きく高め、現状識別率が９９．３３％に達している。しかし、ある識別プロセスには、識別の速さおよび高い精度が求められている。
【０００４】
しかしながら、ソフトウェア的な畳み込みニューラルネットワークで図形を識別に時間がかかり、ニューラルネットワークの並行性は十分に発揮できなく、リアルタイム性と電力消費量の面では実際の要求に満たさない。ハードウェアに基づいた畳み込みニューラルネットワークの図形識別の面では、ＦＰＧＡでニューラルネットワークを実現するのは新たな方向である。コンピュータエンジニアリングジャーナル第４３巻第一期の《ＦＰＧＡに基づいた畳み込みニューラルネットワークアクセラレータ》ではＦＰＧＡに基づいた畳み込みニューラルネットワークアクセラレータの実現方法を提出し、このアクセラレータはニューラルネットワークの計算で比較的に高い速度を獲得したが、ニューラルネットワークの計算時には畳み込み計算の並行性の利用はそれほど高くなく、それにゆえ畳み込み計算の面ではまだアップする区間が大きく、同時にこのアクセラレータは通信と計算を分離していなく、再利用性が強くない。
【発明の概要】
【０００５】
本発明は前記の現状の技術に不足なところを解決するため、マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式を提出し、畳み込みニューラルネットワークハードウェアアクセラレータを用いてマルチキャストネットワークオンチップ上転送するデータの処理の加速を期待し、ニューラルネットワークの並行性は十分に発揮し、更に早い数字識別速度を獲得し、再利用可能性と拡張性を高める。
【０００６】
本発明は上記目的を達すために採用する技術方式は下記となる：
本発明はマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータを提供する、前記マルチキャストネットワークオンチップはＮ×Ｍの下層二次元ネットワークとＬ×Ｓの上層ネットワークから構成され（ＭとＮは２以上の整数であり、ＬとＳは１以上の整数であり、かつ１≦Ｌ＜Ｎ、１≦Ｓ＜Ｍ）、
前記下層二次元ネットワークは全部でＮ×Ｍ個のノードルータを有し、Ｌ×Ｓ個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータを含み、前記普通ノードルータは五つの水平転送方向が含まれ、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、個々の前記転送ノードルータはそれぞれ五つの水平転送方向と一つの下向き転送方向にデータ転送を行い、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続し、その中、五つの水平転送方向は、前後左右の四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである：
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータには、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構築可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
前記畳み込みニューラルネットワークハードウェアアクセラレータは初期化段階で五つのモードに分けるように配置され、個々のモードでは少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
第一種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ個の特徴図メモリ（１≦ｎ≦Ｎ）および結果メモリに分け、それに目標図のデータを前記目標図メモリに書き込み、前記記憶制御モジュールは第一の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに一種の活性化関数を設定し、
第二種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−１個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第二の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第三種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−２個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第三の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第四種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、ｎ−２個の特徴図メモリおよび結果メモリに分け、前記記憶制御モジュールは第四の重み付けデータを前記重み付けメモリに書き込み、前記活性化関数モジュールに前記活性化関数を設定し、
第五種のモードでは、前記畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリ、活性化関数モジュールを使用しなく、
個々の畳み込みニューラルネットワークハードウェアアクセラレータは下記方式で演算する：
（１）第一の畳み込み層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記目標図メモリから前記目標図データを読み出し、前記出力モジュールと再構築可能計算モジュールに転送し、前記出力処理モジュールは前記目標図データをパッケージング処理を行い前記通信インタフェースモジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを獲得し、前記記憶制御モジュールは第一の特徴図データを第一の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記入力処理モジュールが第一種のモードでの通信インタフェースモジュールからパッケージデータを受け取り、デパッケージング処理を行い、目標図データを獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記目標図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、該当畳み込みニューラルネットワークハードウェアアクセラレータが計算した第一の特徴図データを得、前記記憶制御モジュールは前記第一の特徴図データを第一の特徴図メモリに格納し、
（２）第二の畳み込み層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは第一の特徴図データを畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは当該第二の特徴図データを第二の特徴図メモリに格納し、前記出力モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第一の特徴図メモリから第一の特徴図データを読み出し、前記再構築可能計算モジュールと出力モジュールに転送し、前記出力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送し、活性化関数計算を行い、当該畳み込みニューラルネットワークハードウェアアクセラレータが計算した第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記第二の特徴データを第二の特徴図メモリに格納し、前記出力処理モジュールは前記第一の特徴図データをパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードの第一の特徴図データと第二種のモードの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得して記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種モードと第二種モードでのパッケージデータを受け取り、デパッケージング処理を行い、第一種のモードでの第一の特徴図データと第二種のモードでの第一の特徴図データを獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは二つのモードでの第一の特徴図データをそれぞれ畳み込み計算してから前記活性化関数モジュールに転送して活性化関数計算を行い、二つのモードでの第二の特徴図データを獲得し、記憶制御モジュールに転送し、前記記憶制御モジュールは前記二つのモードでの第二の特徴図データを第二の特徴図メモリに格納し、
（３）最初の全接続層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二特徴図データの畳み込み計算した畳み込み結果を前記出力処理モジュールに転送し、前記出力処理モジュールは畳み込み結果をパッケージングしてから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記入力処理モジュールは順次に第二種のモード、第三種のモード及び第四種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、三つのモードでの畳み込み結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは三つのモードでの畳み込み結果の累積計算した累積結果を獲得してから前記出力処理モジュールに転送し、前記出力処理モジュールは累積結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
それ以外には、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第二の特徴図メモリから前記第二の特徴図データを読み出し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは前記第二の特徴図データを畳み込み計算した畳み込み結果を前記再構築可能計算モジュールに転送し、前記入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、第五種のモードでの累積結果を獲得し、前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは累積結果と畳み込み結果との同時に累積計算した第三の特徴図データを獲得し、前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第三の特徴図データを第三の特徴図メモリに格納し、
（４）第二の全接続層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記記憶制御モジュールは前記第三の特徴図メモリから前記第三特徴図データを読み出し、活性化関数計算を行うようにそれぞれ前記活性化関数モジュールに転送し、活性化結果を獲得してから前記再構築可能計算モジュールと出力処理モジュールに転送し、前記再構築可能計算モジュールは前記活性化結果に対して畳み込み計算を行い、第一の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第一の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは前記第一の出力結果を前記結果メモリに書き込み、前記出力処理モジュールは前記活性化結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第二の初歩結果を獲得して前記活性化関数モジュールに転送し、活性化計算を行い、第二の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第二の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、活性化結果を獲得して前記再構築可能計算モジュールに転送し、前記再構築可能計算モジュールは活性化結果に対して畳み込み計算を行い、第三の初歩的な結果を獲得して前記活性化関数モジュールに転送し、活性化関数計算を行い、第三の出力結果を獲得して前記出力処理モジュールに転送し、前記出力処理モジュールは前記第三の出力結果をパッケージング処理してから前記通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取ってデパッケージング処理を行い、前記第二の出力結果と前記第三の出力結果を獲得して前記記憶制御モジュールに転送し、前記記憶制御モジュールは順次に前記第二の出力結果と前記第三の出力結果を前記結果メモリに書き込み、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
【０００７】
本発明はマルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータの動作方式も提供する、前記マルチキャストネットワークオンチップはＮ×Ｍの下層二次元ネットワークとＬ×Ｓの上層ネットワークから構成され（その中ＭとＮは２以上の整数であり、ＬとＳは１以上の整数であり、かつ１≦Ｌ＜Ｎ、１≦Ｓ＜Ｍ）、
前記下層二次元ネットワークは全部でＮ×Ｍ個のノードルータを有し、Ｌ×Ｓ個のブロックに分けられ、個々のブロック内は中間ノードルータと複数の普通ノードルータが含まれ、前記普通ノードルータは五つの水平転送方向を含み、前記中間ノードルータは五つの水平転送方向と一つの上り転送方向を含み、前記上層ネットワークはいずれも転送ノードルータであり、前記転送ノードルータは五つの水平転送方向と一つの下向き転送方向を含み、個々のブロック内の中間ノードルータと対応する転送ノードルータとは相互接続、その中、五つの水平転送方向は前後左右四つの方向および対応する畳み込みニューラルネットワークハードウェアアクセラレータへ転送する一つの方向であり、その特徴は以下のとおりである：
個々の前記畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ前記下層二次元ネットワーク中の一つのノードルータと接続し、畳み込み演算のプロセスは以下のとおりであり：
ステップ１、個々の前記畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、個々のモードには少なくとも一つの畳み込みニューラルネットワークハードウェアアクセラレータを有し、
ステップ２、第一と第二のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の畳み込み計算を行い、
ステップ２．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ２．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記目標図データを畳み込み計算してから活性化関数計算を行って第一特徴図データを獲得し、
ステップ３、第一、第二、第三および第四のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い、
ステップ３．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算し、さらに活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ３．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し、
ステップ４、第一、第二、第三、第四および第五種のモードでの前記畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ４．１カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．５、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ４．６、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ５、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ５．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データにを活性化関数計算してから活性化結果を獲得し、そして前記活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に前記第一の初歩的な結果を活性化関数計算し、第一の活性化結果を獲得して格納し、
ステップ５．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第二の初歩的な結果を獲得し、前記第二の初歩的な結果を活性化関数計算を行い、第二の出力結果を獲得し、
ステップ５．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第一種のモードでの活性化結果を畳み込み計算してから第三の初歩的な結果を獲得し、前記第三の初歩的な結果を活性化関数計算し、第三の出力結果を獲得し、
ステップ５．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、前記畳み込みニューラルネットワークハードウェアアクセラレータは前記第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納し、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とする。
現有の技術と比較すると、本発明の有益な技術効果は下記となり：
１、本発明のアクセラレータは畳み込みニューラルネットワーク計算の並行性を大きく高め、畳み込みニューラルネットワーク計算の速さは伝統的な畳み込みニューラルネットワークアクセラレータより明確に高め、再構築可能な設計により本発明は異なるニューラルネットワークの計算要求に対して本発明の相応の設定を行うことができ、伝統的な畳み込みニューラルネットワークでは具備していない再構築機能を具備していて、計算と通信の分離の策略は本発明の拡張性と再利用可能性が伝統的な畳み込みニューラルネットワークハードウェアアクセラレータより高くなり、計算した畳み込みニューラルネットワークの規模により本発明の拡張を行うことができる。
【０００８】
２、本発明は通信インタフェースモジュール、入力出力処理モジュールを通して、畳み込みニューラルネットワークハードウェアアクセラレータの再構築計算モジュールとマルチキャストネットワークオンチップとは相互接続し、多数の畳み込みニューラルネットワークハードウェアアクセラレータの間の通信を実現し、同時に多数の畳み込みニューラルネットワークハードウェアアクセラレータの計算がお互いに独立していて、このような設計により多数の畳み込みニューラルネットワークハードウェアアクセラレータが同時に一つの畳み込みニューラルネットワークを計算することができ、ローカルの計算結果をマルチキャストネットワークオンチップを通して、一回で他の多数の畳み込みニューラルネットワークハードウェアアクセラレータに転送でき、次の並行計算を行うことができ、このような通信と計算分離の策略と伝統的な畳み込みニューラルネットワークハードウェアアクセラレータと比較して、畳み込みニューラルネットワークの計算の並行性を大きく高め、畳み込みニューラルネットワークの計算の速さを高めた。それと同時に、通信インタフェースモジュールと入力出力処理モジュールを通して、畳み込みニューラルネットワークの計算と通信を分離し、計算と通信が相互独立とした部分となり、このような操作により、畳み込みニューラルネットワークの計算規模の要求に応じて、ネットワークオンチップの規模を相応に変更する場合、入力出力処理モジュールのみに対して設定を行い、再構築計算モジュールが新たに設計することは必要がなく、拡張時の難易度を低減し、拡張可能性とモジュールの再利用可能性を高め、伝統的なニューラルネットワークアクセラレータの拡張可能性と再利用可能性の欠陥を克服した。
【０００９】
３、本発明は再構築可能な設計を採用し、原始的な畳み込みニューラルネットワークハードウェアアクセラレータは５種類の異なる動作モードに設定でき、それぞれ第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第三種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータ、第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータである。５種類動作モードは原始的な畳み込みニューラルネットワークハードウェアアクセラレータの設定で得られ、実現した機能はお互いに異なり、例えば第一種の動作モードでの畳み込みニューラルネットワークハードウェアアクセラレータは目標図形の入力と畳み込みニューラルネットワークの計算結果の出力機能を実現でき、この二つの機能は他のモードでの畳み込みニューラルネットワークハードウェアアクセラレータには具備しなく、５種類の異なる動作モードでの畳み込みニューラルネットワークハードウェアアクセラレータを相互組み合わせて、完全な畳み込みニューラルネットワークの計算が実現でき、このような設計により異なる畳み込みニューラルネットワークを計算する場合、原始的な畳み込みニューラルネットワークハードウェアアクセラレータを複数の異なる動作モードに設定することのみで、相応の組み合わせを行い、異なる種類の畳み込みニューラルネットワークを計算することができる。５種類異なる動作モードの設計により本発明が伝統的な畳み込みニューラルネットワークアクセラレータに対して再構築可能の長所が具備する。同時に５種類異なる動作モードの設定により異なる計算ステップの畳み込みニューラルネットワークハードウェアアクセラレータの機能を簡略に分類し、畳み込みニューラルネットワークハードウェアアクセラレータの動作効率を高めた。
【００１０】
４、本発明の活性化関数モジュールは異なる類型の活性化関数ロジックに設定ができ、対応する畳み込みニューラルネットワークの計算要求に満たして、本発明は畳み込みニューラルネットワークの計算時に活性化関数計算プロセスの再構築可能性を実現した。
【図面の簡単な説明】
【００１１】
【図１】本実施例で採用した手書き識別ネットワークフロー図
【図２】本実施例で採用した下層６×６、上層２×２規模のマルチキャストネットワークオンチップ構成図
【図３】本実施例のマルチキャストネットワークオンチップマッピング図
【図４】本発明の再構築可能な畳み込みニューラルネットワークハードウェアアクセラレータ構造図
【図５】第一種のモードでのニューラルネットワークハードウェアアクセラレータ構造図
【図６】第二種のモードでのニューラルネットワークハードウェアアクセラレータ構造図
【図７】第三種のモードでのニューラルネットワークハードウェアアクセラレータ構造図
【図８】第四種のモードでのニューラルネットワークハードウェアアクセラレータ構造図
【図９】第五種のモードでのニューラルネットワークハードウェアアクセラレータ構造図。
【発明を実施するための形態】
【００１２】
本実施例はマルチキャストネットワークオンチップアーキテクチャを採用して畳み込みニューラルネットワークの並行性を高め、手書きアラビア数字の識別の速さを加速する目的に至る。本実施例で採用した畳み込みニューラルネットワークは手書き数字識別ネットワークであり、その構造は二層の畳み込み層、二層の全接続層が含まれ、該当手書き識別ネットワークの構造は図１に示す。
【００１３】
本実施例の手書き識別機能はＭＮＩＳＴ（Ｍｉｘｅｄ  Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄａｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ  ｄａｔａｂａｓｅ）手書きライブラリを用いて完成し、ＭＮＩＳＴはグーグルラブとニューヨーク大学ケーロン研究所が建てた手書き数字トレーニングライブラリである。全体のトレーニングライブラリはトレーニングライブラリとテストライブラリが含まれ、トレニンーグライブライには６００００枚の手書き数字画像があり、テストライブラリには１００００枚がある。ＭＮＩＳＴ手書き数字画像の大きさは２８×２８であり、画像の特徴を抽出プロセスのエッジ影響を減少するために、ゼロ埋めを通して２９×２９の大きさに拡張する。このように入力層ニューラルノードの個数が２９×２９イコール８４１個である。
【００１４】
図１に示すように、該当畳み込みニューラルネットワークの計算は四層計算となり、第一層の計算は畳み込み層計算であり、入力層は８４１個のニューラルノードとなり、出力は６個の１３×１３の特徴図で全部で１０４１個のニューラルノードとなり、第二層は畳み込み層計算であり、入力層は第一個の畳み込み層が出力した１６個の１３×１３の特徴図で全部で１０４１個のニューラルノードとなり、出力は５０個の５×５の特徴図で全部で１２５０個のニューロンとなり、第三層は全接続層計算であり、入力層は第二個の畳み込み層が出力した５０個の５×５の特徴図で全部で１２５０個のニューロンとなり、出力は１００個のニューロンであり、第四層は全接続層計算であり、入力層は最初の全接続層が出力した１００個のニューロンであり、出力は１０個のニューロンである。
【００１５】
本発明はマルチキャストネットワークオンチップと畳み込みニューラルネットワークハードウェアアクセラレータの相互結合を採用し、畳み込みニューラルネットワークの計算を実現する。本実施例では、マルチキャストネットワークオンチップの構造は図２に示し、その中の円形アイコンはノードルータを表し、四角形アイコンはノードルータ上にマウントした畳み込みニューラルネットワークハードウェアアクセラレータを表し、６×６の下層二次元ネットワークと４×４の上層ネットワークから構成され、全部で４０個のノードルータが含まれ、その中には下層二次元ネットワークは全部で３６個のノードルータがあり、３×３の子ネットワークを単位に四つのマルチキャスト領域に分けられ、図２の中の点線で囲まれた四つの領域であり、個々の領域内は一つの中間ノードルータＲ３と複数の普通ノードルータＲ２を含み、普通ノードルータＲ２が五つの水平転送方向を含み、中間ノードルータＲ３は五つの水平転送方向と一つの上り転送方向を含み、上層ネットワークはいずれも転送ノードルータＲ１であり、転送ノードルータＲ１は五つの水平転送方向と一つの下向き転送方向を含み、個々の領域内の中間ノードルータＲ３と相応の転送ノードルータＲ１とは相互接続し、マルチキャストネットワークオンチップ構造は転送する情報を一つのノードルータから同時に多数のノードルータに転送することが実現でき、このように情報転送の効率を大きく高め、畳み込みニューラルネットワーク計算プロセスの中に再利用可能な情報転送の速さを高め、畳み込みニューラルネットワーク計算の並行性を高める。
【００１６】
本実施例で採用したマルチキャストネットワークオンチップ規模は使用している畳み込みニューラルネットワークの大きさにより設定し、実際の状況では計算で使用する畳み込みニューラルネットワークの種類が異なるため、実際状況に応じてマルチキャストネットワークオンチップの規模を設定し、６×６の下層二次元ネットワークと４×４の上層ネットワークが含まれているが、それだけに限らない双層ネットワーク構造である。
【００１７】
畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ下層二次元ネットワーク中の３６個ノードルータと接続し、畳み込みニューラルネットワークハードウェアアクセラレータの内部構造は図４に示し、通信インタフェースモジュール、入力処理モジュール、出力処理モジュール、データメモリグループ、再構造可能計算モジュール、記憶制御モジュール、活性化関数モジュール、重み付けメモリを含み、
初期化段階では、畳み込みニューラルネットワークハードウェアアクセラレータは５種類のモードに設定し：
第一種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、三つの特徴図メモリ（それぞれ、特徴図１、特徴図２、特徴図３）と結果メモリに分割していて、目標図データを目標図メモリに書き込み、記憶制御モジュールは第一の重み付けデータを重み付けメモリに書き込み、活性化関数モジュールには活性化関数をＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅｒ  Ｕｎｉｔｓ）関数に設定し、このモードでのアクセラレータの構造は図５に示し、
第二種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、二つの特徴図メモリ（それぞれ特徴図１、特徴図２）と結果メモリに分割していて、記憶制御モジュールは第二の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅｒ  Ｕｎｉｔｓ）関数に設定し、このモードでのアクセラレータの構造は図６に示し、
第三種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ（特徴図２）と結果メモリに分割していて、記憶制御モジュールは第三の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅｒ  Ｕｎｉｔｓ）関数に設定し、その構造は図７に示し、
第四種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループを目標図メモリ、一つの特徴図メモリ（特徴図２）と結果メモリに分割していて、記憶制御モジュールは第四の重み付けデータを重み付けメモリに書き込み、活性化関数モジュール中には活性化関数をＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅｒ  Ｕｎｉｔｓ）関数に設定し、具体の構造は図８に示し、
第五種のモードでは、畳み込みニューラルネットワークハードウェアアクセラレータの記憶制御モジュールはデータメモリグループ、重み付けメモリと活性化関数モジュールを使用しなく、その構造は図９に示し、
本実例では、５種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれマルチキャストネットワークオンチップに対応するノードルータ上にマウントしていて、具体的なマルチキャストネットワークオンチップのマッピング方法は図３に示すように、その中ノードルータアイコン上の大文字数字はノードルータでマウントしている畳み込みニューラルネットワークハードウェアアクセラレータのモード番号を表し、大文字数字がない場合、該当ノードルータとそれにマウントしている畳み込みニューラルネットワークハードウェアアクセラレータと疎通していなく、その第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが１個で、第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが５個で、第三種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが１６個で、第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが４個で、第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが４個である。その中マルチキャストネットワークオンチップの上層ネットワークは畳み込みニューラルネットワークハードウェアアクセラレータをマウントしていない。本実施例で採用している畳み込みニューラルネットワークハードウェアアクセラレータマッピング方式は使用している手書き識別畳み込みニューラルネットワークハードウェアアクセラレータの規模により設定していて、本発明は異なる畳み込みニューラルネットワークによって異なる数目の５種類のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを採用していて、本実施例で採用しているマッピング方式と各種のモードでの畳み込みニューラルネットワークアクセラレータの数目が含まれ、それだけに限らない。５種類の異なる動作モードでのニューラルネットワークハードウェアアクセラレータを相互合わせて完全な畳み込みニューラルネットワーク計算が実現でき、このような設計により、異なる畳み込みニューラルネットワークを計算時には、原始的な畳み込みニューラルネットワークハードウェアアクセラレータを複数の異なる動作モードに設定するのみで、対応する組み合わせを行い、異なる種類の畳み込みニューラルネットワークを計算することができる。
【００１８】
第一の畳み込み層計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは目標図メモリから目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、出力処理モジュールは目標図データをパッケージング処理を行い、目標図データと転送目的のノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントしているノードの通信インタフェースモジュールに転送し、再構造可能計算モジュールは目標図データを受け取り、この時には再構築可能計算モジュールの通路選択機器は掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算し、さらに累積ロジック計算（すなわち完全な畳み込み計算）を行い、再構築可能計算モジュールは目標図データに対して畳み込み計算が完了してから活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、第一特徴図データを獲得し、畳み込み計算の並行度を高めるために、本実施例は掛け算ロジックユニット内に二つの乗算器を内蔵していて、同時に掛け算計算を行うことができ、第一層の畳み込み層計算時には、二つの乗算器が並行的に目標図データに対して掛け算ロジック計算を行っていて、本発明は掛け算ロジックユニットには多数の乗算器を内蔵することができ、本実施例の二つの乗算器が含まれているが、それだけに限定しなく、多数の乗算器の並行的な処理は畳み込み計算時の並行度を大きく高め、畳み込み計算の速さを高める。そのあとには、記憶制御モジュールは活性化関数から転送してきた第一特徴図データを受け取ってから、第一特徴図データを第一個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは第一種のモードでの通信インタフェースモジュールが転送してきたパッケージデータを受け取りデパッケージング処理を行い、パッケージデータ中の目標図データ抽出し、目標図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは目標図データを受け取り、掛け算ロジックユニットに接続し、目標図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行ってから活性化関数モジュールに転送しＲｅＬＵ活性化関数計算を行い、第一特徴図データを獲得し、記憶制御モジュールは活性化関数モジュールから転送してきた第一特徴図データを受け取り、第一特徴図データを第一個の特徴図メモリに書き込み、
第二の畳み込み層計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、再構築可能計算モジュールの通路選択ユニットは第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行ってから活性化関数モジュールに転送しＲｅＬＵ活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数モジュールから転送してきた第二特徴図データを受け取ってから、第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理を行い、第一特徴図データと転送目的ノード情報をパッケージングし、通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップ上に転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第一個の目標図メモリから第一個の目標図データを読み出し、出力処理モジュールと再構造可能計算モジュールに転送し、入力処理モジュールは第一種のモードとその他の第二種のモードでのパッケージデータを受け取り、デパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図と第二種のモードでの第一特徴図を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行ってから活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第二特徴図データを第二個の特徴図メモリに格納し、出力処理モジュールは第一特徴図データをパッケージング処理し、第一特徴図データと転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールからマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第三と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータの目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、入力処理モジュールは順次に第一種のモードでと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図を受け取り、掛け算ロジックユニットに接続し、それぞれ第一特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行ってから活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードと第二種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを抽出し、第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データを獲得し再構築可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは二つのモードでの第一特徴図データを受け取り、掛け算ロジックユニットに接続し、第一特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行ってから活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、二つのモードでの第二特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは活性化関数から転送してきた第二特徴図データを受け取ってから二つのモードでの第二特徴図データを第二個の特徴図メモリに格納し、
最初の全接続層計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して相応の目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、記憶制御モジュールは第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは第二特徴図データを受け取り、掛け算ロジックユニットに接続し、第二特徴図データに対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い畳み込み結果を獲得し出力処理モジュールに転送し、出力処理モジュールは畳み込み結果をパッケージング処理を行い、畳み込み結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送して、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、入力処理モジュールは順次に第二種のモード、第三種のモードおよび第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第三種のモードでの畳み込み結果を抽出し、第三種の畳み込み結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは三種類のモードでの畳み込み結果を受け取り、累積ロジック計算ユニットに接続し、三種類のモードでの畳み込み結果を累積計算してから累積結果を獲得し出力処理モジュールに転送し、出力処理モジュールは累積結果をパッケージング処理を行い、累積結果と転送目的ノード情報をパッケージングし通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールはまだ第二個の特徴図メモリから第二特徴図データを読み出し再構造可能計算モジュールに転送し、再構造可能計算モジュールは第二特徴図データに対して畳み込み計算を行ってから畳み込み結果を再構築可能計算モジュールに転送し、入力処理モジュールは順次に第五種のモードでのパッケージデータを受け取りデパッケージング処理を行い、第五種のモードでの累積結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールは累積結果と畳み込み結果に対して同時に累積計算を行い第三の特徴図データを獲得し記憶制御モジュールに転送し、記憶制御モジュールは第三の特徴図データを第三個の特徴図メモリに格納し、
第二の全接続層の計算：
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、記憶制御モジュールは第三個の特徴図メモリから第三特徴図データを読み出し、ＲｅＬＵ活性化関数計算を行うようにそれぞれ活性化関数モジュールに転送し、活性化結果を獲得してから再構築可能計算モジュールと出力処理モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い、第一の初歩的な結果を獲得し活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、第一出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは第一出力結果を受け取ってから、第一出力結果を結果メモリに書き込み、出力処理モジュールは活性化結果に対してパッケージング処理を行い、活性化結果と転送目的ノード情報をパッケージングしてから通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第二と第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い、第二初歩的な結果を獲得し活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、第二出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第二出力結果に対してパッケージング処理を行い、第二出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、入力処理モジュールは順次に第一種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの活性化結果を抽出し、活性化結果を獲得し再構築可能計算モジュールに転送し、再構築可能計算モジュールの通路選択ユニットは活性化結果を受け取り、掛け算ロジックユニットに接続し、活性化結果に対して掛け算ロジック計算と累積ロジック計算（すなわち完全な畳み込み計算）を行い、第三初歩的な結果を獲得し活性化関数モジュールに転送してＲｅＬＵ活性化関数計算を行い、第三出力結果を獲得し出力処理モジュールに転送し、出力処理モジュールは第三出力結果に対してパッケージング処理を行い、第三出力結果と転送目的ノード情報をパッケージングして通信インタフェースモジュールに転送し、通信インタフェースモジュールはマルチキャストネットワークオンチップに転送し、マルチキャストネットワークオンチップを通して第一種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータをマウントした目的ノードの通信インタフェースモジュールに転送し、
その他、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、入力処理モジュールはさらに順次に第二種のモードと第四種のモードでのパッケージデータを受け取りデパッケージング処理を行い、データパッケージの第二出力結果と第三出力結果を抽出し、第二出力結果と第三出力結果を獲得し記憶制御モジュールに転送し、記憶制御モジュールは順次に第二出力結果と第三出力結果を結果メモリに書き込み、
三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。あるいは、三つの出力結果は次の畳み込みネットワークまたは次の畳み込み層計算の入力とすることができる。
【００１９】
本実施例には、マルチキャストネットワークオンチップと畳み込みニューラルネットワークハードウェアアクセラレータを相互結合することを採用し、畳み込みニューラルネットワークの計算を実現している。本実施例には、マルチキャストネットワークオンチップの構造は図２に示し、その中円形アイコンはノードルータを表し、四角形アイコンはノードルータ上にマウントした畳み込みニューラルネットワークハードウェアアクセラレータであり、６×６の下層二次元ネットワークと４×４の上層ネットワークから構成され、全部で４０個のノードルータが含まれ、その中下層二次元ネットワークは全部で３６個のノードルータがあり、３×３の子ネットワークを単位に四つのマルチキャスト領域に分割し、図２の中の点線で囲まれた四つの領域のようになり、個々の領域内は一つ中間ノードルータＲ３と複数の普通ノードルータＲ２を含み、普通ノードルータＲ２は五つの水平転送方向があり、中間ノードルータＲ３は五つの水平転送方向と一つの上り転送方向があり、上層ネットワークはいずれも転送ノードルータＲ１であり、転送ノードルータＲ１は五つの水平転送方向と一つの下向き転送方向があり、個々の領域内の中間ノードルータＲ３は相応の転送ノードルータＲ１とは相互接続し、マルチキャストネットワークオンチップの構造は転送する情報が一つのノードルータから同時に多数のノードルータに転送することが実現でき、このように情報転送の効率は大きく高め、畳み込みニューラルネットワーク計算プロセスの再利用可能な情報の転送の速さを高め、畳み込みニューラルネットワーク計算の並行性を高める。
【００２０】
本実例で採用したマルチキャストネットワークオンチップ規模は使用している畳み込みニューラルネットワークの大きさによって設定し、実際の状況では計算で使用している畳み込みニューラルネットワークの種類が異なるため、実際の状況によってマルチキャストネットワークオンチップの規模を設定し、６×６の下層二次元ネットワークと４×４の上層ネットワークが含まれているが、それだけに限らない双層ネットワーク構造である。
【００２１】
畳み込みニューラルネットワークハードウェアアクセラレータはそれぞれ下層二次元ネットワークの３６個のノードルータと接続していて、
その動作方式は下記のとおりであり：
ステップ１、畳み込みニューラルネットワークハードウェアアクセラレータを配置して初期化段階で五つのモードに分け、
ステップ２、第一と第二種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータが第一の畳み込み層計算を行い：
ステップ２．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データを獲得し、畳み込み計算を行ってから活性化関数計算して第一特徴図データを獲得し、
ステップ２．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータが第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは目標図データに対して畳み込み計算を行ってから活性化関数計算を行って第一特徴図データを獲得し、
ステップ３、第一、第二、第三および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の畳み込み層計算を行い：
ステップ３．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算し、さらに活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．２、、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一特徴図データを畳み込み計算してから活性化関数計算を行って第二特徴図データを獲得し、
ステップ３．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算して、さらに活性化関数計算を行って二つのモードでの第二特徴図データを獲得し、
ステップ３．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの第一特徴図データと第二種のモードでの第一特徴図データをそれぞれ畳み込み計算してから活性化関数計算を行い、二つのモードの第二特徴図データを獲得し、
ステップ４、第一、第二、第三、第四および第五種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第一の全接続層計算を行い、
ステップ４．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データに対して畳み込み計算してから畳み込み結果を獲得し、
ステップ４．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第三種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二特徴図データを畳み込み計算してから畳み込み結果を獲得し、
ステップ４．５、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第五種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモード、第三種のモードおよび第四種のモードでの畳み込み結果を積算してから積算結果を獲得し、
ステップ４．６、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータはさらに第五種のモードでの積算結果を積算してから第三の特徴図データを獲得し、
ステップ５、第一、第二および第四種のモードでの畳み込みニューラルネットワークハードウェアアクセラレータを用いて第二の全接続層計算を行い、
ステップ５．１、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第三の特徴図データに対して活性化関数計算してから活性化結果を獲得し、活性化結果を畳み込み計算を行い、第一の初歩的な結果を獲得し、最後に第一の初歩的な結果に対して活性化関数計算を行い第一活性化結果を獲得して格納し、
ステップ５．２、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第二の初歩的な結果を獲得し、第二の初歩的な結果を活性化関数計算を行い、第二出力結果を獲得し、
ステップ５．３、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第四種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードでの活性化結果にを畳み込み計算してから第三の初歩的な結果を獲得し、第三の初歩的な結果に対して活性化関数計算をし、第三出力結果を獲得し、
ステップ５．４、カレントの畳み込みニューラルネットワークハードウェアアクセラレータは第一種のモードである場合、畳み込みニューラルネットワークハードウェアアクセラレータは第二種のモードと第四種のモードでの第二の出力結果と第三の出力結果を格納する。
【００２２】
例えば、三つの出力結果はそれぞれ目標図データに対応する種別に属する確率を示す。
【００２３】
該当動作方式は数字図形の識別時間を大きく低減し、再構築可能な設計は拡張性を高め、マルチキャストネットワークオンチップを通してデータを転送し、計算と通信を完全に分離し、再利用範囲を計算ユニットの再利用可能から計算と通信ユニット全て再利用可能のレベルに拡張し、再利用設計のレベルを大きく高めた。
【００２４】
表１で示すように、本発明は一枚の図形を識別するシミュレート時間は０．１６７３５ｍｓであり、実験の中のＦＰＧＡに基づいたＣＮＮ畳み込みニューラルネットワークが一枚の図形を識別の所要時間０．２７２ｍｓと比較して、本発明は比較試験に対して一枚の図形を識別する速さが３８％を高め、本発明実例では１００００枚の図形を識別するシミュレート時間は１６７３．５ｍｓであり、実験の中のＦＰＧＡに基づいたＣＮＮ畳み込みニューラルネットワークが１００００枚の図形を識別の所要時間２９１２ｍｓと比較して、本発明は比較試験に対して１００００枚の図形を識別する速さが４３％を高め、
【表１】
2021510219.tif 000003
表２で示すように、本発明は１枚の図形の識別の所要時間が０．１６７３５ｍｓであり、その中の第一層の畳み込み層の所要時間が０．０３４８５ｍｓであり、第二層の畳み込み層の所要時間が０．０９５４３ｍｓであり、第一層の全接続層の所要時間が０．０３５２２ｍｓであり、第二層の全接続層の所要時間が０．００１８５ｍｓである。本発明は１０枚の図形の識別の所要時間が１．６７３５ｍｓであり、その中第一層の畳み込み層の所要時間が０．３４８５ｍｓであり、第二層の畳み込み層の所要時間が０．９５４３ｍｓであり、第一層の全接続層の所要時間が０．３５２２ｍｓであり、第二層の全接続層の所要時間が０．０１８５ｍｓである。本発明は１００枚の図形の識別の所要時間が１６．７３５ｍｓであり、その中第一層の畳み込み層の所要時間が３．４８５ｍｓであり、第二層の畳み込み層の所要時間が９．５４３ｍｓであり、第一層の全接続層の所要時間が３．５２２ｍｓであり、第二層の全接続層の所要時間が０．１８５ｍｓである。
【表２】
2021510219.tif 000004
【図１】
2021510219.tif 000005
【図２】
2021510219.tif 000006
【図３】
2021510219.tif 000007
【図４】
2021510219.tif 000008
【図５】
2021510219.tif 000009
【図６】
2021510219.tif 000010
【図７】
2021510219.tif 000011
【図８】
2021510219.tif 000012
【図９】
2021510219.tif 000013
【国際調査報告】
2021510219.tif 000014
2021510219.tif 000015
2021510219.tif 000016
2021510219.tif 000017