JP2020161054A - 畳込み演算装置 - Google Patents

畳込み演算装置 Download PDF

Info

Publication number
JP2020161054A
JP2020161054A JP2019062744A JP2019062744A JP2020161054A JP 2020161054 A JP2020161054 A JP 2020161054A JP 2019062744 A JP2019062744 A JP 2019062744A JP 2019062744 A JP2019062744 A JP 2019062744A JP 2020161054 A JP2020161054 A JP 2020161054A
Authority
JP
Japan
Prior art keywords
data
input
rows
columns
input data
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
JP2019062744A
Other languages
English (en)
Other versions
JP7408289B2 (ja
Inventor
広津 鉄平
Teppei Hirotsu
鉄平 広津
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.)
Denso Corp
NSI Texe Inc
Original Assignee
Denso Corp
NSI Texe Inc
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 Denso Corp, NSI Texe Inc filed Critical Denso Corp
Priority to JP2019062744A priority Critical patent/JP7408289B2/ja
Priority to PCT/JP2020/012728 priority patent/WO2020196407A1/ja
Priority to EP20778810.0A priority patent/EP3951637A4/en
Publication of JP2020161054A publication Critical patent/JP2020161054A/ja
Application granted granted Critical
Publication of JP7408289B2 publication Critical patent/JP7408289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】 消費電力が低減された畳込み演算装置を提供する。【解決手段】 畳込み演算装置は、二次元的に配置されデータを夫々記憶する複数の記憶素子(42)を有し、前記複数の記憶素子間で前記データを循環的にシフト可能であり、所定の領域に入力ウィンドウ(44)が設定されており、当該入力ウィンドウ内の前記記憶素子に記憶されたデータを入力データ(d)として選択する、二次元循環シフトレジスタ部(40)と、前記レジスタ部から入力された前記入力データと所定のフィルタをなすウェイトデータとを積和演算して出力データ(Y)を生成する積和演算部(50)と、を具備する。【選択図】 図3

Description

本発明は、畳込み演算を行う畳込み演算装置に関する。
畳込み演算では、入力データに、所定のフィルタをなすウェイトデータを畳込むことで、出力データを生成する。従来の畳込み装置装置では、畳込み演算を行列演算に変換することで、畳込み演算を処理している(例えば、特許文献1参照)。
米国特許第9747548号明細書
従来の畳込み演算装置では、畳込み演算を行列演算に変換しているため、行列演算が可能なように入力データを変換する必要があり、また、元々の入力データを重複させた変換データを取り扱う必要がある。このため、ハードウェアやデータ処理が増大し、消費電力が増大してしまう。
本発明は上記課題に鑑みてなされたものであり、その目的は、消費電力が低減された畳込み演算装置を提供することにある。
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施の形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
本発明の一実施態様は、二次元的に配置されデータを夫々記憶する複数の記憶素子(42)を有し、前記複数の記憶素子間で前記データを循環的にシフト可能であり、所定の領域に入力ウィンドウ(44,44a〜44d)が設定されており、当該入力ウィンドウ内の前記記憶素子に記憶されたデータを入力データとして選択する、二次元循環シフトレジスタ部(40)と、前記レジスタ部から入力された前記入力データと所定のフィルタをなすウェイトデータとを積和演算して出力データを生成する積和演算部(50,50a〜50d)と、を具備する畳込み演算装置である。
本発明では、畳込み演算装置における消費電力が低減されている。
本発明の第1実施形態のDFPシステムを示すブロック図。 本発明の第1実施形態のDFPを示すブロック図。 本発明の第1実施形態の畳込み演算回路を示すブロック図。 本発明の第1実施形態の記憶素子を示すブロック図。 本発明の第1実施形態の積和演算器を示すブロック図。 本発明の第1実施形態のシフトによる入力データの選択を示す模式図。 本発明の第1実施形態の入力データ範囲の移動を示す概念図。 本発明の第1実施形態の一連のシフト動作を示す表図。 本発明の第2実施形態の畳込み演算回路を示すブロック図。 本発明の第2実施形態の一連のシフト動作を示す表図。 本発明の第3実施形態の畳込み演算回路を示すブロック図。 本発明の第3実施形態の積和演算で用いられる定数行列を示す表図。 本発明の第3実施形態の入力データ範囲の移動を示す概念図。
[第1実施形態]
図1乃至図8を参照して、本発明の第1実施形態について説明する。
畳込み演算回路については、自動運転の画像認識や物体検知に用いられるデータフロープロセッサ(Data Flow Processor、以下「DFP」という。)等に用いられるものである。
本実施形態の畳込み演算回路では、シフトレジスタ40において、二次元的に配置された多数の記憶素子42にデータ要素が記憶され、所定の領域に設定された入力ウィンドウ44内の記憶素子42のデータ要素を入力データdとして選択する。積和演算器50において、シフトレジスタ40から入力された入力データdと、所定のフィルタをなすウェイトデータgとを積和演算して、出力データYを生成する。ここで、シフトレジスタ40において総データ要素を順次シフトさせて、入力ウィンドウ44内のデータ要素を順次入力データdとして選択し、当該入力データdから順次生成された出力データYから総出力データZを生成する。
図1を参照して、DFPシステム10について概説する。
本実施形態のDFPシステム10では、DFP11については、ホストCPU12の重い演算負荷に対処する個別のマスタとして機能し、プログラム及び独自の命令フェッチが可能であり、イベントハンドラ13が生成した割込み処理をサポートする。DFP11、ホストCPU12、ROM14、RAM15及び外部インターフェイス16は、システムバス17を介して、データの送受信を行う。
図2を参照して、DFP11について概説する。
DFP11については、多量のスレッドに対して、ハードウェアによる動的レジスタ配置及びスレッド・スケジューリングにより、異なる命令ストリームに対してであっても複数のスレッドを並列実行することを可能とする。なお、このような多量のスレッドについては、コンパイラによって、プログラムコードを自動ベクトル化し、プログラムのタスク並列性及びグラフ並列性を保持するグラフ構造を抽出することにより、生成することが可能である。
DFP11において、複数の実行コア22は、夫々、独立してスケジューリング可能な多数のパイプラインを備え、4つのプロセッシングエレメントPE#0、PE#1、PE#2、PE#3間でリソースを共有する。スレッドスケジューラ24は、多数のスレッドを跨いだスケジューリングを実現し、多数のスレッドを同時実行する。コマンドユニット26は、コンフィグ・インターフェイス28との間でデータを送受信し、コマンド・バッファとして機能する。メモリサブシステム30は、アービタ32、L1キャッシュ34a及びL2キャッシュ34bによって形成され、システムバス・インターフェイス36及びROMインターフェイス38との間でデータを送受信する。
本実施形態では、畳込み演算回路については、DFP11が備える複数の実行コア22の内の1つの実行コア22として用いられる。
図3を参照して、畳込み演算回路について説明する。
畳込み演算回路は、二次元循環シフトレジスタ40及び積和演算器50によって形成されている。
シフトレジスタ40では、多数の記憶素子42が二次元的に配置されている。本実施形態では、第0行から第7行かつ第0列から第7列の8行8列の64個の記憶素子42が用いられている。
各記憶素子42には、データ要素が記憶される。各記憶素子42は当該記憶素子42の上下左右に配置された記憶素子42と接続されており、各記憶素子42のデータ要素は上下左右に配置された記憶素子42にシフト可能である。シフトレジスタ40については、二次元循環型であり、最上行、最下行、最左列、最右列の記憶素子42の上、下、左、右に、夫々、最下行、最上行、最右列、最左列の記憶素子42が配置されているものとする。ここで、各記憶素子42がn個隣の記憶素子42に接続され、各記憶素子42とn個隣の記憶素子42との間でデータ要素がシフトされる場合に、シフト量がnであるとする。本実施形態では、各記憶素子42は上下左右に隣接した記憶素子42とのみ接続されており、各記憶素子42のデータ要素は上下左右に隣接した記憶素子42にのみシフト可能であるため、シフト量は1となる。
シフトレジスタ40には、メモリインターフェース60が接続されている。メモリインターフェース60からシフトレジスタ40の最下行の各記憶素子42にデータ要素が順次入力される。最下行の各記憶素子42に入力されたデータ要素を順次上方向にシフトさせていくことで、全ての記憶素子42にデータ要素が記憶される。
シフトレジスタ40において、所定の領域に入力ウィンドウ44が設定されている。入力ウィンドウ44内の記憶素子42に記憶されているデータ要素が入力データdとして選択され、積和演算器50へと出力される。本実施形態では、第0行から第2行かつ第0列から第2列の3行3列の記憶素子42を包含する領域に入力ウィンドウ44が設定されている。そして、8行8列の総データ要素から3行3列の入力データdが選択され、3行3列の入力データdが積和演算器50に出力される。
図4を参照して、シフトレジスタ40の記憶素子42について詳細に説明する。
記憶素子42は、マルチプレクサ46(MUX)及びフリップフロップ48(FF)から形成されている。本実施形態では、マルチプレクサ46には、上下左右に隣接した記憶素子42のフリップフロップ48からデータ要素が入力される。マルチプレクサ46は、入力された4個のデータ要素の内から1個のデータ要素を選択して、当該記憶素子42のフリップフロップ48に出力する。フリップフロップ48は、マルチプレクサ46から入力されたデータ要素を保持する。
図5を参照して、積和演算器50について説明する。
積和演算器50では、入力データdと所定のフィルタなすウェイトデータwとの積和演算を行い、出力データYを生成する。即ち、以下の式(1)で示されるように、入力データdとウェイトデータgとのフロベニウス積を出力データYとする。ここで、dqrは入力データdをなす入力データ要素、gqrはウェイトデータgをなすウェイトデータ要素である。
Figure 2020161054
本実施形態では、3行3列の入力データd(dqr:q=0〜2;r=0〜2)と3行3列のウェイトデータg(gqr:q=0〜2;r=0〜2)とから1行1列の出力データYを生成する。このため、積和演算における乗算回数は9回となる。
積和演算器50は、入力レジスタ52、ウェイトレジスタ54、乗算器56及び加算器ツリー58から形成されている。入力レジスタ52は、シフトレジスタ40から入力された入力データdをなす入力データ要素dqrを保持する。ウェイトレジスタ54は、図示しないインターフェイスから入力されたウェイトデータgをなすウェイトデータ要素gqrを保持する。本実施形態では、入力レジスタ52及びウェイトレジスタ54は、夫々、9個の記憶領域を備える。各乗算器56は、入力レジスタ52の各入力データ要素dqrと、ウェイトレジスタ54の各ウェイトデータ要素gqrとの乗算を行い、加算器ツリー58は、各乗算器56で算出された全乗算結果を加算する。本実施形態では、9個の乗算器56が用いられ、加算器ツリー58により9個の乗算結果が加算される。
図6乃至図8を参照して、本実施形態の畳込み演算処理について説明する。
図6に示されるように、シフトレジスタ40において、総データ要素を順次シフトさせ、入力ウィンドウ44内のデータ要素を順次入力データdとして選択する。本実施形態では、8行8列の総データ要素ij(i=0〜7;j=0〜7)を順次シフトさせ、第0行から第2行かつ第0列から第2列の3行3列の入力ウィンドウ44内のデータ要素を、順次入力データdとして選択する。
図7に示されるように、シフトレジスタ40におけるシフトによる入力データdの選択については、総データ要素における入力データ範囲Dの移動に対応する。ここで、シフトレジスタ40における上下左右方向へのシフトについては、総データ要素における入力データ範囲Dの逆方向への移動に対応する。以下では、最上左を基準として、下方向及び右方向に夫々k及びlだけ変位した入力データ範囲Dの入力データをdklとし、当該入力データdklから生成される出力データをYklとする。本実施形態では、8行8列の総データ要素ij(i=0〜7;j=0〜7)において、3行3列の入力データ範囲Dが下方向及び右方向に夫々k及びl(k=0〜5;l=0〜5)だけ変位することになる。
図8に示されるように、一連のシフト動作では、入力データ選択から次の入力データ選択までの1サイクルで、シフト量1及びシフト回数1のシフト動作がなされ、35回のサイクルで35回のシフトが実行される。当該35回のサイクルにより、サイクル開始前も含め、36個の3行3列の入力データdklが選択され、当該36個の3行3列の入力データdklから36個の1行1列の出力データYklが生成される。そして、36個の出力データYklを要素zklとする6行6列の総出力データZが生成される。
本実施形態では、畳込み演算におけるシフト回数は35回となる。また、総乗算回数は、積和演算における乗算回数である9回と、入力データの選択回数である36回とを乗じて、324回となる。
本実施形態の畳込み演算回路については、以下の効果を奏する。
本実施形態の畳込み演算回路では、畳込み演算を行列演算に変換しているわけではないため、行列演算が可能なように入力データを変換する必要はなく、また、元々の入力データを重複させた変換データを取り扱う必要もない。このため、ハードウェアやデータ処理の増大が回避されており、畳込み演算装置における消費電力が低減されている。
[第1実施形態の第1変形例]
以下、本発明の第1実施形態の第1変形例について説明する。
本変形例の畳込み演算回路では、シフトレジスタ40において、複数の入力ウィンドウ領域を互いに切替可能としたものである。即ち、複数の入力ウィンドウ領域に包含される全記憶素子42がマルチプレクサに接続されており、マルチプレクサにおいて記憶素子42から入力される入力データ要素を選択することで、複数の入力ウィンドウ領域が互いに切り替えられるようになっている。
例えば、畳込み演算で3行3列、4行4列、5行5列のフィルタが用いられる場合に、当該各フィルタに対応して、3行3列、4行4列、5行5列の記憶素子42を夫々包含する第0乃至第2の入力ウィンドウ領域を互いに切替可能とする。このような第0乃至第2の入力ウィンドウ領域として、例えば、(0)第0行から第2行かつ第0列から第2列の3行3列の記憶素子42を包含する第0の入力ウィンドウ領域、(1)第0行から第3行かつ第0列から第3列の4行4列の記憶素子42を包含する第1の入力ウィンドウ領域、(2)第0行から第4行かつ第0列から第4列の5行5列の記憶素子42を包含する第2の入力ウィンドウ領域を用いることが可能である。
本変形例の畳込み演算回路については、シフトレジスタ40において、複数の入力ウィンドウ領域が互いに切替可能であるため、様々な種類の畳込み演算に対応可能であり、汎用性の高い畳込み演算回路が実現されている。
[第1実施形態の第2変形例]
以下、本発明の第1実施形態の第2変形例について説明する。
本変形例の畳込み演算回路については、シフトレジスタ40において、シフト量を切替可能としたものである。即ち、各記憶素子42のマルチプレクサ46に、上下左右の方向毎に、s個隣、s個隣、…、s個隣(n≧2)の記憶素子42のフリップフロップ48が接続されている。そして、各記憶素子42のマルチプレクサ46において、s個隣、s個隣、…、s個隣(n≧2)のいずれの記憶素子42のフリップフロップ48から入力されたデータ要素を選択するかを切り替えることにより、シフト量が切り替えられる。
例えば、シフトレジスタ40において、各記憶素子42のマルチプレクサ46に、上下左右の方向毎に、隣接する記憶素子42のフリップフロップ48に加えて、2個隣の記憶素子42のフリップフロップ48が接続されており、各記憶素子42のマルチプレクサ46において、隣接する記憶素子42と、2個隣の記憶素子42とのいずれの記憶素子42から入力されたデータ要素を選択するかを切り替えることにより、シフト量が1と2との間で切り替えられる。
本変形例の畳込み演算回路では、シフトレジスタ40において、シフト量が切替可能であるため、様々な種類の畳込み演算に対応可能であり、汎用性の高い畳込み演算回路が実現されている。
さらに、第1実施形態の第1変形例と第2変形例とを組み合わせて、シフトレジスタ40において、入力データ領域及びシフト量を切替可能とすることで、さらに汎用性の高い畳込み演算回路を実現することが可能である。
[第2実施形態]
図9及び図10を参照して、本発明の第2実施形態について説明する。
本実施形態の畳込み演算回路については、シフトレジスタ40において、複数の入力ウィンドウ44a−44dを設定したものである。
なお、図9では、図の簡略化のため、最上行と最下行との各記憶素子42間、並びに、最左列と最右列との各記憶素子42間について、信号線の図示を省略している。
図9に示されるように、本実施形態のシフトレジスタ40では、第0乃至第3の入力ウィンドウ44a−44dが設定されている。第0乃至第3の入力ウィンドウ44a−44dとして、(0)第0行から第2行かつ第0列から第2列の3行3列の記憶素子42を包含する第0の入力ウィンドウ44a、(1)第0行から第2行かつ第3列から第5列の3行3列の記憶素子42を包含する第1の入力ウィンドウ44b、(2)第3行から第5行かつ第0列から第2列の3行3列の記憶素子42を包含する第2の入力ウィンドウ44c、(4)第3行から第5行かつ第3列から第5列の3行3列の記憶素子42を包含する第3の入力ウィンドウ44dが用いられる。第0乃至第3の入力ウィンドウ44内の記憶素子42からの入力データd〜dは夫々第0乃至第3の積和演算器50a〜50dに入力され、第0乃至第3の積和演算器50a〜50dにおいて出力データY〜Yが生成される。
畳込み演算処理では、シフトレジスタ40において、一連のシフト動作を実行する。図10に示されるように、一連のシフト動作では、入力データ選択から次の入力データ選択までの1サイクルで、シフト量1かつシフト回数1のシフト動作がなされ、8回のサイクルで8回のシフトが実行される。当該8回のサイクルにより、サイクル開始前も含め、第0乃至第3の入力ウィンドウ44a〜44dによって、夫々、各9個の3行3列の入力データdm n、dm 3+n、d3+m n、d3+m 3+n(m=0〜2;n=0〜2)が選択され、当該各9個の3行3列の入力データdm n、dm 3+n、d3+m n、d3+m 3+nから各9個の1行1列の出力データYm n、Ym 3+n、Y3+m n、Y3+m 3+nが生成される。そして、第1実施形態と同様に、36個の出力データYklを要素zklとする6行6列の総出力データZが生成される。
本実施形態では、畳込み演算におけるシフト回数は8回となる。また、総乗算回数は、積和演算における乗算回数である9回と、入力ウィンドウ44a〜44dの個数である4個と、入力データの選択回数である9回とを乗じて、324回となる。
本実施形態の畳込み演算回路については、以下の効果を奏する。
本実施形態の畳込み演算回路では、シフトレジスタ40において複数の入力ウィンドウ44a〜44dを設定しているため、単一の入力ウィンドウ44を設定する場合と比較して、少ないシフト回数で同一の出力を得ることができ、畳込み演算を高速で実行することが可能となっている。
[第3実施形態]
図11乃至図13を参照して、本発明の第3実施形態について説明する。
本実施形態の畳込み演算回路については、ウィノグラードアルゴリズムに基づく積和演算を行うものであり、3行3列のフィルタに対して、5行5列の入力データを選択し、3行3列の出力データを生成する。
なお、図11では、図9と同様に、図の簡略化のため、最上行と最下行との各記憶素子42間、並びに、最左列と最右列との各記憶素子42間について、信号線の図示を省略している。
図11に示されるように、シフトレジスタ40では、第0行から第4行かつ第0列から第4列の5行5列の記憶素子42を包含する入力ウィンドウ44が設定されている。
積和演算器50では、以下の式(2)に示されるように、ウィノグラードアルゴリズムに基づき入力データdとウェイトデータgとの積和演算を行う。ここで、G、B、Aは定数行列である。
Figure 2020161054
本実施形態では、5行5列の入力データdと3行3列のウェイトデータgとの積和演算により、3行3列の出力データYが生成される。定数行列G、B、Aについては図12に示されるとおりである。ウェイト項GgGについては予め算出されている。このため、本実施形態では、積和演算における乗算回数は25回となる。また、図12に示されるように、定数行列B及びAについては、要素が1、2、3、4のいずれかとなっており、乗算演算をビットシフト演算と加算演算のみで実行することが可能となっている。
図13を参照して、本実施形態の畳込み演算処理について説明する。
本実施形態では、図13に示されるように、8行8列の総データ要素ij(i=0〜7;j=0〜7)において、5行5列の入力データ範囲Dが右方向及び下方向に夫々k及びl(k=0,3;l=0,3)だけ変位されることになる。
図13に示されるように、一連のシフト動作では、入力データ選択から次の入力データ選択までの1サイクルで、シフト量1かつシフト回数3のシフト動作がなされ、3回のサイクルで9回のシフトが実行される。当該3回のサイクルにより、サイクル開始前も含め、4個の5行5列の入力データdklが選択され、当該4個の5行5列の入力データdklから4個の3行3列の出力データYklが生成される。そして、各3行3列の出力データYklの出力データ要素ykl op(o=0〜2;p=0〜2)を要素zk+o l+pとする6行6列の総出力データZが生成される。
本実施形態では、畳込み演算におけるシフト回数は9回となる。また、総乗算回数は、積和演算における乗算回数である25回と、入力データの選択回数である4回とを乗じて、100回となる。
本実施形態の畳込み演算回路については、以下の効果を奏する。
本実施形態の畳込み演算回路では、ウィノグラードアルゴリズムに基づく積和演算を行うようにすることで、乗算回数及びシフト回数を大幅に削減することが可能である。また、3行3列のフィルタに対して、5行5列の入力データを選択し、3行3列の出力データを生成するようにすることで、乗算演算をビットシフト演算と加算演算のみで実行することが可能である。このため、畳込み演算を充分に高速かつ低消費電力で実行することが可能となっている。
[第3実施形態の第1変形例]
以下、第3実施形態の第1変形例について説明する。
本変形例の畳込み演算回路については、第3実施形態のシフトレジスタ40において、シフト量を3としたものである。第1実施形態で説明したように、各記憶素子42を3個隣の記憶素子42に接続し、各記憶素子42と3個隣の記憶素子42との間でデータ要素をシフトさせることで、シフト量3のシフトを実現可能である。当該シフトレジスタ40では、入力データ選択から次の入力データ選択までの1サイクルで、シフト量3かつシフト回数1のシフト動作がなされ、3回のサイクルで3回のシフトが実行される。このため、本変形例のシフト回数は3回である。
このように、本変形例では、畳込み演算におけるシフト回数がさらに削減されており、畳込み演算をさらに高速かつ低消費電力で実行することが可能となっている。
[第3実施形態の第2変形例]
以下、第3実施形態の第2変形例について説明する。
本変形例の畳込み演算回路については、第3実施形態のシフトレジスタ40において、シフト動作に代えて、第0乃至第3の入力ウィンドウ領域を互いに切替可能としたものである。即ち、第0乃至第3の入力ウィンドウ領域として、(0)第0行から第4行かつ第0列から第4列の5行5列の記憶素子42を包含する第0の入力ウィンドウ領域、(1)第0行から第4行かつ第3列から第7列の5行5列の記憶素子42を包含する第1の入力ウィンドウ領域、(2)第3行から第7行かつ第0列から第4列の5行5列の記憶素子42を包含する第2の入力ウィンドウ領域、(3)第3行から第7行かつ第3列から第7列の3行3列の記憶素子42を包含する第3の入力ウィンドウ領域が用いられる。そして、第0乃至第3の入力ウィンドウ領域を順次切り替えて入力データを選択し、当該入力データから順次出力データを生成して、出力データから総出力データを生成する。
このように、本変形例では、畳込み演算において、入力ウィンドウ領域の切替えを行うことで、シフト動作を不要としており、畳込み演算をさらに高速かつ低消費電力で実行することが可能となっている。
40…シフトレジスタ 42…記憶素子
44,44a〜44d…入力ウィンドウ 50,50a〜50d…積和演算器
d,d〜d…入力データ Y,Y〜Y…出力データ

Claims (4)

  1. 二次元的に配置されデータを夫々記憶する複数の記憶素子(42)を有し、前記複数の記憶素子間で前記データを循環的にシフト可能であり、所定の領域に入力ウィンドウ(44,44a〜44d)が設定されており、当該入力ウィンドウ内の前記記憶素子に記憶されたデータを入力データ(d,d〜d)として選択する、二次元循環シフトレジスタ部(40)と、
    前記レジスタ部から入力された前記入力データと所定のフィルタをなすウェイトデータとを積和演算して出力データ(Y,Y〜Y)を生成する積和演算部(50,50a〜50d)と、
    を具備する畳込み演算装置。
  2. 前記積和演算部は、ウィノグラードアルゴリズムに基づく積和演算を行い、
    前記フィルタは、3行3列のフィルタであり、
    前記入力データは、5行5列の入力データであり、
    前記出力データは、3行3列の出力データである、
    請求項1に記載の畳込み演算装置。
  3. 前記レジスタ部は、複数の前記入力ウィンドウを有し、複数の前記入力データを選択可能であり、
    前記畳込み演算装置は、前記レジスタ部から前記複数の入力データが夫々入力される複数の前記積和演算器をさらに具備する、
    請求項1に記載の畳込み演算装置。
  4. 前記レジスタ部は、前記入力ウィンドウの領域又は前記シフトのシフト量を切替可能である、
    請求項1に記載の畳込み演算装置。
JP2019062744A 2019-03-28 2019-03-28 畳込み演算装置 Active JP7408289B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019062744A JP7408289B2 (ja) 2019-03-28 2019-03-28 畳込み演算装置
PCT/JP2020/012728 WO2020196407A1 (ja) 2019-03-28 2020-03-23 畳込み演算装置
EP20778810.0A EP3951637A4 (en) 2019-03-28 2020-03-23 DEVICE FOR CONVOLUTION CALCULATION

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019062744A JP7408289B2 (ja) 2019-03-28 2019-03-28 畳込み演算装置

Publications (2)

Publication Number Publication Date
JP2020161054A true JP2020161054A (ja) 2020-10-01
JP7408289B2 JP7408289B2 (ja) 2024-01-05

Family

ID=72611069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019062744A Active JP7408289B2 (ja) 2019-03-28 2019-03-28 畳込み演算装置

Country Status (3)

Country Link
EP (1) EP3951637A4 (ja)
JP (1) JP7408289B2 (ja)
WO (1) WO2020196407A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022065365A1 (ja) 2020-09-25 2022-03-31 株式会社日本触媒 吸水性樹脂粉末の製造方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11783163B2 (en) * 2020-06-15 2023-10-10 Arm Limited Hardware accelerator for IM2COL operation
WO2023004762A1 (zh) * 2021-07-30 2023-02-02 华为技术有限公司 计算机系统和数据处理方法
CN114399036B (zh) * 2022-01-12 2023-08-22 电子科技大学 一种基于一维Winograd算法的高效卷积计算单元
CN115469826B (zh) * 2022-09-16 2023-04-07 深圳思谋信息科技有限公司 数据处理方法、装置、计算机设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318194A (ja) * 1993-05-07 1994-11-15 Fujitsu Ltd 並列データ処理方式
JPH0962653A (ja) * 1995-08-29 1997-03-07 Mitsubishi Electric Corp 積和演算装置、積和演算器集積回路装置及び累積加算器
US20180005074A1 (en) * 2016-07-01 2018-01-04 Google Inc. Convolutional Neural Network On Programmable Two Dimensional Image Processor
US20180032312A1 (en) * 2016-07-29 2018-02-01 Microunity Systems Engineering, Inc. Processor and method for outer product accumulate operations

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318194A (ja) * 1993-05-07 1994-11-15 Fujitsu Ltd 並列データ処理方式
JPH0962653A (ja) * 1995-08-29 1997-03-07 Mitsubishi Electric Corp 積和演算装置、積和演算器集積回路装置及び累積加算器
US20180005074A1 (en) * 2016-07-01 2018-01-04 Google Inc. Convolutional Neural Network On Programmable Two Dimensional Image Processor
US20180032312A1 (en) * 2016-07-29 2018-02-01 Microunity Systems Engineering, Inc. Processor and method for outer product accumulate operations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AYDONAT UTKU UTKU AYDONAT@INTEL COM ET AL: "An OpenCL(TM) Deep Learning Accelerator on Arria 10", PROCEEDINGS OF THE 2017 CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS , CHI '17, ACM PRESS,, JPN6023014688, 22 February 2017 (2017-02-22), US, pages 55 - 64, XP055742332, ISSN: 0005038182, DOI: 10.1145/3020078.3021738 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022065365A1 (ja) 2020-09-25 2022-03-31 株式会社日本触媒 吸水性樹脂粉末の製造方法

Also Published As

Publication number Publication date
EP3951637A4 (en) 2022-06-22
EP3951637A1 (en) 2022-02-09
JP7408289B2 (ja) 2024-01-05
WO2020196407A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
WO2020196407A1 (ja) 畳込み演算装置
CN109240746B (zh) 一种用于执行矩阵乘运算的装置和方法
US11175920B2 (en) Efficient work execution in a parallel computing system
CN110678840B (zh) 张量寄存器文件
CN110678841B (zh) 张量处理器指令集架构
US20170206089A1 (en) Information processing apparatus and computational method
US20220004364A1 (en) Convolutional computation device
CN112506567B (zh) 数据读取方法和数据读取电路
US10908916B2 (en) Apparatus and method for executing a plurality of threads
TW201901483A (zh) 執行雙輸入值絕對值及加總運算的電路
EP3931688B1 (en) Data processing
WO2017007318A1 (en) Scalable computation architecture in a memristor-based array
Lee et al. NP-CGRA: Extending CGRAs for efficient processing of light-weight deep neural networks
US11409840B2 (en) Dynamically adaptable arrays for vector and matrix operations
JP6712052B2 (ja) 演算処理装置及び演算処理装置の制御方法
US20200272478A1 (en) Vector processor and control method therefor
CN110457648B (zh) 一种用于lu分解的脉动阵列结构的实现方法
JP2021108104A (ja) 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法
JP2020080048A (ja) 並列処理装置およびプログラム
Siddiqui et al. Design space exploration of embedded applications on heterogeneous cpu-gpu platforms
JP7506086B2 (ja) データ処理
WO2022121273A1 (zh) Simt指令处理方法及装置
Khurge Strategic Infrastructural Developments to Reinforce Reconfigurable Computing for Indigenous AI Applications
Venieris et al. Towards heterogeneous solvers for large-scale linear systems
US11630667B2 (en) Dedicated vector sub-processor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231003

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231220

R150 Certificate of patent or registration of utility model

Ref document number: 7408289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350