JP2021022362A - 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 - Google Patents

複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP2021022362A
JP2021022362A JP2020039446A JP2020039446A JP2021022362A JP 2021022362 A JP2021022362 A JP 2021022362A JP 2020039446 A JP2020039446 A JP 2020039446A JP 2020039446 A JP2020039446 A JP 2020039446A JP 2021022362 A JP2021022362 A JP 2021022362A
Authority
JP
Japan
Prior art keywords
convolution
data
image data
data processing
windows
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
JP2020039446A
Other languages
English (en)
Other versions
JP6955598B2 (ja
Inventor
ジハオ リャン
Zihao Liang
ジハオ リャン
ジエン オウヤン
Ouyang Jian
ジエン オウヤン
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021022362A publication Critical patent/JP2021022362A/ja
Application granted granted Critical
Publication of JP6955598B2 publication Critical patent/JP6955598B2/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors

Landscapes

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

Abstract

【課題】複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体を提供する。【解決手段】方法は、画像を複数組の畳み込みウィンドウに区画することをむ。複数組の畳み込みウィンドウは、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウを含む。各組の畳み込みウィンドウは、複数の畳み込みウィンドウを含む。複数のデータ処理ユニットにより、第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出し、第1組の畳み込みウィンドウ内の画像データを抽出した後、複数のデータ処理ユニットにより、第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出する。畳み込みデータを抽出するプロセス中に、複数のデータ処理ユニットにより、複数の畳み込みウィンドウ内の画像データを並行して抽出する。【選択図】図2

Description

本開示の実施形態は、主に画像データ処理技術分野に属し、特に、複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体に関する。
機械学習とは、人間のように大量のデータから機械が規則性を学習できるようにすることで、いくつかの特定のタスクを遂行することができる機械学習モデルを生成することである。人工ニューラルネットワークは、人間の脳をモデルとして人工ニューラルネットワークを作成し、様々な機械学習アルゴリズムを用いることで、大量のデータを通じてコンピュータを学習させる一般的な機械学習技術である。一般的な人工ニューラルネットワークは、畳み込みニューラルネットワーク(CNN)、回帰型ニューラルネットワーク(RNN)などを含む。深層学習も機械学習の一種であるが、深層学習は深層ニューラルネットワーク(DNN)を利用し、モデルをより複雑に処理させ、それによりモデルがデータに対する理解をより深くさせる。
CNNは、畳み込み計算を含み且つ深層構造を有するフィードフォワードニューラルネットワークであり、コンピュータビジョン、特に画像処理分野において非常に幅広く応用されている。コンピュータの観点から見ると、画像は実際には一つの二次元又は三次元行列であり、CNNが行う作業は、畳み込み、プール化等の操作を用いて二次元又は三次元配列から特徴を抽出して、画像を識別することである。CNNは、通常に入力層、畳み込み層、活性化関数、プール層、全結合層で構成される。
ニューラルネットワークモデルの多様化及び演算力に対する需要の向上に伴い、従来の深層学習ハードウェアプラットフォーム(例えば、汎用プロセッサ、グラフィックプロセッサGPU)のパフォーマンスとコストなどの要因を考慮して、業界は深層学習アクセラレータの開発を開始した。深層学習アクセラレータのハードウェアコアの一つは行列演算であり、行列演算モジュールの動作は上位階層のデータ供給に依存し、行列演算モジュールの演算力を十分に利用するために、効率的で柔軟なデータ供給方式はハードウェア設計の重点である。
本開示の実施形態により、複数の畳み込みウィンドウ内の画像データを並行して抽出する方法、装置、機器及びコンピュータ可読記憶媒体が提供される。
本開示の第1態様において、複数の畳み込みウィンドウ内の画像データを並行して抽出する方法が提供される。該方法は、画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画するステップと、複数のデータ処理ユニットにより第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するステップと、第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、複数のデータ処理ユニットにより第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するステップと、を含む。
本開示の第2態様において、複数の畳み込みウィンドウ内の画像データを並行して抽出する装置が提供される。該装置は、画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画するように構成される畳み込みウィンド組区画モジュールと、複数のデータ処理ユニットにより第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される第1の並行抽出モジュールと、第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、複数のデータ処理ユニットにより第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される第2の並行抽出モジュールと、を備える。
本開示の第3態様において、1つまたは複数のプロセッサと、1つまたは複数のプログラムを格納するための記憶装置と、を備える電子機器が提供される。1つまたは複数のプログラムが1つまたは複数のプロセッサによって実行されると、電子機器は本開示の実施形態に係る様々な方法および/またはプロセスを実現する。
本開示の第4態様において、コンピュータプログラムが格納されるコンピュータ可読記憶媒体であって、該プログラムがプロセッサによって実行されると、本開示の実施形態に係る様々な方法および/またはプロセスを実現するコンピュータ可読記憶媒体が提供される。
発明の概要に記載された内容は、本開示の実施形態のかなめとなる特徴又は重要な特徴を限定することを意図するものではなく、本開示の範囲を限定するものでもない。本開示の他の特徴は、以下の説明によって容易に理解されるであろう。
図面を踏まえて以下の詳細な説明を参照すれば、本開示の各実施形態の上述したもの並びに他の特徴、利点及び態様は、より明らかになるであろう。添付図面において、同一又は類似の参照番号は、同一又は類似の要素を表す。
畳み込みニューラルネットワークにおける畳み込みプロセスを示す概略図である。 本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出する方法を示すフローチャートである。 本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出するプロセスを示す概略図である。 本開示の実施形態に係るデータを並行して処理するためのアクセラレータデバイスの例示的なアーキテクチャを示す概略図である。 本開示の実施形態に係る畳み込みデータを抽出するための例示的なプロセスを示す概略図である。 本開示の実施形態に係る行列転置を並行して行うための例示的なプロセスを示す概略図である。 本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出する装置を示すブロック図である。 本開示の複数の実施形態を実施することができる電子機器を示すブロック図である。
以下、添付図面を参照しながら本開示の実施形態を更に詳しく説明する。本開示のいくつかの実施形態が図面に示されているが、本開示は様々な形態で具現化されてもよく、本明細書に記載の実施形態に限定されると解釈されるべきではなく、逆に、これらの実施形態は、本開示をより明確かつ完全に理解するために提供されるものであることを理解されたい。なお、本開示の図面及び実施形態は例示的なものにすぎず、本開示の保護範囲を限定するものではない。
本開示の実施形態の説明では、用語「…を含む」およびそれに類似する用語は、「…を含むがそれらに限定されない」という非限定の表現として理解されるべきである。用語「…に基づいて」は、「少なくとも部分的に…に基づいて」と理解されるべきである。用語「1つの実施形態」または「該実施形態」は、「少なくとも1つの実施形態」と理解されるべきである。用語「いくつかの実施形態」は、「少なくともいくつかの実施形態」と理解されるべきである。以下では、他の明確か暗黙的な定義がさらに含まれ得る。
従来、画像畳み込み処理では、畳み込みカーネルを画像上でスライドさせ、畳み込みウィンドウの画素点を1つずつ抽出して出力していた。しかしながら、従来の方法では、異なる畳み込みウィンドウ内の画像データを直列に抽出するため、効率的にデータ変換を行うことができず、処理性能に影響を与えていた。また、従来の方法では、行列転置時にも直列に転置を行っていた。したがって、従来技術の不足は主に柔軟性が確保されると同時にハードウェアの並行性が十分に発揮されず、毎回1つ又は1組の数のみを対象として操作することができ、データの変換を効率的に行うことができないので、後続の計算の性能が制限される。
そこで、本開示の実施態様において、複数の畳み込みウィンドウ内の画像データを並行して抽出する技術案が提供される。本開示の実施形態によれば、畳み込みデータを抽出するプロセス中に、複数のデータ処理ユニットにより、複数の畳み込みウィンドウ内の画像データを並行して抽出することで、データ抽出の速度が高まれ、それにより画像畳み込みの処理効率が向上される。また、本開示のいくつかの実施形態は、さらに行列転置を並行して行う方法を提供し、複数のデータ処理ユニットによって1つの行列における複数の列を並行して抽出することで、行列転置の速度が向上される。以下、本開示の実施例のいくつかの実施形態を図1〜図8を参照しながら詳細に説明する。
図1は、畳み込みニューラルネットワークにおける畳み込みプロセス100の概略図を示している。畳み込みニューラルネットワークは、画像畳み込みにより、画像内の物体のエッジを探したり、像ぶれ、鮮鋭化、エンボス効果など、画像に何らかの効果を強めたり、弱めたりするなど、画像の一部の特徴を発見する。
図1は、畳み込みカーネル120により画像110を畳み込む例示的なプロセスを示している。ここで、畳み込みカーネル120は、3×3の二次元行列であり得る。なお、複数の畳み込みカーネルを用いて画像を畳み込むようにしてもよい。画像畳み込みの思想は、入力画像(例えば、画像110)の1画素に対して、その値を周囲の近傍の画素値で重み付けし、このように重み付けにより生成された新たな画素値は順次に、新たな出力画像(例えば、画像130)を生成することができる。
畳み込みカーネル120は、画像110の各畳み込みウィンドウをスライドさせることにより畳み込みデータを得る。図1に示すように、まず、畳み込みカーネルを画像110における第1の畳み込みウィンドウ111にスライドさせ、畳み込みウィンドウ111における画素点と畳み込みカーネル120との積和演算により(121に示すように)、畳み込みウィンドウ111に対する畳み込み出力131を生成し、画像130に記憶する。例えば、画素ごとに積和演算した値を、出力画像行列の第1の要素の位置に配置する。
畳み込みウィンドウ111の畳み込みが完了した後、畳み込みカーネルを右に1距離分だけスライドし、当然に右へより多くの距離分スライドすることを選択してもよく、このような距離がストライド(stride)と呼ばれ、予め設定されることができる。次に、図1の矢印140に示すように、画像110の第2の畳み込みウィンドウ112について、畳み込みウィンドウ112内の画素点と畳み込みカーネル120との積和演算により(122に示すように)、畳み込みウィンドウ111に対する畳み込み出力132を生成して、画像130に記憶する。そして、畳み込みカーネル120が画像110内の全ての畳み込みウィンドウをスライドするまで、上述した畳み込み処理を繰り返すことで、畳み込み済み画像130を生成する。しかしながら、図1で説明した畳み込み処理では、データが直列に抽出され、その後演算が行われたため、畳み込み処理の速度が遅くなってしまう。
図2は、本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出する方法200のフローチャートを示している。なお、方法200は専用のアクセラレータデバイス(例えば、AIチップ)で実行されてもよく、又は汎用コンピュータ又は他の専用のコンピューティングデバイスで実行されてもよい。
ブロック202では、画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画する。例えば、使用可能なデータ処理ユニットの数(例えば、P個)に応じて、画像をそれぞれP個の畳み込みウィンドウを含む複数組の畳み込みウィンドウに区画してもよく、それにより複数組の畳み込みウィンドウそれぞれは複数のデータ処理ユニットで並行して処理され得る。
ブロック204では、複数のデータ処理ユニットにより第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出する。例えば、第1組の畳み込みウィンドウはP個の畳み込みウィンドウを含むようにしてもよい。アクセラレータデバイス(例えば、AIチップ)におけるP個のデータ処理ユニットを用いて、P個の畳み込みウィンドウ内の画像データを並行して抽出し、すなわち、処理ユニットそれぞれが対応する畳み込みウィンドウ内の画像データを抽出する。これにより、畳み込みウィンドウ内の画像データの抽出速度が高まれる。
ブロック206では、第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、複数のデータ処理ユニットにより第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出する。一般的に、画像内の畳み込みウィンドウの数は、データ処理ユニットの数よりもはるかに多くしてもよく、それゆえに、データを段階的に並行して抽出する必要がある。例えば、P個のデータ処理ユニットによりP個の畳み込みウィンドウ内の画像データを並行して抽出し終えた後、次のP個の畳み込みウィンドウを抽出し、画像内の全ての畳み込みウィンドウ内の画像データの抽出が終了するまで、順次、上述したステップを繰り返す。
従って、本開示の実施形態によれば、畳み込みデータを抽出するプロセス中に、複数のデータ処理ユニットにより、複数の畳み込みウィンドウ内の画像データを並行して抽出することで、データ抽出の速度が高まれ、それにより画像畳み込みの処理効率が向上される。
図3は、本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出するプロセス300の概略図を示している。図3に示すように、画像310における畳み込みウィンドウ311、312、313はデータ処理ユニット321、322、323によってそれぞれ並行して処理することができ、さらに畳み込みウィンドウ311、312、313における対応するデータ331、332、333(それぞれ一次元ベクトルであってもよい)が並行して抽出される。なお、図示の明確化のため、図3の畳み込みウィンドウのストライドを3とし、畳み込みウィンドウ311、312、313の3つが重複しないようにしているが、ストライドを1または他の値に設定して、異なる畳み込みウィンドウ間で重複する画素点を持たせるようにしてもよい。なお、説明の便宜上、図3では、1つのカラーチャネルの画像310のみを図示しているが、画像310は、複数のカラーチャネルを含んでいてもよい。
図4は、本開示の実施形態に係るデータを並行して処理するためのアクセラレータデバイスの例示的なアーキテクチャ400の概略図を示している。図4に示すように、例示的なアーキテクチャ400は、プロセッサ410、ソースメモリ420、ターゲットメモリ425、データ変換モジュール431、及びスケジューラ470等を含むことができる。データ変換モジュール431は、命令記憶ユニット430と、命令復号化ユニット440と、制御ユニット450と、同期化ユニット460と、データ読み取りユニット480と、複数のデータ処理ユニット490とを含むコプロセッサとして機能することができる。ここで、複数のデータ処理ユニット490は、例えば、P個のデータ処理ユニット491、492、493、494、499等を含んでいてもよい。
ソースメモリ420及びターゲットメモリ425は、それぞれ入力メモリ及び出力メモリであり、オフチップメモリ(例えば、倍速同期ダイナミックランダムアクセスメモリDDR)であってもよく、オンチップメモリ(例えば、スタティックランダムアクセスメモリSRAM)であってもよく、そのうちソースメモリ420とターゲットメモリ425は異なるメモリ又は同じメモリであってもよい。
命令記憶ユニット430はプロセッサ410から受信した、データ変換のための命令を記憶し、命令の種類は、パラメータコンフィギュレーション命令、転置命令、畳み込みデータ抽出命令、同期命令などを含むことができるが、これらに限定されない。パラメータコンフィギュレーション命令は、パラメータをコンフィギュレートするために用いられ、パラメータは、データの種類、転置行列の規模、畳み込み画像の規模、畳み込みカーネルの規模、畳み込みストライド、エッジパディング画素数(pad)などを含むがこれらに限定されない。転置命令は、ソースメモリ420の先頭アドレス、ターゲットメモリ425の先頭アドレス、転置データ長等をコンフィギュレートするための命令である。畳み込みデータ抽出命令は、ソースメモリ420の先頭アドレス、ターゲットメモリ425の先頭アドレス、抽出データ長等をコンフィギュレートするための命令である。スケジューラ470による各モジュールの同期化のために、同期命令は該命令の前の全ての命令の実行が完了し且つデータが記憶媒体に書き込まれたことを確保するために用いられる。
命令復号化ユニット440は、命令記憶ユニット430が空ではなく現在命令実行可能であると検出すると、命令記憶ユニット430から命令を読み出して解析し、解析した内容を制御ユニット450に送信するために用いられる。制御ユニット450はコンフィギュレーションパラメータに基づき、対応する制御信号を生成し、制御内容は、データ読み取りユニット480の読み取りリクエストの挙動、データ処理ユニット490の挙動、同期化ユニット460の挙動を含むが、これらに限定されない。
データ読み取りユニット480は、制御ユニット450の制御信号に基づいて、ソースメモリ420に読み取りリクエストを送信し、読み出されたデータを複数のデータ処理ユニット490に送出する。複数のデータ処理ユニット490は、制御ユニット450の制御信号に基づいて、データ読み取りユニット480からデータ中の特定の部分を抽出して、ターゲットメモリ425に書き込む。本開示の実施形態によれば、複数のデータ処理ユニット490は、複数の畳み込みウィンドウ内の画像データを並行して抽出してもよいし、行列内の複数の列を並行して転置してもよい。これにより、データ変換の速度が向上される。
同期化ユニット460は、同期リクエストを受信すると、現在の命令の実行が完了し且つデータが記憶媒体に書き込まれたことを検知すると、同期完了信号を外部のスケジューラ470に出力する。なお、アクセラレータデバイスの一例であるアーキテクチャ400は、あくまでも複数のデータ処理ユニット490を備えた例示的なアーキテクチャに過ぎなく、複数のデータ処理ユニットを備えた他のアクセラレータデバイスも本開示の実施形態と組み合わせて使用され得る。
図5は、本開示の実施形態に係る畳み込みデータを抽出するための例示的なプロセス500の概略図を示している。図5に示すように、与えられた画像510の幅がWであり、高さがHであり、チャネルの深さがCであり、各畳み込みウィンドウの幅がSであり、高さがRである(図5の例では畳み込みウィンドウのサイズが3×3である)。画像の畳み込みを実行するためのアクセラレータデバイスは、複数のデータ処理ユニット520を備え、例えば、P個のデータ処理ユニット521、522、523、529等を含む。本開示の実施形態によれば、複数のデータ処理ユニットは、複数の畳み込みウィンドウ内の画像データを並行して抽出してもよい。
図5を参照し、データ処理ユニット521は、畳み込みウィンドウ511内の画像データを抽出するためのものである。データ処理ユニット521は、まず、第1チャネルの第1行データを抽出し(各データ処理ユニットは、対応する畳み込みウィンドウ内の第1行データを並行して抽出する)、次いで、第1チャネルの第2行データを抽出し、次いで、第1チャネルの第3行データを抽出する。これで、図5に例示された畳み込みウィンドウ511内の第1チャネルにおけるデータ抽出が完了する。次に、データ処理ユニット521は、同様に、畳み込みウィンドウ511の第2チャネルにおける画像データを全て抽出し、畳み込みウィンドウ511の第3チャネルにおける画像データを全て抽出し、畳み込みウィンドウ511の第4チャネルにおける画像データを全て抽出し、これにより畳み込みウィンドウ511に対するデータ抽出処理を終了する。図5に示すように、抽出されたデータ530は第1チャネルのデータ531(第1チャネルの3つの行の合計で9つの値を含む)、第2チャネルのデータ、第3チャネルのデータ、第4チャネルのデータ534を含む。本開示の実施形態によれば、P個のデータ処理ユニットがデータを並行して抽出するので、P個のデータ処理ユニットは、前のP個の畳み込みウィンドウ内の全ての画像データの抽出を並行して完成することができる。
次に、複数のデータ読み取りユニット520は、同様に後続するP個のウィンドウのデータを並行して読み取る。最後に、画像510内の全ての畳み込みウィンドウに対応するデータの抽出が完了する。そのうち、P個のデータ処理ユニットが畳み込みデータを並行して抽出するため、各データ処理ユニットは、ストライドパラメータに基づいてそれに対応する畳み込みウィンドウのデータを取得する必要があり、この部分の制御挙動は制御ユニットによって完了することができる。
いくつかの実施形態において、抽出された1つの畳み込みウィンドウデータがターゲットメモリに連続的に格納されるため、1つの規模がC×R×Sである3次元畳み込みウィンドウ内の画像データは、データ処理ユニットにより抽出された後に、ターゲットメモリにおいて長さがC×R×Sである一次元ベクトルとみなすことができ、画像510において合計でN個の畳み込みウィンドウデータが抽出されたと仮定すると、最終的にターゲットメモリに格納されるのは、規模がN行、C×R×S列である二次元行列である。畳み込みカーネルが同様にF行、C×R×S列の二次元行列とみなすことができ、畳み込みカーネルが転置された後にC×R×S行、F列の二次元行列となり、こうすると、複雑な画像畳み込み操作は2つの二次元行列の乗算に変換される。以下の式(1)に示すように、Dは画像データ行列を表し、Wは重みデータ行列を表し、1つの畳み込みウィンドウに含まれる画像データは、例えば、左側の破線枠(すなわち、長さがC×R×Sの一次元ベクトル)で示され、1つの畳み込みカーネルに含まれる重みデータは、例えば、右側の破線枠で示される。これにより、畳み込み演算における行列演算効率がさらに向上されることができる。
Figure 2021022362
図6は、本開示の実施形態に係る行列転置を並行して行うための例示的なプロセス600の概略図を示している。図6に示すように、1つのM×N規模の行列610を転置する必要があると仮定し、上記図4に記述したデータ変換モジュールにおいてP個の並行動作するデータ処理ユニットが備えられ得ることを参照し、行列610をP列を粒度としてブロック化する。すなわち、第1ブロックは先頭のP列を含み、第2ブロックは後続のP列を含むなどである。
図6に示すように、複数のデータ処理ユニット620は、P個のデータ処理ユニット(例えば、データ処理ユニット621、622、623、629等)を含む。データ読み取りユニットは、行列のデータを毎回1行読み取り、各データ処理ユニットは、該行データの対応する列を並行して処理することができる。例えば、データ処理ユニット621は第1列(列0)のデータを処理し、データ処理ユニット622は第2列(列1)のデータを処理し、データ処理ユニット623は第3列(列2)のデータを処理し、データ処理ユニット629は第P列(列P−1)のデータを処理する。
複数のデータ処理ユニット620は、第1のブロックのP列を並行して処理した後、行列621全体の転置を完成するまで次のブロックにおけるP列データを処理し、転置後の行列630を生成する。図6に示すように、データ処理ユニット621は、行列610の第1列を行列630の第1行に転置し、データ処理ユニット622は、行列610の第2列を行列630の第2行に転置し、データ処理ユニット629は、行列610の第P列を行列630の第P行に転置する。いくつかの実施形態において、制御ユニットは命令コンフィギュレーションパラメータ及びターゲットメモリの先頭アドレスに基づき、P個のデータ処理ユニットそれぞれのターゲットメモリの書き込みアドレスを維持する必要がある。
従って、本開示の実施形態によれば、畳み込みデータの抽出中に、複数のデータ処理ユニットにより、複数の畳み込みウィンドウ内の画像データを並行して抽出することで、データ抽出の速度を高めることができ、それにより画像畳み込みの処理効率が向上される。また、本開示のいくつかの実施形態は、複数のデータ処理ユニットにより行列中の複数の列を並行して抽出することにより、行列転置の速度を高めることができる。
図7は、本開示の実施形態に係る複数の畳み込みウィンドウ内の画像データを並行して抽出する装置700のブロック図を示している。図7に示すように、装置700は、畳み込みウィンドウ組区画モジュール710、第1の並行抽出モジュール720及び第2の並行抽出モジュール730を含む。畳み込みウィンドウ組区画モジュール710は、画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画するように構成される。第1の並行抽出モジュール720は、複数のデータ処理ユニットにより第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される。第2の並行抽出モジュール730は、第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、複数のデータ処理ユニットにより第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される。
いくつかの実施形態において、第1組の畳み込みウィンドウは、第1の畳み込みウィンドウと第2の畳み込みウィンドウとを含み、第1の並行抽出モジュール720は、第1のデータ処理ユニットにより第1の畳み込みウィンドウ内の画像データを抽出するように構成される第1のデータ抽出モジュールと、第2のデータ処理ユニットにより第2の畳み込みウィンドウ内の画像データを抽出するように構成される第2のデータ抽出モジュールと、を備える。
いくつかの実施形態において、第1のデータ抽出モジュールは、第1の畳み込みウィンドウ内の第1のチャネルにおける第1行の画像データを抽出するように構成される第1の抽出モジュールと、第1の畳み込みウィンドウ内の第1のチャネルにおける第2行の画像データを抽出するように構成される第2の抽出モジュールと、第1の畳み込みウィンドウ内の第1のチャネルにおける第3行の画像データを抽出するように構成される第3の抽出モジュールと、を備える。
いくつかの実施形態において、第1のデータ抽出モジュールは、第1の畳み込みウィンドウ内の第1のチャネルにおける全ての画像データの抽出が完了したことに応じて、第1の畳み込みウィンドウ内の第2のチャネルにおける第1行の画像データを抽出し、第1の畳み込みウィンドウ内の第2のチャネルにおける第2行の画像データを抽出し、第1の畳み込みウィンドウ内の第2のチャネルにおける第3行の画像データを抽出するように構成される第2のチャネル抽出モジュールをさらに備える。
いくつかの実施形態において、第1のデータ抽出モジュールは、第1の畳み込みウィンドウ内の全てのチャネルにおける全ての画像データの抽出が完了したことに応じて、第1の畳み込みウィンドウ内の全ての画像データを一次元ベクトルで表すように構成されるデータ表示モジュールをさらに備え、前記一次元ベクトルの長さは、画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である。
いくつかの実施形態において、装置700は、複数組の畳み込みウィンドウ内の全ての画像データをターゲットメモリに二次元行列で格納するように構成されるデータ格納モジュールをさらに備え、二次元行列の行数は複数組の畳み込みウィンドウ内の全ての畳み込みウィンドウの数であり、二次元行列の列数は画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である。
いくつかの実施形態において、装置700は、行列を列単位で、第1のブロック及び第2のブロックを含む複数のブロックに区画するように構成されるブロック区画モジュールと、複数のデータ処理ユニットにより第1のブロック内の複数列のデータを並行して転置するように構成される第1の並行転置モジュールと、第1のブロック内の複数列のデータの転置が完了したことに応じて、複数のデータ処理ユニットにより第2のブロック内の複数列のデータを並行して転置するように構成される第2の並行転置モジュールと、をさらに備える。
いくつかの実施形態において、第1の並行転置モジュールは、前記複数のデータ処理ユニットのうちの第1のデータ処理ユニットにより第1のブロック内の第1列のデータを転置するように構成される第1の行列転置モジュールと、前記複数のデータ処理ユニットのうちの第2のデータ処理ユニットにより第2のブロック内の第2列のデータを転置するように構成される第2の行列転置モジュールと、を備える。
いくつかの実施形態において、ブロック区画モジュールは、複数のデータ処理ユニットの数に基づいて、行列を複数のブロックに区画するように構成される第2のブロック区画モジュールを備える。
図7に示した畳み込みウィンドウ組区画モジュール710、第1の並行抽出モジュール720及び第2の並行抽出モジュール730は、単一または複数の電子機器に含まれていてもよいことを理解されたい。また、図7に示したモジュールは本開示の実施形態を参照する方法及び/又はプロセスにおけるステップ及び/又は動作を実行することができることを理解されたい。
したがって、本開示の実施形態は、深層学習アクセラレータに適用するプログラマブルデータ変換方法及び装置を提供し、様々な規模の行列転置と画像の畳み込みウィンドウ抽出を柔軟にサポートすることができ、同時にハードウェアの並行性特徴を十分に利用することができ、データを高効率に提供し、行列演算モジュールの性能を発揮できる。本開示の実施形態により、プログラマブル性を備えることによりデータ変換の柔軟性が確保され、さらに複数の処理ユニットが並行動作する方式により、データの変換が効率的に行われる。また、転置や畳み込みには、本開示の実施形態により同一セットのハードウェア構造を多重化することができ、最終的に実現されるハードウェアのオーバーヘッドを低減することができる。
したがって、本開示のいくつかの実施形態の利点は、複数のデータ処理ユニットが並行して動作し、データ変換動作が高効率で完成されることと、プロセッサによりパラメータコンフィギュレーション命令を送信することでパラメータコンフィギュレーションが柔軟に行われ、複数の規模のデータ変換に適応することができることと、畳み込みデータ抽出のデータ変換方式により、複雑な畳み込み操作を簡単な行列乗算に変換することができることと、転置と畳み込みデータ抽出は同一セットのハードウェア構造を多重化して完成されることができ、ハードウェアリソースが節約されることと、を含むことができるが、これらに限定されない。
図8は、本開示の実施形態を実施するために使用できる例示的な装置800の概略ブロック図を示している。装置800は、本開示に記載された複数の畳み込みウィンドウ内の画像データを並行して抽出するための装置700であり得ることを理解されたい。図に示すように、装置800は、読み出し専用メモリ(ROM)802に記憶されているコンピュータプログラム命令又は記憶ユニット808からランダムアクセスメモリ(RAM)803にロードされたコンピュータプログラム命令によって様々な適当な動作及び処理を実行することができる中央処理装置(CPU)801を備える。RAM803には、装置800の動作に必要な様々なプログラム及びデータが更に記憶されることが可能である。CPU801、ROM802及びRAM803は、バス804を介して互いに接続されている。図8に示すように、入力/出力(I/O)インターフェース805もバス804に接続されている。
装置800において、キーボード、マウスなどの入力ユニット806と、様々なタイプのディスプレイ、スピーカなどの出力ユニット807と、磁気ディスク、光ディスクなどの記憶ユニット808と、ネットワークカード、モデム、無線通信送受信機などの通信ユニット809とを含む複数のコンポーネントは、I/Oインターフェース805に接続されている。通信ユニット809は、装置800がインターネットなどのコンピュータネットワーク及び/又は様々な電気通信ネットワークを介して他の装置と情報又はデータの交換を可能にする。
処理ユニット801は、上述した方法200のような様々な方法およびプロセスを実行する。例えば、いくつかの実施形態では、方法は、記憶ユニット808などの機械可読媒体に有形に含まれるコンピュータソフトウェアプログラムとして実現されてもよい。いくつかの実施形態では、コンピュータプログラムの一部又は全部は、ROM802及び/又は通信ユニット809を介して装置800にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM803にロードされ、CPU801によって実行されると、上述した方法における1つまたは複数の動作またはステップが実行され得る。あるいは、他の実施形態では、CPU801は、他の任意の適切な形態によって(例えば、ファームウェアによって)方法を実行するように構成されていてもよい。
本明細書で説明した機能は、少なくとも部分的に1つまたは複数のハードウェアロジックコンポーネントによって実行されることができる。例えば、非限定的に、採用できる汎用型のハードウェアロジックコンポーネントには、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックスプログラマブルロジックデバイス(CPLD)などが含まれる。
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語のあらゆる組み合わせで作成することができる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサまたはコントローラに提供されることができ、これらのプログラムコードがプロセッサまたはコントローラによって実行されると、フローチャートおよび/またはブロック図に規定された機能または動作が実施される。プログラムコードは、完全にデバイス上で実行されることも、部分的にデバイス上で実行されることも、スタンドアロンソフトウェアパッケージとして部分的にデバイス上で実行されながら部分的にリモートデバイス上で実行されることも、または完全にリモートデバイスもしくはサーバ上で実行されることも可能である。
本開示のコンテキストでは、機械可読媒体は、有形の媒体であってもよく、命令実行システム、装置またはデバイスが使用するため、または命令実行システム、装置またはデバイスと組み合わせて使用するためのプログラムを含むか、または格納することができる。機械可読媒体は、機械可読信号媒体または機械可読記憶媒体であり得る。機械可読媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム、装置またはデバイス、またはこれらのあらゆる適切な組み合わせを含むことができるが、これらに限定されない。機械可読記憶媒体のより具体的な例には、1本または複数本のケーブルに基づく電気的接続、携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトディスク読み取り専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、またはこれらのあらゆる適切な組み合わせが含まれ得る。
また、各動作またはステップは、特定の順序で示されているが、所望の結果を得られるために、このような動作またはステップは示された特定の順序にてまたは順を追って実行されることを要求するか、または、図に示されたすべての動作またはステップが実行されることを要求するものと理解されるべきである。特定の環境では、マルチタスクと並列処理が有利である可能性がある。同様に、上記ではいくつかの具体的な実施詳細を説明したが、これらは本開示の範囲への制限と解釈されるべきではない。個別の実施形態のコンテキストで説明された、いくつかの特徴は、単一の実施において組み合わせて実施されることもできる。逆に、単一の実施のコンテキストで説明された様々な特徴は、複数の実施において、個別にまたは任意の適切なサブセットで実施されることもできる。
本開示の実施形態は、構造特徴および/または方法のロジック動作に特定された言語で記述されたが、特許請求の範囲内に限定される主題が、必ずしも上記に記載された特定の特徴または動作に限定されるものではないことを理解されたい。逆に、上述した特定の特徴および動作は、特許請求の範囲を実施するための例示的な形態にすぎない。

Claims (20)

  1. 画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画するステップと、
    複数のデータ処理ユニットにより前記第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するステップと、
    前記第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、前記複数のデータ処理ユニットにより前記第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するステップと、
    を含む複数の畳み込みウィンドウ内の画像データの並行抽出方法。
  2. 前記複数のデータ処理ユニットは、第1のデータ処理ユニットと第2のデータ処理ユニットとを含み、前記第1組の畳み込みウィンドウは、第1の畳み込みウィンドウと第2の畳み込みウィンドウとを含み、且つ、
    複数のデータ処理ユニットにより前記第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するステップは、
    前記第1のデータ処理ユニットにより前記第1の畳み込みウィンドウ内の画像データを抽出することと、
    前記第2のデータ処理ユニットにより前記第2の畳み込みウィンドウ内の画像データを抽出することと、を含む請求項1に記載の方法。
  3. 前記第1のデータ処理ユニットにより前記第1の畳み込みウィンドウ内の画像データを抽出することは、
    前記第1の畳み込みウィンドウ内の第1のチャネルにおける第1行の画像データを抽出することと、
    前記第1の畳み込みウィンドウ内の前記第1のチャネルにおける第2行の画像データを抽出することと、
    前記第1の畳み込みウィンドウ内の前記第1のチャネルにおける第3行の画像データを抽出することと、を含む請求項2に記載の方法。
  4. 前記第1のデータ処理ユニットにより前記第1の畳み込みウィンドウ内の画像データを抽出することは、
    前記第1の畳み込みウィンドウ内の第1のチャネルにおける全ての画像データの抽出が完了したことに応じて、
    前記第1の畳み込みウィンドウ内の第2のチャネルにおける第1行の画像データを抽出することと、
    前記第1の畳み込みウィンドウ内の前記第2のチャネルにおける第2行の画像データを抽出することと、
    前記第1の畳み込みウィンドウ内の前記第2のチャネルにおける第3行の画像データを抽出することと、をさらに含む請求項3に記載の方法。
  5. 前記第1のデータ処理ユニットにより前記第1の畳み込みウィンドウ内の画像データを抽出することは、
    前記第1の畳み込みウィンドウ内の全てのチャネルにおける全ての画像データの抽出が完了したことに応じて、前記第1の畳み込みウィンドウ内の全ての画像データを一次元ベクトルで表すことをさらに含み、
    前記一次元ベクトルの長さが、前記画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である請求項4に記載の方法。
  6. 前記複数組の畳み込みウィンドウ内の全ての画像データをターゲットメモリに二次元行列で格納するステップをさらに含み、
    前記二次元行列の行数が前記複数組の畳み込みウィンドウ内の全ての畳み込みウィンドウの数であり、前記二次元行列の列数が前記画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である、請求項1に記載の方法。
  7. 行列を列単位で第1のブロック及び第2のブロックを含む複数のブロックに区画するステップと、
    前記複数のデータ処理ユニットにより前記第1のブロック内の複数列のデータを並行して転置するステップと、
    前記第1のブロック内の複数列のデータの転置が完了したことに応じて、前記複数のデータ処理ユニットにより前記第2のブロック内の複数列のデータを並行して転置するステップと、をさらに含む請求項1に記載の方法。
  8. 前記複数のデータ処理ユニットにより前記第1のブロック内の複数列のデータを並行して転置するステップは、
    前記複数のデータ処理ユニットのうちの第1のデータ処理ユニットにより前記第1のブロック内の第1列のデータを転置することと、
    前記複数のデータ処理ユニットのうちの第2のデータ処理ユニットにより前記第2のブロック内の第2列のデータを転置することと、を含む請求項7に記載の方法。
  9. 行列を列単位で複数のブロックに区画するステップは、
    前記複数のデータ処理ユニットの数に応じて、前記行列を前記複数のブロックに区画することを含む請求項7に記載の方法。
  10. 画像を、第1組の畳み込みウィンドウと第2組の畳み込みウィンドウとを含む複数組の畳み込みウィンドウに区画するように構成される畳み込みウィンド組区画モジュールと、
    複数のデータ処理ユニットにより前記第1組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される第1の並行抽出モジュールと、
    前記第1組の畳み込みウィンドウ内の画像データの抽出が完了したことに応じて、前記複数のデータ処理ユニットにより前記第2組の畳み込みウィンドウにおける複数の畳み込みウィンドウ内の画像データを並行して抽出するように構成される第2の並行抽出モジュールと、
    を備える複数の畳み込みウィンドウ内の画像データの並行抽出装置。
  11. 前記複数のデータ処理ユニットは、第1のデータ処理ユニットと第2のデータ処理ユニットとを含み、前記第1組の畳み込みウィンドウは、第1の畳み込みウィンドウと第2の畳み込みウィンドウとを含み、且つ、
    前記第1の並行抽出モジュールは、
    前記第1のデータ処理ユニットにより前記第1の畳み込みウィンドウ内の画像データを抽出するように構成される第1のデータ抽出モジュールと、
    前記第2のデータ処理ユニットにより前記第2の畳み込みウィンドウ内の画像データを抽出するように構成される第2のデータ抽出モジュールと、
    を備える請求項10に記載の装置。
  12. 前記第1のデータ抽出モジュールは、
    前記第1の畳み込みウィンドウ内の第1のチャネルにおける第1行の画像データを抽出するように構成される第1の抽出モジュールと、
    前記第1の畳み込みウィンドウ内の前記第1のチャネルにおける第2行の画像データを抽出するように構成される第2の抽出モジュールと、
    前記第1の畳み込みウィンドウ内の前記第1のチャネルにおける第3行の画像データを抽出するように構成される第3の抽出モジュールと、
    を備える請求項11に記載の装置。
  13. 前記第1のデータ抽出モジュールは、
    前記第1の畳み込みウィンドウ内の第1のチャネルにおける全ての画像データの抽出が完了したことに応じて、
    前記第1の畳み込みウィンドウ内の第2のチャネルにおける第1行の画像データを抽出し、
    前記第1の畳み込みウィンドウ内の前記第2のチャネルにおける第2行の画像データを抽出し、
    前記第1の畳み込みウィンドウ内の前記第2のチャネルにおける第3行の画像データを抽出するように構成される第2のチャネル抽出モジュールをさらに備える請求項12に記載の装置。
  14. 前記第1のデータ抽出モジュールは、
    前記第1の畳み込みウィンドウ内の全てのチャネルにおける全ての画像データの抽出が完了したことに応じて、前記第1の畳み込みウィンドウ内の全ての画像データを一次元ベクトルで表すように構成されるデータ表示モジュールをさらに備え、
    前記一次元ベクトルの長さが、前記画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である請求項13に記載の装置。
  15. 前記複数組の畳み込みウィンドウ内の全ての画像データをターゲットメモリに二次元行列で格納するように構成されるデータ格納モジュールをさらに備え、
    前記二次元行列の行数が前記複数組の畳み込みウィンドウ内の全ての畳み込みウィンドウの数であり、前記二次元行列の列数が前記画像のチャネル数と、各畳み込みウィンドウの行数と、各畳み込みウィンドウの列数との積である、請求項10に記載の装置。
  16. 行列を列単位で第1のブロック及び第2のブロックを含む複数のブロックに区画するように構成されるブロック区画モジュールと、
    前記複数のデータ処理ユニットにより前記第1のブロック内の複数列のデータを並行して転置するように構成される第1の並行転置モジュールと、
    前記第1のブロック内の複数列のデータの転置が完了したことに応じて、前記複数のデータ処理ユニットにより前記第2のブロック内の複数列のデータを並行して転置するように構成される第2の並行転置モジュールと、
    をさらに備える請求項10に記載の装置。
  17. 第1の並行転置モジュールは、
    前記複数のデータ処理ユニットのうちの第1のデータ処理ユニットにより前記第1のブロック内の第1列のデータを転置するように構成される第1の行列転置モジュールと、
    前記複数のデータ処理ユニットのうちの第2のデータ処理ユニットにより前記第2のブロック内の第2列のデータを転置するように構成される第2の行列転置モジュールと、
    を備える請求項16に記載の装置。
  18. 前記ブロック区画モジュールは、
    前記複数のデータ処理ユニットの数に応じて、前記行列を前記複数のブロックに区画するように構成される第2のブロック区画モジュールを備える請求項16に記載の装置。
  19. 電子機器であって、
    1つまたは複数のプロセッサと、
    1つまたは複数のプログラムを格納するための記憶装置であって、前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行されると、前記電子機器は請求項1〜9のいずれか1項に記載の方法を実現する記憶装置と、
    を備える電子機器。
  20. コンピュータプログラムが格納されるコンピュータ可読記憶媒体であって、
    前記プログラムがプロセッサによって実行されると、請求項1〜9のいずれか1項に記載の方法を実現する、コンピュータ可読記憶媒体。
JP2020039446A 2019-07-30 2020-03-09 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 Active JP6955598B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910694475.8 2019-07-30
CN201910694475.8A CN112306555A (zh) 2019-07-30 2019-07-30 并行提取多个卷积窗中的图像数据的方法、装置、设备以及计算机可读存储介质

Publications (2)

Publication Number Publication Date
JP2021022362A true JP2021022362A (ja) 2021-02-18
JP6955598B2 JP6955598B2 (ja) 2021-10-27

Family

ID=69784274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020039446A Active JP6955598B2 (ja) 2019-07-30 2020-03-09 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体

Country Status (5)

Country Link
US (1) US11481994B2 (ja)
EP (1) EP3771999B1 (ja)
JP (1) JP6955598B2 (ja)
KR (1) KR102470027B1 (ja)
CN (1) CN112306555A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113704172B (zh) * 2021-08-20 2023-11-21 北京大学 基于脉动阵列的转置卷积和卷积加速器芯片设计方法
CN114936633B (zh) * 2022-06-15 2023-06-30 北京爱芯科技有限公司 用于转置运算的数据处理单元及图像转置运算方法
CN115184771B (zh) * 2022-07-08 2024-06-11 北京地平线信息技术有限公司 图像信号处理器的故障检测方法和装置、电子设备和介质
CN117949964B (zh) * 2024-03-27 2024-06-21 青岛科技大学 一种激光多普勒测速系统信号处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018196863A1 (zh) * 2017-04-28 2018-11-01 北京市商汤科技开发有限公司 卷积加速和计算处理方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system
KR20190051697A (ko) 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
CN108304923B (zh) 2017-12-06 2022-01-18 腾讯科技(深圳)有限公司 卷积运算处理方法及相关产品
CN111712830B (zh) * 2018-02-21 2024-02-09 罗伯特·博世有限公司 使用深度传感器的实时对象检测
US11574694B2 (en) * 2018-10-11 2023-02-07 International Business Machines Corporation Kernel sets normalization with capacitor charge sharing
US11586883B2 (en) * 2018-12-14 2023-02-21 Microsoft Technology Licensing, Llc Residual quantization for neural networks
US20200210840A1 (en) * 2018-12-31 2020-07-02 Microsoft Technology Licensing, Llc Adjusting precision and topology parameters for neural network training based on a performance metric
US20200264876A1 (en) * 2019-02-14 2020-08-20 Microsoft Technology Licensing, Llc Adjusting activation compression for neural network training

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018196863A1 (zh) * 2017-04-28 2018-11-01 北京市商汤科技开发有限公司 卷积加速和计算处理方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAVEEN SUDA, ET AL.: ""Throughput-Optimized OpenCL-based FPGA Accelerator for Large-Scale Convolutional Neural Networks"", PROCEEDINGS OF THE 2016 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS (FPGA'16, JPN7021003790, 21 February 2016 (2016-02-21), pages 16 - 25, XP055542357, ISSN: 0004594268, DOI: 10.1145/2847263.2847276 *

Also Published As

Publication number Publication date
KR20210014561A (ko) 2021-02-09
US11481994B2 (en) 2022-10-25
EP3771999B1 (en) 2023-01-18
CN112306555A (zh) 2021-02-02
EP3771999A1 (en) 2021-02-03
JP6955598B2 (ja) 2021-10-27
US20210034900A1 (en) 2021-02-04
KR102470027B1 (ko) 2022-11-24

Similar Documents

Publication Publication Date Title
JP6955598B2 (ja) 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体
US11468301B2 (en) Method and apparatus for performing operation of convolutional layer in convolutional neural network
CN112840356B (zh) 运算加速器、处理方法及相关设备
EP3451162B1 (en) Device and method for use in executing matrix multiplication operations
US11500958B2 (en) Method and apparatus for performing convolution operation on folded feature data
EP3789892A1 (en) Method and apparatus for processing data
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
JP2022550730A (ja) 高速なスパースニューラルネットワーク
EP3839832A1 (en) Method and apparatus with neural network convolution operation
US11763131B1 (en) Systems and methods for reducing power consumption of convolution operations for artificial neural networks
US20230196113A1 (en) Neural network training under memory restraint
KR20200095300A (ko) 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치
CN111133457A (zh) 电子设备及其控制方法
CN114026571A (zh) 用于并行执行的神经网络操作重新排序
US12014505B2 (en) Method and apparatus with convolution neural network processing using shared operand
US11636569B1 (en) Matrix transpose hardware acceleration
JP2020080048A (ja) 並列処理装置およびプログラム
CN114595811A (zh) 用于执行深度学习操作的方法和设备
JP5045652B2 (ja) 相関処理装置及びその相関処理装置で読みとり可能な媒体
US20230102296A1 (en) Decomposing matrices for processing at a processor-in-memory
CN117851742B (zh) 数据存储方法、数据处理方法、数据存储器、数据处理器
EP3832551B1 (en) Method and apparatus for processing data
US20240086719A1 (en) Sparse encoding and decoding at mixture-of-experts layer
KR20210082970A (ko) 컨볼루션 연산을 수행하는 방법 및 장치
KR20230059726A (ko) 심층 신경망 연산을 수행하는 방법 및 전자 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200727

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211001

R150 Certificate of patent or registration of utility model

Ref document number: 6955598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114