(57)【要約】【課題】メモリを有する畳み込み演算処理装置において、メモリに格納されるデータ量を減らして演算手段の稼働率を向上させる。【解決手段】演算処理装置１０は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器１１と、複数の演算器１１が使用する重みデータを格納する２つの第１の記憶手段１２とを含み、演算器１１の数は、出力チャネル数よりも少なく、複数の演算器１１が畳み込み演算を行っているときに、複数の演算器１１が使用している重みデータが格納されている第１の記憶手段１２とは異なる方の第１の記憶手段１２に、複数の演算器１１が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構１３をさらに備える。【選択図】図６
2020140507.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器と、
前記複数の演算器が使用する重みデータを格納する２つの第１の記憶手段とを備え、
前記演算器の数は、出力チャネル数よりも少なく、
前記複数の演算器が畳み込み演算を行っているときに、前記複数の演算器が使用している重みデータが格納されている前記第１の記憶手段とは異なる方の前記第１の記憶手段に、前記複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構をさらに備える
ことを特徴とする畳み込み演算処理装置。
【請求項２】
前記複数の演算器が使用する特徴量データを格納する第２の記憶手段を備える
請求項１記載の畳み込み演算処理装置。
【請求項３】
前記複数の演算器が１チャネル分の畳み込み演算を行っているときに第１の記憶手段の参照回数を計数し、計数値が１チャネル分の畳み込み演算の総参照回数に達したら、前記複数の演算器が使用する重みデータの読み出し先の第１の記憶手段を切り替える切替機構を備える
請求項１または請求項２記載の畳み込み演算処理装置。
【請求項４】
前記複数の演算器の各々は複数の演算部を含み、
総参照回数は、［入力チャネル数×特徴量データサイズ÷前記演算部の数］である
請求項３記載の畳み込み演算処理装置。
【請求項５】
データ転送機構は、ＤＭＡ転送の制御を行うＤＭＡモジュールである
請求項１から請求項４のうちのいずれか１項に記載の畳み込み演算処理装置。
【請求項６】
それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行い出力チャネル数よりも少ない数の複数の演算器が１チャネル分の畳み込み演算を行っているときに、前記複数の演算器が使用している重みデータが格納されている記憶手段とは異なる記憶手段に、前記複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送する
ことを特徴とする畳み込み演算処理方法。
【請求項７】
前記複数の演算器が１チャネル分の畳み込み演算を行っているときに使用している重みデータを記憶している前記記憶手段の参照回数を計数し、計数値が１チャネル分の畳み込み演算の総参照回数に達したら、前記複数の演算器が使用する重みデータの読み出し先の記憶手段を切り替える
請求項６記載の畳み込み演算処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワークに適用される畳み込み演算処理装置および畳み込み演算処理方法に関する。
【背景技術】
【０００２】
画像認識を初めとする種々の分野において、畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が使用されている。ＣＮＮを用いる場合、演算量が膨大になる。その結果、処理速度が低下する。
【０００３】
複数の演算器が設けられ、各々の演算器が畳み込み演算等を並列に実行する畳み込み演算処理装置がある（例えば、特許文献１参照）。また、特許文献２にも、複数の演算器が設けられ、各々の演算器が畳み込み演算等を並列に実行するニューラルネットワークが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−７３１０２号公報
【特許文献２】特開２０１８−９２５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載されているように、演算器が参照するデータの入力がボトルネックになり、並列演算の性能が活用されないという課題がある。
【０００６】
特に、ＣＮＮでは、各畳み込み層での演算が完了する度に、フィルタ係数である重みデータが変更される。重みデータの更新に時間がかかると、演算処理が中断される時間が長くなる。また、処理がＣＮＮにおける深い層（出力層に近い層）に進むほど、特徴量データの量に対して、相対的に、重みデータの量の割合が高くなる。その結果、演算器の稼働率はさらに低下する。
【０００７】
また、例えば、演算器における演算に必要な特徴量データと重みデータとを揃えて、直接、メモリから演算器に入力するように構成された場合には、冗長に同じ特徴量データと重みデータとが演算器に転送されことがある。そのような場合には、結果として、メモリ帯域が狭くなる。
【０００８】
本発明は、メモリを有し、複数の演算器が設けられた畳み込み演算処理装置において、演算器の稼働率を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明による畳み込み演算処理装置は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器と、複数の演算器が使用する重みデータを格納する２つの第１の記憶手段とを含み、演算器の数は、出力チャネル数よりも少なく、複数の演算器が畳み込み演算を行っているときに、複数の演算器が使用している重みデータが格納されている第１の記憶手段とは異なる方の第１の記憶手段に、複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構をさらに含む。
【００１０】
本発明による畳み込み演算処理方法は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行い出力チャネル数よりも少ない数の複数の演算器が１チャネル分の畳み込み演算を行っているときに、複数の演算器が使用している重みデータが格納されている記憶手段とは異なる記憶手段に、複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送する。
【発明の効果】
【００１１】
本発明によれば、ＣＮＮにおいて、演算器の稼働率が向上する。
【図面の簡単な説明】
【００１２】
【図１】畳み込み演算処理装置の構成例を示すブロック図である。
【図２】ＣＮＮの演算例を示す説明図である。
【図３】畳み込み演算処理装置の処理例を説明するための説明図である。
【図４】畳み込み演算処理装置の処理例を説明するためのブロック図である。
【図５】畳み込み演算処理装置の処理の流れの一例を示す説明図である。
【図６】畳み込み演算処理装置の概要を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面を参照して説明する。
【００１４】
図１は、畳み込み演算処理装置（以下、演算処理装置という。）の構成例を示すブロック図である。なお、図１には、メモリ１００，３００も示されている。
【００１５】
メモリ１００には、演算処理装置２００に入力されるデータが記憶される。メモリ１００に記憶されるデータとして、入力特徴量データ１０１と重みデータ１０２とがある。なお、メモリ１００に、ＣＮＮへの入力データが保存されることもある（演算処理装置が第１層の畳み込み層に相当する場合）。
【００１６】
演算処理装置２００は、それぞれが畳み込み演算を行う複数の畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎを有する。畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎの数Ｎ（Ｎ：２以上の自然数）は、出力チャネルの総数よりも少なく、並列演算の対象である出力チャネル数に相当する。各々の畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、複数の出力チャネルにおける１チャネルの畳み込み演算を実行する。例えば、演算器２０３Ａがチャネル＃１の畳み込み演算を実行し、演算器２０３Ｂがチャネル＃２の畳み込み演算を実行し、演算器２０３Ｃがチャネル＃３の畳み込み演算を実行し、演算器２０３Ｎがチャネル＃Ｎの畳み込み演算を実行する。
【００１７】
各々の畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、複数の演算部２１１を含む。演算部２１１の数は、一例として、１チャネルの重みの数（フィルタの行数×列数）である。なお、演算処理装置２００には、演算器の出力の和を演算する加算器も存在するが、加算器は、図１において記載省略されている。
【００１８】
メモリ１００に保存されている入力特徴量データ１０１は、ＤＭＡ（Direct Memory Access）機能を有するＤＭＡモジュール（ＤＭＡコントローラ）２０１によって、ラインバッファ２０２に転送される。畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、ラインバッファ２０２から特徴量データを入力する。
【００１９】
メモリ１００に保存されている重みデータ１０２は、ＤＭＡモジュール２０３によって、データキャッシュ（キャッシュメモリ）２０４に転送される。畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、データキャッシュ２０４から重みデータを入力する。
【００２０】
なお、ＣＮＮの特徴の一つとして、重み共有がある。すなわち、重みデータは、チャネル毎に、複数の特徴量データで共有される。したがって、データキャッシュ２０４に重みデータが設定されたら、処理対象のチャネルの処理が完了するまで、重みデータは、データキャッシュ２０４に保存される。
【００２１】
畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎの演算結果は、次層への特徴量データ（出力特徴量データ）としてメモリ３００に保存される。
【００２２】
図２は、ＣＮＮの演算例を示す説明図である。図２に示す例では、２×２×（１２８チャネル）の重みフィルタ（以下、フィルタという。）が使用されている（図２（Ｂ）参照）。図２には、入力された特徴量データは４×４×（１２８チャネル）であり（図２（Ａ）参照）、ストライドが１である。畳み込み演算が実行された結果、３×３×（１チャネル）の出力特徴量データが得られた例が示されている（図２（Ｃ）参照）。なお、図２（Ａ），（Ｃ）における各数値は特徴量を示し、図２（Ｂ）における各数値は重みを示す。
【００２３】
図３は、演算処理装置２００の処理例を説明するための説明図である。図３には、多層のＣＮＮのうちの浅い層４０１における２層と、深い層４０２における１層とが模式的に示されている。浅い層４０１は入力層に近い層である。図３には、第１層と第２層とが例示されている。また、深い層４０２における第Ｍ層が例示されている。
【００２４】
上述したように、処理がＣＮＮにおける深い層４０２に進むほど、入出力の特徴量データサイズが小さくなり、相対的に、フィルタサイズ４０３が大きくなる。
【００２５】
以下の説明では、フィルタサイズ４０３が大きい第Ｍ層を対象とする。
【００２６】
本実施形態では、図３に示すように、Ｎチャネル（Ｎ＜総出力チャネル数）分の畳み込み演算が並列実行される。なお、Ｎチャネルにおける各々のチャネルの特徴量データについて畳み込み演算が実行されている間、フィルタにおける各重みは不変である。以下、チャネル＃１〜＃Ｎを第１チャネル群といい、チャネル＃（Ｎ＋１）〜＃２Ｎを第２チャネル群という。
【００２７】
図４および図５を参照して、本実施形態の演算処理装置２００の第Ｍ層の処理を説明する。図４は、演算処理装置２００の処理例を説明するためのブロック図である。図５は、演算処理装置２００の処理の流れの一例を示す説明図である。
【００２８】
図４に示すように、メモリ１００に、第Ｍ層の入力特徴量データ１０１が格納されている。入力特徴量データ１０１には、第１チャネル群用の特徴量データ１０１Ａと第２チャネル群用の特徴量データ１０１Ｂとが含まれている。また、メモリ１００には、第Ｍ層の各チャネル用の重みデータ１０２も格納されている。重みデータ１０２には、第１チャネル群用の重みデータ１０２Ａと第２チャネル群用の重みデータ１０２Ｂとが含まれている。
【００２９】
図４に示す例では、データキャッシュ２０４は、２つのキャッシュメモリ２０４Ａ，２０４Ｂを含む。キャッシュメモリ２０４Ａは、第１チャネル群用の重みデータ１０２Ａを一時記憶する。キャッシュメモリ２０４Ｂは、第２チャネル群用の重みデータ１０２Ｂを一時記憶する。なお、一般的に表現すると、演算装置２１０が第Ｌ（Ｌ：自然数）チャネル群についての演算を行っているときに、キャッシュメモリ２０４Ａに、第Ｌチャネル群用の重みデータが記憶され、キャッシュメモリ２０４Ｂに、第（Ｌ＋１）チャネル群用の重みデータが転送される。
【００３０】
なお、畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎが含まれるブロックを演算装置２１０とする。
【００３１】
前層での処理が完了すると、メモリ１００に、第Ｍ層の入力特徴量データ１０１が用意されている。また、メモリ１００に、第Ｍ層で使用される重みデータ１０２Ａが用意されている。ＤＭＡモジュール２０３は、ＤＭＡで、図５（Ａ）に示すように、重みデータ１０２Ａをキャッシュメモリ２０４Ａに転送する（ステップＳ１）。
【００３２】
なお、演算処理装置２００において、メモリ１００、演算処理装置２００、およびメモリ３００の制御を司る制御器（図示せず）が設けられ、制御器が、演算処理装置２００における各ブロックに処理開始のトリガを与えるようにしてもよい。
【００３３】
ＤＭＡモジュール２０１は、図５（Ｃ）に示すように、第１チャネル群用の特徴量データ１０１Ａをラインバッファ２０２に転送する（ステップＳ２）。また、各々の畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、図５（Ｂ），（Ｄ）に示すように、キャッシュメモリ２０４Ａから、自身が担当するチャネルの重みデータすなわちフィルタを読み出しつつ（ステップＳ３）、ラインバッファ２０２から第１チャネル群用の特徴量データ１０１Ａを順次読み出して、畳み込み演算をパイプライン処理で実行する（ステップＳ４）。演算結果は、メモリ３００に転送される。
【００３４】
畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎが、第１チャネル群に関する演算を実行しているときに、ＤＭＡモジュール２０３は、ＤＭＡで、第２チャネル群用の重みデータ１０２Ｂをキャッシュメモリ２０４Ｂに転送する（ステップＳ５）。
【００３５】
図５（Ｃ）に示すように、第１チャネル群用の特徴量データ１０１Ａがラインバッファ２０２に転送された後、ＤＭＡモジュール２０１は、第２チャネル群用の特徴量データ１０１Ｂをラインバッファ２０２に転送する（ステップＳ６）。また、各々の畳み込み演算器２０３Ａ，２０３Ｂ，２０３Ｃ，・・・，２０３Ｎは、キャッシュメモリ２０４Ｂから、自身が担当するチャネルの重みデータすなわちフィルタを読み出しつつ（ステップＳ７）、ラインバッファ２０２から第１チャネル群用の特徴量データ１０１Ａを順次読み出して、第２チャネル群に関する畳み込み演算をパイプライン処理で実行する（ステップＳ８）。
【００３６】
その後、演算処理装置２００は、第Ｍ層における全ての出力チャネルに関する畳み込み演算処理が完了するまで、上記の処理を繰り返し実行する（ステップＳ９）。
【００３７】
本実施形態では、演算装置２１０が第Ｌチャネル群について、キャッシュメモリ２０４Ａに記憶されている重みデータを使用して畳み込み演算処理を実行しているときに、次チャネル群（第（Ｌ＋１）チャネル群）で使用される重みデータがキャッシュメモリ２０４Ｂに用意される。したがって、演算処理対象のチャネルが代わるときに、重みデータの更新に要する時間が短縮される。
【００３８】
また、演算装置２１０が第Ｌチャネル群について畳み込み演算処理を完了したときに、直ちに、使用するキャッシュメモリを切り替えることができる。
【００３９】
演算装置２１０が処理開始から処理終了までにキャッシュメモリ２０４Ａの内容（重みデータ）を参照する回数（総参照回数）は、［入力チャネル数×特徴量データサイズ（縦）×特徴量データサイズ（横）÷演算部２１１の数］（入力チャネル数、特徴量データサイズ（縦）および特徴量データサイズ（横）に関して図３参照：演算部２１１の数に関して図４参照）である。
【００４０】
例えば、演算処理装置２００に参照回数を計数する計数機構を設け、参照回数が総参照回数に達したら、例えば制御器（制御器が設けられている場合）が、演算装置２１０に対してキャッシュメモリの切り替えを指示することによって、使用するキャッシュメモリは、直ちに切り替えられる（ステップＳ１０）。
【００４１】
また、演算処理装置２００は、Ｎチャネル分の畳み込み演算処理を並列実行するので、第１チャネル群用の重みデータ１０２Ａを使用した処理の次の処理で使用される第２チャネル群用の重みデータ１０２Ｂの、メモリ１００における格納位置は容易に特定可能である。したがって、制御器（制御器が設けられている場合）は、ＤＭＡモジュール２０３に対して、迅速に、次の処理で使用される第２チャネル群用の重みデータ１０２Ｂの転送開始指示を行うことができる。
【００４２】
さらに、キャッシュメモリ２０４Ａに記憶されるＮ個のチャネルの各々に対応する重みデータおよびキャッシュメモリ２０４Ｂに記憶されるＮ個の各々に対応する重みデータは、それぞれ、１つのチャネル群に対する畳み込み演算処理が完了するまで変更されることはない。したがって、データキャッシュ２０４が設けられたことによってメモリ１００のメモリ帯域を狭めることができる効果に加えて、さらに、その効果を高めることができる。
【００４３】
また、キャッシュメモリ２０４Ａ，２０４Ｂには全チャネル数分の重みデータが同時に存在せず、Ｎチャネル数分の重みデータが存在すればよいので、キャッシュメモリ２０４Ａ，２０４Ｂのサイズが節約される。
【００４４】
上記の実施形態では、演算器数が限られ、かつ、メモリ帯域が広くない場合でも、演算器の稼働率を高くすることができる。換言すれば、限られた演算器数とメモリ容量およびメモリ帯域とで、演算器の稼働率を高くすることができる。
【００４５】
上記の実施形態では、特徴量データの量に対して相対的に重みデータの量の割合が高くなる深い層４０２が演算処理装置２００の処理対象とされたが、浅い層４０１を対象として上記の実施形態を適用することも可能である。
【００４６】
なお、演算装置２１０は、例えば、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（Field-Programmable Gate Array ）、またはＡＳＩＣ（Application Specific Integrated Circuit ）で構築可能である。
【００４７】
図６は、畳み込み演算処理装置の概要を示すブロック図である。畳み込み演算処理装置１０は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器１１（実施形態では、演算器２０３Ａ〜２０３Ｎで実現される。）と、複数の演算器１１が使用する重みデータを格納する２つの第１の記憶手段１２（実施形態では、キャッシュメモリ２０４Ａ，２０４Ｂで実現される。）とを備え、演算器１１の数は、出力チャネル数よりも少なく、複数の演算器１１が畳み込み演算を行っているときに、複数の演算器１１が使用している重みデータが格納されている第１の記憶手段１２とは異なる方の第１の記憶手段１２に、複数の演算器１１が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構１３（実施形態では、ＤＭＡモジュール２０３）をさらに備える。
【００４８】
畳み込み演算処理装置１０は、複数の演算器１１が使用する特徴量データを格納する第２の記憶手段（実施形態では、ラインバッファ２０２で実現される。）を備えていてもよい。
【００４９】
畳み込み演算処理装置１０は、複数の演算器１１が１チャネル分の畳み込み演算を行っているときに第１の記憶手段１２の参照回数を計数し、計数値が１チャネル分の畳み込み演算の総参照回数に達したら、複数の演算器１１が使用する重みデータの読み出し先の第１の記憶手段１２を切り替える切替機構（実施形態では、計数機構および制御器で実現される。）を備えていてもよい。
【符号の説明】
【００５０】
１０      畳み込み演算処理装置
１１      演算器
１２      第１の記憶手段
１３      データ転送機構
１００    メモリ
１０１    入力特徴量データ
１０１Ａ  第１チャネル群用の特徴量データ
１０１Ｂ  第２チャネル群用の特徴量データ
１０２    重みデータ
１０２Ａ  第１チャネル群用の重みデータ
１０２Ｂ  第２チャネル群用の重みデータ
２００    演算処理装置
２０１，２０３  ＤＭＡモジュール
２０２    ラインバッファ
２０４    データキャッシュ
２０４Ａ  キャッシュメモリ
２０４Ｂ  キャッシュメモリ
２１０    演算装置
２０３Ａ〜２０３Ｎ  演算器
２１１    演算部
３００    メモリ
４０１    浅い層
４０２    深い層
４０３    フィルタサイズ
【図１】
2020140507.tif 000003
【図２】
2020140507.tif 000004
【図３】
2020140507.tif 000005
【図４】
2020140507.tif 000006
【図５】
2020140507.tif 000007
【図６】
2020140507.tif 000008
【手続補正書】
【提出日】令和2年3月26日(2020.3.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器と、
前記複数の演算器が使用する重みデータを格納する２つの第１の記憶手段とを備え、
前記演算器の数は、出力チャネル数よりも少なく、
前記複数の演算器が畳み込み演算を行っているときに、前記複数の演算器が使用している重みデータが格納されている前記第１の記憶手段とは異なる方の前記第１の記憶手段に、前記複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構を備える畳み込み演算処理装置であって、
前記複数の演算器が出力チャネルの１チャネル分の畳み込み演算を行っているときに前記第１の記憶手段の参照回数を計数し、計数値が出力チャネルの１チャネル分の畳み込み演算の総参照回数に達したら、前記複数の演算器が使用する重みデータの読み出し先の前記第１の記憶手段を切り替える切替機構をさらに備え、
前記複数の演算器の各々は複数の演算部を含み、
前記総参照回数は、［入力チャネル数×特徴量データサイズ÷前記演算部の数］である
ことを特徴とする畳み込み演算処理装置。
【請求項２】
前記複数の演算器が使用する特徴量データを格納する第２の記憶手段を備える
請求項１記載の畳み込み演算処理装置。
【請求項３】
データ転送機構は、ＤＭＡ転送の制御を行うＤＭＡモジュールである
請求項１または請求項２記載の畳み込み演算処理装置。
【請求項４】
それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行い出力チャネル数よりも少ない数の複数の演算器が１チャネル分の畳み込み演算を行っているときに、前記複数の演算器が使用している重みデータが格納されている記憶手段とは異なる記憶手段に、前記複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送する畳み込み演算処理方法であって、
前記複数の演算器が出力チャネルの１チャネル分の畳み込み演算を行っているときに使用している重みデータを記憶している前記記憶手段の参照回数を計数し、計数値が出力チャネルの１チャネル分の畳み込み演算の総参照回数である［入力チャネル数×特徴量データサイズ÷前記演算部の数］に達したら、前記複数の演算器が使用する重みデータの読み出し先の前記記憶手段を切り替える
ことを特徴とする畳み込み演算処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明による畳み込み演算処理装置は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行う複数の演算器と、複数の演算器が使用する重みデータを格納する２つの第１の記憶手段とを含み、演算器の数は、出力チャネル数よりも少なく、複数の演算器が畳み込み演算を行っているときに、複数の演算器が使用している重みデータが格納されている第１の記憶手段とは異なる方の第１の記憶手段に、複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送するデータ転送機構を含み、複数の演算器が出力チャネルの１チャネル分の畳み込み演算を行っているときに第１の記憶手段の参照回数を計数し、計数値が出力チャネルの１チャネル分の畳み込み演算の総参照回数に達したら、複数の演算器が使用する重みデータの読み出し先の第１の記憶手段を切り替える切替機構をさらに含み、複数の演算器の各々は複数の演算部を有し、総参照回数は、［入力チャネル数×特徴量データサイズ÷前記演算部の数］である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明による畳み込み演算処理方法は、それぞれが畳み込み層における出力チャネルの１チャネルの畳み込み演算を行い出力チャネル数よりも少ない数の複数の演算器が１チャネル分の畳み込み演算を行っているときに、複数の演算器が使用している重みデータが格納されている記憶手段とは異なる記憶手段に、複数の演算器が次に実行する畳み込み演算で使用する重みデータを転送し、複数の演算器が出力チャネルの１チャネル分の畳み込み演算を行っているときに使用している重みデータを記憶している記憶手段の参照回数を計数し、計数値が出力チャネルの１チャネル分の畳み込み演算の総参照回数である［入力チャネル数×特徴量データサイズ÷前記演算部の数］に達したら、複数の演算器が使用する重みデータの読み出し先の記憶手段を切り替える。