JP2019003414A - データ処理装置、及びこれにおけるデータ処理方法 - Google Patents

データ処理装置、及びこれにおけるデータ処理方法 Download PDF

Info

Publication number
JP2019003414A
JP2019003414A JP2017117686A JP2017117686A JP2019003414A JP 2019003414 A JP2019003414 A JP 2019003414A JP 2017117686 A JP2017117686 A JP 2017117686A JP 2017117686 A JP2017117686 A JP 2017117686A JP 2019003414 A JP2019003414 A JP 2019003414A
Authority
JP
Japan
Prior art keywords
data
dimensional
processing
dimensional convolution
convolution
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
Application number
JP2017117686A
Other languages
English (en)
Other versions
JP7014393B2 (ja
Inventor
洋一 富岡
Yoichi Tomioka
洋一 富岡
セドゥーキン スタニスラフ
Sedukhin Stanislav
セドゥーキン スタニスラフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Aizu
Original Assignee
University of Aizu
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Aizu filed Critical University of Aizu
Priority to JP2017117686A priority Critical patent/JP7014393B2/ja
Publication of JP2019003414A publication Critical patent/JP2019003414A/ja
Application granted granted Critical
Publication of JP7014393B2 publication Critical patent/JP7014393B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】演算素子プロセッシングエレメントを三次元的に多数配置し、並列性を保ったまま省力で高速の計算を行えるデータ処理方法及びデータ処理装置を提供する。【構成】乗算及び加算機能を有する複数のプロセッシングエレメントを3次元方向に有するデータ処理装置であって、それぞれ複数の前記プロセッシングエレメントが2次元方向に配置され、Z軸方向に積層された複数の2次元面を有し、前記複数の2次元面のそれぞれに対応して特徴重みが配置されるフィルタメモリを有し、入力データがZ軸方向の上位面の2次元面から配置され、一の面に配置されたプロセッシングエレメントで前記乗算機能により前記入力データと前記特徴重みの積を順次演算して2次元畳み込みデータを演算し、更に下面から転送されるデータと自身のデータを加算する演算を行い、当該演算結果を隣接する上面のプロセッシングエレメントに転送することを特徴とする。【選択図】図4

Description

本発明は、データ処理装置、及びこれにおけるデータ処理方法に関し、特に、畳み込みニューラルネットワークにおける畳み込み演算に適したデータ処理装置、及びこれにおけるデータ処理方法に関する。
ニューラルネットワークに畳み込み(圧縮処理:Convolution))を追加した畳み込みニューラルネットワーク(Convolutional Neural Network:以下適宜CNNと表記)が、特に画像認識に有効な機械学習として広く認識されている。
図1は、CNNのシステム構成の概略を示す図である。入力データに対して、複数の層(レイヤーL1−L5))構造で処理を行う。
図1では、レイヤーL1、L2のそれぞれは、畳み込み層(Convolutional Layer)、プーリング層(Pooling Layer)を含みこれを繰り返す。
畳み込み層は、入力データに対して フィルタ(kernel)特徴を乗算する(特徴量を畳み込む)層である。入力データが画像データである場合、入力データ(画像)に対して、それぞれ異なるフィルタ特徴を乗算してフィルタの数に対応する画像を得ている。複数のフィルタを使うことにより入力画像のさまざまな特徴が捉えられ、特徴量の畳み込みによって画像内のパターンが検出出来る。
プーリング層は、畳み込み層の直後に置かれ、レイヤーを縮小して扱い易くし、抽出された特徴の位置感度を低下させる。
CNNは、次いで、レイヤーL3−L5により全結合した多層パーセプトロンを配置して入力データ(画像)を認識する。
ここで、序盤のレイヤーで行う畳み込み演算には膨大な計算回数が必要である。このためかかる部分の省電力化が非常に重要な課題となっている。
しかし、複数の演算素子(PE:プロセッシングエレメント)を、アレイ状に配置するアレイ型の並列演算処理素子とすると、周辺機能ブロックとの類似度計算をするために多くの配線資源や転送時間が必要となる。
かかる点に鑑みて、本発明者等は、先にPE間の通信でのデータ衝突を回避し、かつPEを特定の方向に偏ることなく増加させることが可能な拡張性の高いデータ処理装置を提案している(特許文献1)。
かかる先の発明技術では、n次元のネットワークを構成するn次元の方向に配置された全てのPEが、転送クロックに同期してデータを入出力する。そして、データを入出力する方向であるシフト方向に隣接する第1の隣接PEから第1のデータを受け取るとともに、反対側に隣接する第2の隣接PEに第2のデータを出力し、隣接するPE間のデータ転送レートがシフト方向によらず等しいという特徴を有する演算装置である。
特許第5939572号公報
これまでのCNN演算のための技術は、上記特許文献1に提案の発明に従う場合であっても、並列演算において個々のPEの処理量が大きくなるもの、即ち、技術的に最速であるがエネルギーに乏しいPEあるいはコアの数が、メモリに蓄積されるデータの数よりはるかに小さい。
換言すれば、各演算ステップにおけるアクティブなプロセッサ、メモリ動作の数が基本的にCNNアルゴリズムにおける可能性より小さいものであった。
結果として、CNNの解決のための時間が、最小値よりはるかに大きく、解決すべきエネルギーが高くなる。
かかる点に鑑みて、本発明の目的は、演算素子PEを三次元的に多数配置し、並列性を保ったまま省電力で高速の計算を行えるデータ処理装置、及びこれにおけるデータ処理方法を提供することにある。
上記目的を達成する本発明に従う第1の側面は、乗算及び加算機能を有する複数のプロセッシングエレメントを3次元方向に有するデータ処理装置であって、それぞれ複数の前記プロセッシングエレメントが2次元方向に配置され、Z軸方向に積層された複数の2次元面を有し、前記複数の2次元面のそれぞれに対応して特徴重みが配置されるフィルタメモリを有し、入力データがZ軸方向の上位面の2次元面から配置され、一の面に配置されたプロセッシングエレメントで前記乗算機能により前記入力データと前記特徴重みの積を順次演算して2次元畳み込みデータを演算し、更に下面から転送されるデータと自身のデータを加算する演算を行い、当該演算結果を隣接する上面のプロセッシングエレメントに転送することを特徴とする。
上記目的を達成する本発明に従う第1の側面において、第1の態様として、前記2次元方向に配置されたプロセッシングエレメントはトーラスネットワークに接続され、Z軸方向には、上下面に隣接するPEが、ネットワークで双方向に接続されることを特徴とする。
上記目的を達成する本発明に従う第1の側面において、第2の態様として、前記2次元畳み込みデータは、隣接するプロセッシングエレメントからの転送データと自身のデータを加算演算し、更にシフト方向に隣接するプロセッシングエレメントに前記加算演算結果を転送することを特徴とする。
上記目的を達成する本発明に従う第1の側面において、第3の態様として、前記Z軸方向の最上位面にあるプロセッシングエレメントは、下面の複数のプロセッシングエレメントから転送される2次元畳み込みデータと自身のデータを加算して2.5次元畳み込みデータを演算することを特徴とする。
上記目的を達成する本発明に従う第1の側面における第3の態様において、第4の態様として、前記2.5次元畳み込みデータは、順次下面のプロセッシングエレメントのシフトされることを特徴とする。
上記目的を達成する本発明に従う第1の側面における上記何れかの態様において、前記特徴重みは、前記入力データの配置された2次元面の数で分割され、前記入力データの配置された面毎に対応するフィルタメモリに配置し、前記畳み込み演算の際、前記フィルタメモリに配置された特徴重みを、対応する面の全てのプロセッシングエレメントにブロードキャストすることを特徴とする。
上記目的を達成する本発明に従う第2の側面は、乗算及び加算機能を有する複数のプロセッシングエレメントを3次元方向に有するデータ処理装置におけるデータ処理方法であって、前記データ処理装置は、それぞれ複数の前記プロセッシングエレメントが2次元方向に配置され、Z軸方向に積層された複数の2次元面を有し、前記複数の2次元面のそれぞれに対応して特徴重みが配置されるフィルタメモリを有し、入力データを前記Z軸方向の上位面の2次元面から配置する工程と、一の面に配置されたプロセッシングエレメントで前記乗算機能により前記入力データと前記特徴重みの積を順次演算して2次元畳み込みデータを演算する工程と、更に下面から転送されるデータと自身のデータを加算する演算を行い、当該演算結果を隣接する上面のプロセッシングエレメントに転送する工程を有することを特徴とする。
上記目的を達成する本発明に従う第2の側面において、第1の態様として、前記2次元畳み込みデータは、隣接するプロセッシングエレメントからの転送データと自身のデータを加算演算し、更にシフト方向に隣接するプロセッシングエレメントに前記加算演算結果を転送する工程を有することを特徴とする。
上記目的を達成する本発明に従う第2の側面において、第2の態様として、前記Z軸方向の最上位面にあるプロセッシングエレメントは、下面の複数のプロセッシングエレメントから転送される2次元畳み込みデータと自身のデータを加算して2.5次元畳み込みデータを演算する工程を有することを特徴とする。
上記目的を達成する本発明に従う第2の側面において、第3の態様として、前記2.5次元畳み込みデータを、順次下面のプロセッシングエレメントにシフトする工程を有することを特徴とする。
上記本発明に従う特徴構成により、処理されるデータと同数のプロセッサで並列演算を行うことで、最小実行ステップ数でCNNの各層の計算を実行できる。このため、リアルタイム処理に求められる実行時間制約を達成できる最小の動作クロック周波数で実行可能であり、リアルタイムかつ低消費電力の計算を行える。
CNNのシステム構成の概略を示す図である。 TAP(Tensor Array Processor)における3次元アレイ状のPME(Processor in Memory)を示す図である。 各PMEの機能構成例ブロック図である。 TAPの3次元アレイをそれぞれのXY面に展開して示す図である。 図4における一つの面に属するPMEを拡大して示す図である。 畳み込み演算による演算結果の変化を示す図である。 本発明のデータ処理方法におけるある層の初期状態を表す図である。 1番目のフィルタについて2次元畳み込みを行っている状態を表す図である。 下の面から1番目の2次元畳み込み演算データが転送され、自身の畳み込み演算結果と加算することで2.5次元畳み込み演算の結果を求める処理を示す図である。 1番目の2.5次元畳み込みの結果(白丸)を下の面にデータシフトした状態を表す図である。 2番目のフィルタについて2次元畳み込みを行っている状態を表す図である。 下の面から転送される2番目のフィルタに対する2次元畳み込み演算データと自身の畳み込み演算結果との加算により2.5次元畳み込み演算の結果を求める処理を示す図である。 1番目と2番目の2.5次元畳み込みの結果(白丸)を下の面にデータシフトした状態を表す図である。 3番目のフィルタについて2次元畳み込みを行っている状態を表す図である。 下の面から転送される3番目のフィルタに対する2次元畳み込み演算データと自身の畳み込み演算結果と加算により2.5次元畳み込み演算の結果を求める処理を示す図である。 1番目から3番目の2.5次元畳み込みの結果(白丸)を下の面にデータシフトした状態を表す図である。 4番目のフィルタについて2次元畳み込みを行っている状態を表す図である。 下の面から転送される4番目のフィルタに対する2次元畳み込み演算データと自身の畳み込み演算結果と加算により2.5次元畳み込み演算の結果を求める処理を示す図である。 4枚のフィルタを用いた畳み込み層の計算結果を表す図である 畳み込み演算の例を具体的数値で説明する図である。 特徴重みの縦横を異なるものとした時のデータ上のシフト方向を考察する図である。 本発明に従う2.5次元畳み込み演算の様子を示すタイムチャート図である。
以下に、本発明の実施例を添付の図面に従い説明する。これらの実施例は本発明の理解を容易とするためのものであり、本発明の適用は、これら実施例に限定されるものではない。また、本発明の保護の範囲は、特許請求の範囲と同一又は類似の範囲にも及ぶ。
本発明に従うデータ処理装置は、3次元アレイ状に配置されたそれぞれメモリ機能を有する演算素子であるPME(Processor in Memory)とネットワークから構成されるシステムであり、以降TAP(Tensor Array Processor)と称する。
図2は、かかるTAPにおける3次元アレイ状のPMEを示す図であり、それぞれ計算モジュールを有する複数のPMEが3次元(X,Y,Z)方向に積層配列されている。
かかる構造は、半導体技術により、3次元プロセッサとして作成可能である。すなわち、複数のPMEがX,Y方向に配列された2次元半導体面をZ方向に積み重ねて1チップで3次元構造とすることが可能である。
図2において、複数のPMEが、Ws×Hs×Csの3次元アレイ状(X軸方向にWs個,Y軸方向にHs個,Z軸方向にCz個)に配列されている。各XY面では、各PMEがトーラスネットワーク(Lx、Ly)に接続され、各PMEの有するデータをX軸正方向、X軸負方向、Y軸正方向、Y軸負方向の4方向にデータシフトする機能を有する。
また、Z軸方向では、上下面に隣接するPMEが、ネットワークLzで双方向に接続され、Z軸正方向(上面方向)とZ軸負方向(下面方向)のデータ転送を同時に行うことが可能に構成されている。かかるデータシフトの方向制御及び、そのための共通シフトクロックは、後にデータ処理装置を展開図で示す制御プロセッサにより供給される。
図3は、各PMEの機能構成例ブロック図であり、畳み込み層の計算に必要な乗算及び加算機能ブロック10とプーリング層の計算に必要なMAX(最大値)演算機能ブロック11を有している。さらに、必要に応じて、追加の機能ブロックを添えることは可能である。
図4は、上記TAPの3次元アレイをそれぞれのXY面に展開して示す図である。かかるTAPは、システムとして共通の制御プロセッサ20と、指示メモリ21を有している。
3次元アレイのそれぞれのXY面(Z=1,Z=2,・・・Z=S)に対応してフィルタメモリFM1-FMSを有し、フィルタメモリFM1-FMSのそれぞれは、対応する同一面に存在する全てのPMEと接続されている。計算の際に、フィルタメモリFM1-FMSからフィルタの特徴重みを対応する面の全てのPMEにブロードキャストすることが可能である。
ここで、本発明に従うデータ処理方法をCNNの畳み込み演算処理に用いる場合を想定する。
指示メモリ21には、事前の学習により得られた各層のフィルタサイズ及びフィルタ数が畳み込みニューラルネットワーク構造として入力される。これに基づき、制御プロセッサ20により、各面のフィルタメモリFM1-FMSに対応する重み、及び共通のクロック信号の供給等が行われる。
PMEは、畳み込み層において、自身の有するデータと対応するフィルタメモリからブロードキャストされる重みとを乗算し、更に隣接するPMEから転送されるデータとを加算して、その結果を反対側に隣接するPMEに転送する。プーリング層においては、自身のデータと隣接するPMEから転送されるデータの最大値を求め、隣接するPMEに順次転送する。
先に、説明した様に指示メモリ21からの予め学習によって得られた指示データに基づき、上記のPMEによる演算と転送の方向及び共通シフトのためのタイミングクロックが、制御プロセッサ20から全てのPMEに送られる。
図5は、かかる図4における一つの面に属するPMEを拡大して示す図である。この例では、Ws=4, Hs=3の場合で、Z=kの面を示している。ファイルメモリFMkから共通に、Z=kの面にある全てのPMEにフィルタ(特徴重み)が供給される。
かかる構成のTAPに、列数Wo×行数Ho×チャンネル数Coの3次元テンソルデータがCNNの第1層の入力となる。
この入力データに繰り返しCNNの畳み込み層の計算を適用することで、各層のデータサイズが変化する。
ここで、k層目のデータサイズをWk×Hk×Ckとする。本発明のシステムでは、
Figure 2019003414
であると想定する。
入力のチャネル数がこの値より小さい場合は、TAPの上位のXY面から順に入力データを配置する。入力データが配置されたPMEは活性面(active)、そうでなければ非活性面(inactive)となる。ただし、PMEが非活性面であってもデータの転送は行われる。
例えば、入力データとして一枚の画像データを考えた時、次のように想定することが出来る。一枚の画像データを同じ大きさの領域ごとに区切り複数の領域データ(チャネル)として切り出し、各領域データをTAPの最上位の面から順に該当の面にあるPMEに配置していく。
この時、フィルタ(特徴重み)は、次のように処理される。一つの特徴重みを前記画像データの配置される面の数に対応して分割し、それぞれの分割特徴重みを対応する面のファイルメモリFMに格納する。そして、計算時に対応するフィルタメモリFMに配置されている特徴重みが当該面に属する全てのPMEにブロードキャストされる。
それぞれのPMEは、ブロードキャストされた特徴重みと自身のデータとの積を演算する。さらに、PMEは、一方向の隣接するメモリ要素から転送されるデータを前記の積の演算結果に加え、反対方向に隣接するPMEに転送する。かかる処理を繰り返し、2次元畳み込みを行う。なお、かかる場合の転送制御は、先に述べた特許文献1の発明に従い実行される。
さらに、本発明では、特徴として、入力データに対し2次元畳み込みを行ったデータが配置されたTAPの最下面から最上面まで、それぞれ2次元畳み込みデータを上方向に転送する。この時、各面のPMEは自身のデータと一つ下の面からの畳み込み演算結果を足し合わせ、その結果を一つ上の面のPMEに転送する。
最終的に最上位面の2次元アレイプロセッサで、全ての2次元アレイの2次元畳み込み結果を足し合わせた2.5次元畳み込み演算結果を得ることが出来る。
さらに、後に詳述するように、最上位面で得られた2.5次元畳み込み演算結果は、順次下面にシフトされる。
かかる畳み込み演算による演算結果の変化を図6に示す。図6(1)に示すように、N×M×Cin個のPMEに配置された入力データが、畳み込み演算の結果N×M×Cout個のPMEに畳み込み演算結果が得られる。このときCoutの大きさは、特徴重み(kernel)の数に依存する。
この結果がCNNの一つの層の畳み込み演算処理結果のデータであり、次いで、図6(2)に示すようにプーリング層の演算処理を行ってレイヤーを縮小して扱いやすくする。同時に、この演算結果は次の層の入力になる。
ここで、本発明のデータ処理装置において実行されるデータ処理に従う畳み込み演算処理の特徴を理解容易のために、更に図7A〜7Mにおいて各面における変化を模式的に示す。
図7A〜7Mにおいて、活性面は入力データが配置された面である。図7Aは、初期状態を表す。実戦の直方体が活性面のPMEを表し、破線の直方体が付加性面のPMEを表す。以下、図7B〜7Mにおいて同様である。さらに、灰色の丸で占められる表示は入力データDinを表している。図7Bは1番目のフィルタに対して各面において2次元畳み込みを行っている状態を示す。図の矢印は、各面にあるPMEに対するデータの転送方向を表し、黒丸は計算結果を示す。以下、図7C〜7Mにおいて同様である。
図7Cは、下の面からその2次元畳み込み演算データが転送され、自身の2次元畳み込み演算結果と加算することで2.5次元畳み込み演算の結果を求める処理を示している。
図7Dは、2番目のフィルタに対する畳み込み計算を行う準備として、この2.5次元畳み込み演算結果を下の面にシフトする状態を示している。このシフトは、不活性面を含めて行われる。
図7Eは2番目のフィルタに対して各面において2次元畳み込みを行っている状態を示す。図7Fは下の面から2番目のフィルタに対する2次元畳み込み演算データが転送され、自身の畳み込み演算結果と加算することで、2.5次元畳み込み演算の結果を求める処理を示している。
同様に図7G〜図7Lは3番目、4番目のフィルタに対する畳み込み計算の様子を示している。すなわち、図7Gは、1番目と2番目の2.5次元畳み込みの結果(白丸)を矢印のように上の面から下の面にデータシフトした状態を示している。
図7Hは、3番目のフィルタについて2次元畳み込みを行っている状態を示している。図7Iは、下から3番目のフィルタに対する2次元畳み込み演算データが転送され、自身の畳み込み演算結果と加算することで2.5次元畳み込み演算の結果を求める処理を示している。
図7Jは、1番目から3番目の2.5次元畳み込み結果(白丸)を上の面から下の面にデータシフトした状態を示している。この際、不活性面にもデータがシフトされている。
図7Kは、4番目のフィルタに対する2次元畳み込み演算を行っている状態を示している。図7Lは、図7Iの処理と同様であるが、下から4番目のフィルタに対する2次元畳み込み演算データが転送され、自身の畳み込み演算結果と加算することで2.5次元畳み込み演算お結果を求める処理を示している。
図7Mは、最終的に4枚のフィルタを用いた畳み込み層の計算結果を表し、これが次層の入力となる。
ここで、畳み込み演算を式で表すと下記(1)式のようになる。b0はバイアス定数項である。バイアスb0は、畳み込み演算の結果を一定値増加、減少するために使用される。このバイアスb0とフィルタの重みωはともに、CNNの学習時に自動的に決定される。
Figure 2019003414
ただし、sは自然数であり、畳み込み計算を行うときのストライドを表す。さらに、簡単化のため、本発明の説明ではストライドが1のときのみを説明しているが、ストライドが2以上であっても本発明の適用可能は、否定されない。
Figure 2019003414
は、第l層のo番目のフィルタの重み、
Figure 2019003414
は、第l層の入力データである。
それぞれの面にあるPMEは、(1)式の後半部分
Figure 2019003414
の計算を行う。このとき、C=Clの2次元畳み込み演算をTAPの一番上の面のPMEが計算しており、同様にC=Cl−1の2次元畳み込演算をその一つ下の面のPMEが計算している。各面で計算した上記の後半部分の計算結果を足し合わせることで(1)式全体の計算をしている。
図8は、上記の畳み込み演算の例を具体的数値で説明する図であり、2つの上下面の場合を例にしている。
一の面(Ch1)で入力(Input)x60と重み(kernel)w61を矢印方向に移動しながら乗算し、同時に下の面(Ch2)で入力(Input)x62と重み(kernel)w63を矢印方向に移動しながら乗算する。これにより、それぞれ2次元畳み込み演算結果64が得られる。
一の面(Ch1)の初期時点での入力60と重み61との乗算結果は、次のようであり、
(−3*1)+(−2*2)+(1*2)+(3*2)=1
次いで、1桁分矢印方向にシフトした時の入力60と重み61との乗算結果は、次のようである。
(1*1)+(−3*2)+(−2*3)+(2*2)+(1*2)+(3*1)=−2
これらは、2次元畳み込み演算結果64に示される通りである。
一方、下の面(Ch2)の初期時点での入力62と重み63との乗算結果は、次のようであり。
(−2*2)+(3*3)+(−3*1)+(1*3)=5
次いで、1桁分矢印方向にシフトした時の入力60と重み61との乗算結果は、次のようである。
(2*2)+(−2*3)+(3*3)+(2*1)+(3*3)+(1*2)=1である。
これらは、2次元畳み込み演算結果65に示される通りである。
ついで、前記一の面(Ch1)では、自身の2次元畳み込み演算結果64を得て、更に下の面(Ch2)から転送される2次元畳み込み演算結果65が転送される。したがって、それら2次元畳み込み演算結果64及び65とバイアスb0=1とを加算して2.5次元畳み込み演算結果66に示すように求める。
上記の様に、入力データ上で重みを順次所定桁数分ずつシフトして乗算及び加算を繰り返すことにより2次元畳み込み演算結果が得られる。
この際、指示メモリ21に格納されている指示に基づき、PMEからのデータ転送の方向がデータを一筆書きに転送し、無駄な転送をなくし、同じPMEに複数のデータ転送が行われないように制御され、データの衝突を回避することが出来る。
ここで、上記図8に示す例では特徴重みを縦横3×3、即ち縦横の長さが同じw×wとしているが、縦横の長さが異なる様に一般化することが出来、これをw_1×w_2として表す。
図9は、特徴重みの縦横を異なるものとした時のデータ上のシフト方向を考察する図である。図9(1)は、縦横長さが同じ奇数で、中心に向かう様に一筆書きでシフトすることが出来る。図9(2)は、縱の長さ、横の長さのいずれか一方が偶数であり、図9(1)と同様に、全ての点をちょうど1回ずつ通ハミルトンパスが存在する。これに対し、図9(3)は、縱の長さも横の長さも奇数の場合で有り、1個のPMEは2回通過することになるので、無駄な転送が発生する。
ここで、上記説明したように2.5次元の畳み込み演算の結果が得られるが、このデータはTAPの一番上のPMEが保有している。本発明に従うアルゴリズムでは、TAPの最下面をZ=1, 最上面をZ=CSとすると、l層目で0番目のフィルタを用いたときの2.5次元畳み込み演算の結果
Figure 2019003414

Figure 2019003414
の面状のPMEに配置し、次の層の畳み込みの計算の準備に整える。このため、最上面で計算結果が得られる度に、各PMEが保有している2.5次元畳み込み演算結果を下面方向に1回シフトする(図7B参照)。
図10は、更に本発明に従う2.5次元畳み込み演算の様子を示すタイムチャート図である。このタイムチャートでは、PME(i,j,1), PME(i,j,2),…PME(i,j,Cs)の動作を表している。また、この図ではCin個の面がactiveである。
タイムチャートにおいて、各面の墨塗り部分Aで2次元畳み込み演算を行っている。この計算結果が終了した次のステップでその計算結果とbiasBを足し合わせて上の面のPMEにデータを転送する(上方向矢印)。
次の面のPMEは、下の面のPMEから転送されたデータと自身の2次元畳み込み演算結果を足し合わせて,その結果Cを更に一つ上の面のPMEに転送することを繰り返す。最終的に一番上の面のPMEでの演算結果が、2.5次元畳み込みの演算結果Dとなる。
次いで、この、2.5次元畳み込みの演算結果Dが、一つの重みについて2.5次元畳み込み演算が終わる都度、下向矢印の方向に下の面にシフトされる。この際、上の面からシフトされるデータはPMEでは、それを保存するだけで、その他の処理は行われない。2.5次元畳み込演算を求めるために、一度だけシフトを行う。
上記の動作をCout回繰り返し、一番上の面からCoutまでに2.5次元畳み込み演算結果が保持される。
ここで、CNNの各層において、上記したように2.5次元畳み込み処理が行われた後、プーリング(pooling)演算を行なって、次の層の入力データとされる。
プーリング演算は、2次元畳み込み演算の時と同じ方法で周辺のPMEが持つデータを受け取り次の式(2)で最大値を計算する。
Figure 2019003414
ただし、s'は2以上の自然数であり、畳み込み計算を行うときのストライドを表す。さらに、actは活性化関数であり、例えば
Figure 2019003414
が用いられる。
また、プーリングでは、2次元畳み込みと同様に上面側にデータ転送を行うが、各PMEは、自身の有するデータxと隣接した下面のPMEから受け取ったyinを用いて
Figure 2019003414
を計算する。
この計算を行いながら先に、図9で説明した様にデータを転送することにより周辺のPMEの持つデータの最大値を求める。
以上説明したように、本発明に従うデータ処理装置は、CNNにおけるデータ処理装置として使用される場合は、CNNの構造(学習によって得られた各層のフィルタサイズ、フィルタ数)が入力として与えられる。各フィルタの重みがTAPの各面のフィルタメモリ上に与えられる。さらに、CNNの主入力データがTAPのPMEに配置される。
各面のPMEは、自身のデータと重みを乗算して2次元畳み込みデータを、周辺から転送されるデータとを加算して上位の面上のPMEに送る。したがって、最上位の面にあるPMEで、全ての下面の2次元畳み込み演算結果加算することにより並列性を保ったまま省力で高速の2.5次元畳み込み演算結果を得ることが出来る。
PME メモリ要素
10 乗算及び加算機能ブロック
11 MAX(最大値)演算機能ブロック
20 制御プロセッサ
21 指示メモリ
FM1-FMS フィルタメモリ

Claims (10)

  1. 乗算及び加算機能を有する複数のプロセッシングエレメントを3次元方向に有するデータ処理装置であって、
    それぞれ複数の前記プロセッシングエレメントが2次元方向に配置され、Z軸方向に積層された複数の2次元面を有し、
    前記複数の2次元面のそれぞれに対応して特徴重みが配置されるフィルタメモリを有し、
    入力データがZ軸方向の上位面の2次元面から配置され、
    一の面に配置されたプロセッシングエレメントで前記乗算機能により前記入力データと前記特徴重みの積を順次演算して2次元畳み込みデータを演算し、更に下面から転送されるデータと自身のデータを加算する演算を行い、当該演算結果を隣接する上面のプロセッシングエレメントに転送する、
    ことを特徴とするデータ処理装置。
  2. 請求項1において、
    前記2次元方向に配置されたプロセッシングエレメントはトーラスネットワークに接続され、Z軸方向には、上下面に隣接するプロセッシングエレメントが、ネットワークで双方向に接続される、
    ことを特徴とするデータ処理装置。
  3. 請求項1において、
    前記2次元畳み込みデータは、隣接するプロセッシングエレメントからの転送データと自身のデータを加算演算し、更にシフト方向に隣接するプロセッシングエレメントに前記加算演算結果を転送する、
    ことを特徴とするデータ処理装置。
  4. 請求項1において、
    前記Z軸方向の最上位面にあるプロセッシングエレメントは、下面の複数のプロセッシングエレメントから転送される2次元畳み込みデータと自身のデータを加算して2.5次元畳み込みデータを演算する、
    ことを特徴とするデータ処理装置。
  5. 請求項4において、
    前記2.5次元畳み込みデータは、順次下面のプロセッシングエレメントにシフトされる、
    ことを特徴とするデータ処理装置。
  6. 請求項1乃至4の何れか1項において、
    前記特徴重みは、前記入力データの配置された2次元面の数で分割され、前記入力データの配置された面毎に対応するフィルタメモリに配置し、前記畳み込みの演算の際、前記フィルタメモリに配置された特徴重みを、対応する面の全てのプロセッシングエレメントにブロードキャストする、
    ことを特徴とするデータ処理装置。
  7. 乗算及び加算機能を有する複数のプロセッシングエレメントを3次元方向に有するデータ処理装置におけるデータ処理方法であって、
    前記データ処理装置は、それぞれ複数の前記プロセッシングエレメントが2次元方向に配置され、Z軸方向に積層された複数の2次元面を有し、前記複数の2次元面のそれぞれに対応して特徴重みが配置されるフィルタメモリを有し、
    入力データを前記Z軸方向の上位面の2次元面から配置する工程と、
    一の面に配置されたプロセッシングエレメントで前記乗算機能により前記入力データと前記特徴重みの積を順次演算して2次元畳み込みデータを演算する工程と、
    更に下面から転送されるデータと自身のデータを加算する演算を行い、当該演算結果を隣接する上面のプロセッシングエレメントに転送する工程を、
    有することを特徴とするデータ処理方法。
  8. 請求項7において、
    さらに、前記2次元畳み込みデータは、隣接するプロセッシングエレメントからの転送データと自身のデータを加算演算し、更にシフト方向に隣接するプロセッシングエレメントに前記加算演算結果を転送する工程を、
    有することを特徴とするデータ処理方法。
  9. 請求項7において、
    前記Z軸方向の最上位面にあるプロセッシングエレメントは、下面の複数のプロセッシングエレメントから転送される2次元畳み込みデータと自身のデータを加算して2.5次元畳み込みデータを演算する工程を、
    有することを特徴とするデータ処理方法。
  10. 請求項9において、
    前記2.5次元畳み込みデータを、順次下面のプロセッシングエレメントにシフトする工程を、
    有することを特徴とするデータ処理方法。
JP2017117686A 2017-06-15 2017-06-15 データ処理装置、及びこれにおけるデータ処理方法 Active JP7014393B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017117686A JP7014393B2 (ja) 2017-06-15 2017-06-15 データ処理装置、及びこれにおけるデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017117686A JP7014393B2 (ja) 2017-06-15 2017-06-15 データ処理装置、及びこれにおけるデータ処理方法

Publications (2)

Publication Number Publication Date
JP2019003414A true JP2019003414A (ja) 2019-01-10
JP7014393B2 JP7014393B2 (ja) 2022-02-01

Family

ID=65006911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017117686A Active JP7014393B2 (ja) 2017-06-15 2017-06-15 データ処理装置、及びこれにおけるデータ処理方法

Country Status (1)

Country Link
JP (1) JP7014393B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919311A (zh) * 2019-03-13 2019-06-21 北京地平线机器人技术研发有限公司 生成指令序列的方法、执行神经网络运算的方法和装置
CN110780921A (zh) * 2019-08-30 2020-02-11 腾讯科技(深圳)有限公司 数据处理方法和装置、存储介质及电子装置
CN113792867A (zh) * 2021-09-10 2021-12-14 中科寒武纪科技股份有限公司 运算电路、芯片和板卡
US20220300958A1 (en) * 2019-12-19 2022-09-22 Panasonic Intellectual Property Corporation Of America Control method, device, and recording medium
JP7467786B2 (ja) 2020-03-12 2024-04-16 公立大学法人会津大学 データ処理装置及びデータ処理方法
CN113792867B (zh) * 2021-09-10 2024-05-10 中科寒武纪科技股份有限公司 运算电路、芯片和板卡

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60175174A (ja) * 1984-02-21 1985-09-09 Agency Of Ind Science & Technol 並列デ−タ転送方式
JPH06318194A (ja) * 1993-05-07 1994-11-15 Fujitsu Ltd 並列データ処理方式
JP2012133793A (ja) * 1997-10-10 2012-07-12 Altera Corp プロセッサアレイ及びその形成方法
JP2014016957A (ja) * 2012-07-11 2014-01-30 Tokyo Univ Of Agriculture & Technology データ処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60175174A (ja) * 1984-02-21 1985-09-09 Agency Of Ind Science & Technol 並列デ−タ転送方式
JPH06318194A (ja) * 1993-05-07 1994-11-15 Fujitsu Ltd 並列データ処理方式
JP2012133793A (ja) * 1997-10-10 2012-07-12 Altera Corp プロセッサアレイ及びその形成方法
JP2014016957A (ja) * 2012-07-11 2014-01-30 Tokyo Univ Of Agriculture & Technology データ処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
生垣 佑樹,外2名: "「3次元DCTを効率的に実行するアレイプロセッサの提案」", 第71回(平成21年)全国大会講演論文集(1) アーキテクチャ ソフトウェア科学・工学 データベース, JPN6021014660, 10 March 2009 (2009-03-10), pages 1 - 209, ISSN: 0004491998 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109919311A (zh) * 2019-03-13 2019-06-21 北京地平线机器人技术研发有限公司 生成指令序列的方法、执行神经网络运算的方法和装置
CN109919311B (zh) * 2019-03-13 2020-04-10 北京地平线机器人技术研发有限公司 生成指令序列的方法、执行神经网络运算的方法和装置
CN110780921A (zh) * 2019-08-30 2020-02-11 腾讯科技(深圳)有限公司 数据处理方法和装置、存储介质及电子装置
CN110780921B (zh) * 2019-08-30 2023-09-26 腾讯科技(深圳)有限公司 数据处理方法和装置、存储介质及电子装置
US20220300958A1 (en) * 2019-12-19 2022-09-22 Panasonic Intellectual Property Corporation Of America Control method, device, and recording medium
JP7467786B2 (ja) 2020-03-12 2024-04-16 公立大学法人会津大学 データ処理装置及びデータ処理方法
CN113792867A (zh) * 2021-09-10 2021-12-14 中科寒武纪科技股份有限公司 运算电路、芯片和板卡
CN113792867B (zh) * 2021-09-10 2024-05-10 中科寒武纪科技股份有限公司 运算电路、芯片和板卡

Also Published As

Publication number Publication date
JP7014393B2 (ja) 2022-02-01

Similar Documents

Publication Publication Date Title
TWI639119B (zh) 執行卷積計算的系統及方法
US11907826B2 (en) Electronic apparatus for operating machine learning and method for operating machine learning
JP6987860B2 (ja) ハードウェアにおけるカーネルストライドの実行
TWI627593B (zh) 用於類神經網路計算的旋轉資料
CN107578098B (zh) 基于脉动阵列的神经网络处理器
JP7014393B2 (ja) データ処理装置、及びこれにおけるデータ処理方法
CN108416436B (zh) 使用多核心处理模块进行神经网络划分的方法及其系统
WO2017166568A1 (zh) 一种神经网络加速器及其运算方法
JP6960700B2 (ja) マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式
KR20190022627A (ko) 프로그램 가능한 2차원 이미지 프로세서상의 컨볼루션 신경망
TWI832006B (zh) 實行卷積運算的系統及方法
CN108170640B (zh) 神经网络运算装置及应用其进行运算的方法
KR20170023708A (ko) 콘볼루션 신경망 컴퓨팅 장치
US11164032B2 (en) Method of performing data processing operation
CN109074516A (zh) 计算处理装置和计算处理方法
CN111133457B (zh) 电子设备及其控制方法
JP2022188301A (ja) 情報処理装置、情報処理方法
US11687831B1 (en) Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference
CN113850377A (zh) 数据处理装置、数据处理方法及相关产品
JP2022181161A (ja) ハードウェアにおけるスパース行列乗算
US20220391702A1 (en) Convolution with kernel expansion and tensor accumulation
US20230195836A1 (en) One-dimensional computational unit for an integrated circuit
WO2022256814A1 (en) Convolution with kernel expansion and tensor accumulation
JP2021144519A (ja) データ処理装置及びデータ処理方法
JPH06318194A (ja) 並列データ処理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211105

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: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220113