JP2022518640A - データ処理方法、装置、機器、記憶媒体及びプログラム製品 - Google Patents

データ処理方法、装置、機器、記憶媒体及びプログラム製品 Download PDF

Info

Publication number
JP2022518640A
JP2022518640A JP2020570459A JP2020570459A JP2022518640A JP 2022518640 A JP2022518640 A JP 2022518640A JP 2020570459 A JP2020570459 A JP 2020570459A JP 2020570459 A JP2020570459 A JP 2020570459A JP 2022518640 A JP2022518640 A JP 2022518640A
Authority
JP
Japan
Prior art keywords
data
input
calculation unit
output
bit width
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.)
Pending
Application number
JP2020570459A
Other languages
English (en)
Inventor
涛 ▲楊▼
清正 李
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 Sensetime Technology Development Co Ltd
Original Assignee
Beijing Sensetime Technology Development 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 Sensetime Technology Development Co Ltd filed Critical Beijing Sensetime Technology Development Co Ltd
Publication of JP2022518640A publication Critical patent/JP2022518640A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Abstract

【解決手段】当該方法は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得するステップと、第1算出ユニットの処理パラメータを取得するステップと、処理すべきデータ及び処理パラメータに基づいて、第1算出ユニットの出力結果を取得するステップとを含み、処理すべきデータは、第1ビット幅のデータを含み、処理パラメータは、第2ビット幅のパラメータを含む。ただし、複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、第2算出ユニットの処理パラメータのビット幅と第1算出ユニットの処理パラメータのビット幅とは、異なる。【選択図】図2

Description

本発明の実施例は、深層学習技術分野に関し、特にデータ処理方法、装置、機器、記憶媒体及びプログラム製品に関する。
<関連出願の相互引用>
本発明は、2019年12月27日に中国専利局へ提出された、発明名称が「データ処理方法、装置、機器及び記憶媒体」であり、出願番号が201911379755.6である中国特許出願の優先権を主張し、当該中国特許出願の全ての内容が援用により本願に組み入れられる。
現在、深層学習は、高度な抽象認知の問題を解決するために広く応用されてきている。高度な抽象認知の問題では、深層学習問題が益々抽象的且つ複雑的になるに従い、深層学習の計算及びデータの複雑度も増加していくが、深層学習の計算が深層学習ネットワークから離れられないため、深層学習のネットワーク規模も増加する必要は生じてくる。
通常、深層学習の計算タスクは、表現方式で以下の2種に大別可能である。第1種では、汎用プロセッサにおいて、タスクは、一般的にソフトウェアコードの形式で表され、ソフトウェアタスクと呼称される。第2種では、専用ハードウェア回路において、ハードウェア固有の高速特性を十分に発揮してソフトウェアタスクの替わりとなり、ハードウェアタスクと呼称される。よく見られる専用ハードウェアは、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)及びグラフィックプロセッサ(Graphics Processing Unit、GPU)を含む。ただし、FPGAは、異なる機能に適用可能であり、柔軟性が高い。
深層学習ネットワークの実施時に、データの精度、例えば、ニューラルネットワークの各層のデータをどれほどのビット幅及び何の種類のデータフォーマットで示すかを考慮する必要がある。ビット幅が大きいほど、深層学習モデルのデータ精度が高くなるが、計算速度は、低下していく。その一方、ビット幅が小さいほど、計算速度がある程度高められるが、深層学習ネットワークのデータ精度は、低減されてしまう。
本発明の実施例は、データ処理方法、装置、機器、記憶媒体及びプログラム製品を提供する。
第1態様において、本発明の実施例は、データ処理方法を提供する。当該データ処理方法は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得するステップと、前記第1算出ユニットの処理パラメータを取得するステップと、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得するステップと、を含み、前記処理すべきデータは、第1ビット幅のデータを含み、前記処理パラメータは、第2ビット幅のパラメータを含み、前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。
第2態様において、本発明の実施例は、データ処理装置を提供する。当該データ処理装置は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得するための第1取得モジュールと、前記第1算出ユニットの処理パラメータを取得するための第2取得モジュールと、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得するための処理モジュールと、を備え、前記処理すべきデータは、第1ビット幅のデータを含み、前記処理パラメータは、第2ビット幅のパラメータを含み、前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。
第3態様において、本発明の実施例は、データ処理機器を提供する。当該データ処理機器は、プロセッサと、プロセッサ実行可能なプログラムが記憶されるメモリと、を備え、前記プログラムが前記プロセッサによって実行されることにより、前記プロセッサに第1態様に記載の方法を実施させる。
第4態様において、本発明の実施例は、コンピュータ可読記憶媒体を提供する。当該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されたときに、前記プロセッサに第1態様に記載の方法を実施させる。
第5態様において、本発明の実施例は、コンピュータプログラム製品を提供する。当該コンピュータプログラム製品は、機器の実行可能な指令を含み、前記機器の実行可能な指令がコンピュータによって読み取って実行されたときに、前記プロセッサに第1態様に記載の方法を実施させる。
本発明の実施例に係るデータ処理方法、装置、機器及び記憶媒体では、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得し、前記第1算出ユニットの処理パラメータを取得し、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得し、前記処理すべきデータは、第1ビット幅のデータを含み、前記処理パラメータは、第2ビット幅のパラメータを含む。ただし、前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。
複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と第1算出ユニットに入力された処理すべきデータのビット幅とが異なり、及び/又は、第2算出ユニットに入力された処理パラメータのビット幅と第1算出ユニットに入力された処理パラメータのビット幅とが異なるため、異なるビット幅の処理すべきデータをサポートすることができる。ニューラルネットワーク層が単一のビット幅の処理すべきデータをサポートする場合よりも、本実施例に係る技術案では、異なるビット幅の処理すべきデータをサポート可能である。また、ビット幅が小さいほど計算速度が速くなることも考慮されたため、ビット幅の小さい処理パラメータ及び/又は処理すべきデータを選択する場合に、加速器の計算速度は、向上可能である。これにより、本発明の実施例に係るデータ処理方式は、複数種のビット幅のデータ処理をサポート可能であり、データ処理速度を向上させることができる。
本発明の実施例に係るデータ処理システムの模式図である。 本発明の実施例に係るデータ処理方法のフローチャートである。 本発明の別の実施例に係るデータ処理方法のフローチャートである。 本発明の実施例に係る読取データのデータ構造模式図である。 本発明の実施例に係る出力データのデータ構造模式図である。 本発明の実施例に係るデータ処理装置の構造模式図である。 本発明の実施例に係るデータ処理機器の構造模式図である。
ここで、例示的な実施例を詳細に説明する。その例示は、図面に示される。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同じ符号が同じ又は類似する要素を示す。以下の例示的な実施例に記述される実施形態が本発明と一致する全ての実施形態を代表するわけではない。逆に、それらは、単に添付する特許請求の範囲に詳細に記述されるような、本発明の幾つかの態様に一致する装置及び方法の例である。
図1は、本発明の実施例に係るデータ処理システムの模式図である。本発明の実施例に係るデータ処理方法は、図1に示すデータ処理システムに適用可能である。図1に示すように、当該データ処理システムは、プログラマブルデバイス1、メモリ2及びプロセッサ3を備える。ただし、プログラマブルデバイス1は、メモリ2及びプロセッサ3にそれぞれ接続され、メモリ2は、更に、プロセッサ3に接続される。
好ましくは、プログラマブルデバイス1は、フィールドプログラマブルゲートアレイFPGAを含み、メモリ2は、ダブルデータレート同期動的ランダムメモリ(Double Data Rate Synchronous Dynamic Random Access Memory、DDR SDRAM)(以下では、DDRと略称)を含み、プロセッサ3は、ARMプロセッサを含む。ただし、ARM(Advanced RISC Machines)プロセッサは、低消費電力且つ低コストのRISC(Reduced Instruction Set Computing)マイクロプロセッサを指す。
ただし、プログラマブルデバイス1は、加速器を含み、加速器は、cross bar(クロスバー)を介してメモリ2及びプロセッサ3にそれぞれ接続されてもよい。プログラマブルデバイス1は、応用場面に応じて、他の機能モジュール、例えば、通信インターフェース、DMA(Direct Memory Access)コントローラ等を含んでもよく、本発明ではこれについて限定しない。
プログラマブルデバイス1は、メモリ2からデータを読み取って処理し、処理結果をメモリ2に記憶する。プログラマブルデバイス1とメモリ2とは、バスを介して接続される。バスは、コンピュータの各種の機能部品の間で情報を伝送する共通通信幹線を指し、ワイヤによって構成される伝送ハーネスである。コンピュータで伝送される情報の種類の相違により、コンピュータのバスは、データバス、アドレスバス及び制御バスに分けられてよく、それらは、データ、データアドレス及び制御信号をそれぞれ伝送する。
ただし、加速器は、入力モジュール10a、出力モジュール10b、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14、重み行列変換モジュール15、入力バッファモジュール16、出力バッファモジュール17及び重みバッファモジュール18を備える。入力モジュール10a、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14及び出力モジュール10bは、順に接続され、重み行列変換モジュール15は、出力モジュール110b及び乗算器12にそれぞれ接続されている。本発明の実施例において、加速器は、畳み込みニューラルネットワークCNN加速器を含んでもよい。DDR、入力バッファモジュール16及び入力モジュール10aは、順に接続されている。DDRには、処理すべきデータ、例えば特徴マップデータが記憶される。出力モジュール10bは、順に出力バッファモジュール17、DDRに接続されている。重み行列変換モジュール15は、重みバッファモジュール18にも接続されている。
入力バッファモジュール16は、DDRから処理すべきデータを読み取ってバッファを行い、重み行列変換モジュール15は、重みバッファモジュール18から重みパラメータを読み取って処理を行う。処理後の重みパラメータは、乗算器12に送られる。入力モジュール10aは、入力バッファモジュール16から処理すべきデータを読み取って前段行列変換モジュール11に送信して処理させる。行列変換されたデータは、乗算器12に送られる。乗算器12は、重みパラメータに基づいて行列変換後のデータに対して演算を行って第1出力結果を取得する。第1出力結果が加算器13に送られて処理されて第2出力結果は得られる。第2出力結果が後段行列変換モジュール14に送られて処理され出力結果は得られる。出力結果は、出力モジュール10bによって出力バッファモジュール17に並行に出力され、最終的に出力バッファモジュール17によってDDRに送られて記憶させられる。こうして、処理すべきデータに対する1つの計算手順は、完成する。
以下では、具体的な実施例を用いて本発明の技術案及び本発明の技術案が如何にして上記技術問題を解決するかについて詳細に説明する。以下の幾つかの具体的な実施例は、互いに組み合わせられてもよい。同じや類似する概念又は手順について幾つかの実施例に繰り返さない可能性がある。以下では、図面を組み合わせて本発明の実施例を記述する。
図2は、本発明の実施例に係るデータ処理方法のフローチャートである。本発明の実施例のデータ処理方法の具体的なステップは、下記のようになる。
ステップ201では、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得する。
本実施例において、複数の算出ユニットは、ニューラルネットワーク入力層の算出ユニット、複数の隠れ層の算出ユニット及び/又は出力層の算出ユニットであってもよく、第1算出ユニットは、1つ又は複数の算出ユニットを含んでもよい。本発明の実施例において、第1算出ユニットが1つの算出ユニットを備えることを例として本発明の技術案を記述したが、第1算出ユニットが複数の算出ユニットを含む場合について、各第1算出ユニットは、同じ又は類似する実施方式でデータ処理を完了してもよく、ここで繰り返し説明しない。
1つの好適な実施形態において、第1算出ユニットは、図1に示す入力モジュール10a、出力モジュール10b、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14及び重み行列変換モジュール15を備えてもよい。別の好適な実施形態において、第1算出ユニットは、図1に示す前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14及び重み行列変換モジュール15を備えてもよい。
ニューラルネットワークにとって、ニューラルネットワークの各層は、何れも図1に示す入力モジュール10a、出力モジュール10b、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14、重み行列変換モジュール15を備えてもよい。ニューラルネットワーク層の計算手順が順次行われるため、ニューラルネットワークの各層は、1つの入力バッファモジュール16及び1つの出力バッファモジュール17を共用してもよい。ニューラルネットワークの現在層(例えば、第1算出ユニット)は、演算を行う必要がある場合に、DDRからニューラルネットワークの現在層に必要な処理すべきデータを取得し、バッファモジュール16に入力してバッファさせ、且つニューラルネットワークの現在層に必要な処理パラメータを重みバッファモジュール18にバッファしてもよい。
例示として、図1に示すように、入力モジュール10aは、入力バッファモジュール16から処理すべきデータを読み取ってもよい。
本実施例における処理すべきデータは、ビット幅が第1ビット幅であるデータを含む。ただし、第1ビット幅は、4bit、8bit及び32bitのうちの一項又は複数項を含んでもよい。
ステップ202では、第1算出ユニットの処理パラメータを取得する。
本実施例における処理パラメータは、ビット幅が第2ビット幅であるパラメータを含み、ニューラルネットワークの畳み込み演算に関与するためのパラメータ、例えば、畳み込みカーネルの重みパラメータである。ただし、第2ビット幅は、第1ビット幅と類似し、4bit、8bit及び32bitのうちの1項又は多項を含んでもよい。
例えば、図1に示すように、重み行列変換モジュール15は、重みバッファモジュール18から処理パラメータを読み取る。
例示として、処理すべきデータ及び処理パラメータがそれぞれ畳み込み演算に関与した入力データ及び重みパラメータである場合に、処理すべきデータ及び処理パラメータは、それぞれ行列の形態で示され、且つ処理すべきデータのビット幅が4bitであり、処理パラメータのビット幅が8bitであることは、処理すべきデータに対応する行列における各データが4bitのデータであり、処理パラメータに対応する行列における各データがそれぞれ8bitのデータであることを表明する。
ステップ203では、処理すべきデータ及び処理パラメータに基づいて、第1算出ユニットの出力結果を取得する。
ただし、複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、第2算出ユニットに入力された処理パラメータのビット幅と、第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。
第2算出ユニットは、第1算出ユニットと類似し、第2算出ユニットの処理すべきデータを取得し、第2算出ユニットの処理パラメータを取得し、その後、第2算出ユニットの処理すべきデータ及び第2算出ユニットの処理パラメータに基づいて、第2算出ユニットの出力結果を取得してもよい。その具体的な実現方法は、第1算出ユニットの関連記述を参照すればよいため、ここで繰り返し説明しない。
本実施例において、第1算出ユニット及び第2算出ユニットは、同一のニューラルネットワークアーキテクチャにおける異なるニューラルネットワーク層として理解されてもよい。1つの実現方式において、第1算出ユニット及び第2算出ユニットにそれぞれ対応するニューラルネットワーク層は、隣接する又は隣接しないニューラルネットワーク層であってもよく、ここで限定しない。つまり、異なるニューラルネットワーク層に必要な処理すべきデータのビット幅は、異なってもよく、処理パラメータのビット幅も異なってもよい。
ただし、処理すべきデータは、固定小数点数及び/又は浮動小数点数を含んでもよい。同様に、処理パラメータも、固定小数点数及び/又は浮動小数点数を含んでもよい。ただし、固定小数点数は、4bit及び8bitのビット幅のデータを含んでもよく、浮動小数点数は、32bitのビット幅のデータを含んでもよい。固定小数点数は、数値における小数点の位置が固定であり、通常、固定小数点整数及び固定小数点小数又は固定小数点分数を含む。小数点位置が選択された後、演算におけるあらゆる数は、何れも固定小数点整数又は固定小数点小数として統一されてもよく、演算において小数点の位置問題が考慮されなくなる。浮動小数点数は、小数点の位置が固定ではなく、指数及び端数で示される。通常、端数は、純小数であり、指数は、整数であり、端数及び指数は、何れも符号付き数である。端数の符号は、数値の正負を示し、指数の符号は、小数点の実際的な位置を表明する。
本発明にとって、あらゆるニューラルネットワーク層の処理可能なデータのビット幅は、少なくとも以下の5種の実施形態を有してもよい。以下では、処理すべきデータ及び処理パラメータを例として本発明の処理可能な異なるビット幅のデータについて説明する。
1つの好適な実施形態において、処理すべきデータのビット幅は、8bitであり、処理パラメータのビット幅は、4bitである。別の好適な実施形態において、処理すべきデータのビット幅は、4bitであり、処理パラメータのビット幅は、8bitである。更に別の好適な実施形態において、処理すべきデータのビット幅は、8bitであり、処理パラメータのビット幅は、8bitである。より更に別の好適な実施形態において、処理すべきデータのビット幅は、4bitであり、処理パラメータのビット幅は、4bitである。もう1つの好適な実施形態において、処理すべきデータのビット幅は、32bitであり、処理パラメータのビット幅は、32bitである。
これにより、本発明の実施例に係る技術案は、浮動小数点演算及固定小数点演算をサポート可能である。ただし、浮動小数点演算は、1種含んでもよく、具体的に、ビット幅が何れも32bitである処理すべきデータ及び処理パラメータの間の演算を含んでもよい。固定小数点演算は、4種含んでもよく、具体的にビット幅が何れも4bitである処理すべきデータ及び処理パラメータの間の演算、ビット幅が何れも8bitである処理すべきデータ及び処理パラメータの間の演算、ビット幅が4bitである処理すべきデータ及びビット幅が8bitである処理パラメータの間の演算、ビット幅が8bitである処理すべきデータ及びビット幅が4bitである処理パラメータの間の演算を含んでもよい。
これにより、本発明の実施例に係るデータ処理方式は、複数種のビット幅のデータ処理をサポート可能であるため、処理精度と処理速度との2重需要を効果的にトレードオフさせ、更にビット幅が条件を満たすことを確保した場合に、データ処理速度を向上させる。
好ましくは、処理すべきデータ及び処理パラメータに基づいて、第1算出ユニットの出力結果を取得することは、処理すべきデータ及び処理パラメータに基づいて畳み込み演算を行い、第1算出ユニットの出力結果を取得することを含む。
本実施例では、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得し、前記第1算出ユニットの処理パラメータを取得し、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得し、前記処理すべきデータは、ビット幅が第1ビット幅であるデータを含み、前記処理パラメータは、ビット幅が第2ビット幅であるパラメータを含む。ただし、前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。よって、異なるビット幅の処理すべきデータをサポート可能である。ニューラルネットワーク層が単一のビット幅の処理すべきデータをサポートする場合よりも、本実施例に係る技術案は、異なるビット幅の処理すべきデータをサポートすることができる。また、ビット幅が小さいほど計算速度が速くなることも考慮されたため、ビット幅の小さい処理パラメータ及び/又は処理すべきデータを選択する場合に、加速器の計算速度は、向上可能である。これにより、本発明の実施例に係るデータ処理方式は、複数種のビット幅のデータ処理をサポート可能であり、データ処理速度を向上させることができる。
好ましくは、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得することは、入力第1算出ユニットの処理すべきデータを示すために用いられる第1ビット幅を含む、第1算出ユニットの第1配置情報を取得することと、第1ビット幅に基づいて、ビット幅が第1ビット幅である処理すべきデータを取得することとを含み、複数の算出ユニットのうちの少なくとも2つの算出ユニットの第1ビット幅は、異なる。
ただし、ニューラルネットワーク層は、演算する前に、当該ニューラルネットワーク層に必要なデータのビット幅に対して配置を行い、即ち、当該ニューラルネットワーク層に必要なデータのビット幅を予め設置する。第1配置情報は、0、1、2で示されてもよい。第1配置情報が0であれば、当該ニューラルネットワークに必要なデータのビット幅が8bitであることを表明する。第1配置情報が1であれば、当該ニューラルネットワーク層に必要なデータのビット幅が4bitであることを表明する。第1配置情報が2であれば、当該ニューラルネットワーク層に必要なデータのビット幅が32bitであることを表明する。
好ましくは、第1算出ユニットの処理パラメータを取得することは、第1算出ユニットに入力された処理パラメータを示すために用いられる第2ビット幅を含む、第1算出ユニットの第2配置情報を取得することと、第2ビット幅に基づいて、ビット幅が第2ビット幅である処理パラメータを取得することと、を含み、複数の算出ユニットのうちの少なくとも2つの算出ユニットの第2ビット幅は、異なる。
同様に、ニューラルネットワーク層は、演算する前に、当該ニューラルネットワーク層に必要な処理パラメータのビット幅に対して配置を行い、即ち、当該ニューラルネットワーク層に必要な処理パラメータのビット幅を予め設置する。第2配置情報は、0、1、2で示されてもよい。第2配置情報が0であれば、当該ニューラルネットワーク層に必要な処理パラメータのビット幅が8bitであることを表明する。第2配置情報が1であれば、当該ニューラルネットワーク層に必要な処理パラメータのビット幅が4bitであることを表明する。第2配置情報が2であれば、当該ニューラルネットワーク層に必要な処理パラメータのビット幅が32bitであることを表明する。
図3は、本発明の別の実施例に係るデータ処理方法のフローチャートである。図3に示すように、本実施例のデータ処理方法の具体的なステップは、下記のようになる。
ステップ301では、複数の入力チャンネルのうちの各入力チャンネルごとに、少なくとも1つの入力データブロックのうちの目標入力データブロックを取得する。
ただし、処理すべきデータは、複数の入力チャンネルの入力データを含み、入力データは、少なくとも1つの入力データブロックを含む。
本実施例において、複数の入力チャンネルは、R(Red)、G(Green)、B(Blue)チャンネルを含み、処理すべきデータは、R、G、Bチャンネルの入力データを含む。ただし、各入力チャンネルの入力データを取得する過程において、入力データブロックに応じて取得する。例えば、目標入力データブロックがn*nサイズであると、n*nサイズのデータブロックは、取得される、ただし、nは、1よりも大きい整数である。例示として、n*nサイズの目標入力データブロックは、ニューラルネットワークにおける現在層の特徴マップ中のn*n個の画素点であってもよい。
ステップ302では、処理パラメータから、目標入力データブロックとは対応関係を有する処理パラメータブロックを取得し、処理パラメータブロックと目標入力データブロックとのサイズは、同じである。
例えば、目標入力データブロックのサイズが6*6であると、処理パラメータブロックのサイズも6*6となる。
ステップ303では、第1変換関係にしたがって、対応関係を有する、目標入力データブロックと処理パラメータブロックとのそれぞれに対して変換し、目標入力データブロックに対応する第1行列と、処理パラメータに対応する第2行列とを取得する。
好ましくは、第1変換関係は、前段行列変換を含む。本実施例では、n*nサイズの目標入力データブロックに対して前段行列変換を行ってn*nサイズの第1行列を取得し、且つ、n*nサイズの処理パラメータブロックに対して前段行列変換を行ってn*nサイズの第2行列を取得する。
ステップ304では、第1行列と第2行列とを乗算し、複数の入力チャンネルのうちの各入力チャンネルの乗算結果を取得する。
例示として、本ステップでは、第1行列及び第2行列を乗算することにより、各入力チャンネル、例えばR、G、Bチャンネルの乗算結果を取得可能である。例えば、6*6サイズの目標入力データブロックと6*6サイズの処理パラメータブロックとを乗算し、Winogradアルゴリズムに基づくと、4*4サイズの乗算結果を取得することができる。
ステップ305では、複数の入力チャンネルのうちの各入力チャンネルの乗算結果を積算し、目標サイズの第3行列を取得する。
例示として、本ステップでは、R、G、Bチャンネルの乗算結果を積算し、目標サイズの第3行列を取得する。例えば、R、G、Bチャンネルの乗算結果積算をして1つの4*4サイズの第3行列を取得する。
ステップ306では、第3行列を第2変換関係にしたがって変換し、第1算出ユニットの出力結果を取得する。
好ましくは、第2変換関係は、後段行列変換を含む。こうして、本実施例では、第3行列に対して後段行列変換を行って出力結果を取得する。ただし、第3行列に対して後段行列変換を行うと、第1算出ユニットの出力結果を取得する。例えば、処理すべきデータが特徴マップである場合に、当該特徴マップに対する演算結果を取得する。
以下では、図1を参照し、1つの具体的な例示で本実施例の実施過程について詳細に説明する。本実施例では、図1に示すデータ処理システム上で実現され得るWinogradアルゴリズム、Winogradアルゴリズムの原理は、下記のようになる。
Figure 2022518640000002
上記数式において、gは、畳み込みのカーネル(例えば、第1算出ユニットの処理パラメータ)であり、dは、毎回Winograd計算に関与するデータブロック、即ち、目標入力データブロック(例えば、第1算出ユニットの少なくとも一部の処理すべきデータ)であり、BdBは、目標入力データブロックdに対して前段行列変換を行うことを示し、BdBに対応する結果は、第1行列であり、GgGは、畳み込みカーネルgに対して前段行列変換を行うことを示し、GgGに対応する結果は、第2行列であり、
Figure 2022518640000003
は、2つの前段行列変換結果、即ち、第1行列及び第2行列に対して点積(乗算)を行うことを示し、
Figure 2022518640000004
は、点積結果における各チャンネルのデータを加算して第3行列を得てから第3行列に対して後段行列変換を行って最終的な出力結果Yを取得することを示す。
好ましくは、Winogradアルゴリズムは、図1に示すデータ処理システムに用いられる。第1算出ユニットを例とすると、具体的な実施手順は、下記のようになる。6*6サイズの目標入力データブロックを前段行列変換モジュール11に入力して前段行列変換を行わせて6*6サイズの第1行列を取得し、重み行列変換モジュール15によって処理パラメータに対して前段行列変換を行って6*6サイズの第2行列を取得し、その後、第1行列及び第2行列をそれぞれ乗算器12に入力して点積演算を行わせ、点積演算結果を更に加算器13に入力し、各チャンネルのデータに対して加算を行い、加算結果を後段行列変換モジュール14に入力して後段行列変換を行わせ、第1算出ユニットの出力結果を取得する。
本実施例では、コンピュータにおいて乗算の速度が一般的に加算よりも遅いため、一部の乗算の替わりに加算を用いることにより、乗算回数を減らし、僅かな加算を追加し、データ処理速度を向上させることができる。
このような設計により、本発明の実施例では、2種の固定小数点数の目標入力データブロックと2種の固定小数点数の処理パラメータとを組み合わせて4種の組み合わせを取得可能でありながら、1種の浮動小数点数の演算を加えると、合計で5種の混合精度の畳み込み演算は、実現できる。一方で、Winogradアルゴリズムが乗算の数を減少可能であるため、データ処理速度は、向上することができる。したがって、本発明の実施例では、演算速度及び演算精度が両立可能であり、即ち、演算速度が向上可能でありながら、混合精度の演算も実現できる。
説明すべきことは、Winogradアルゴリズムが本発明の実施例で採用される1種の可能な実現方式のみであり、実際の応用中に、機能がWinogradアルゴリズムと類似し又は同じである他の実現方式も採用可能であり、ここで限定しない。
好ましくは、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得することは、複数の入力チャンネルの入力データを複数の第1記憶領域に並行に入力することを含み、第1記憶領域の数と入力チャンネルの数とは、同じであり、異なる入力チャンネルの入力データは、異なる第1記憶領域に入力される。本実施例における第1記憶領域は、入力バッファモジュール16における記憶領域である。
好ましくは、複数の第1記憶領域のうちの各第1記憶領域は、複数の入力ラインバッファを含み、入力データの行数及び列数は、同じであり、目標入力データブロックの行数と、対応する第1記憶領域の入力ラインバッファの数とは、同じであり、複数の入力チャンネルのうちの各入力チャンネルごとに、少なくとも1つの入力データブロックのうちの目標入力データブロックを取得することは、各入力チャンネルの複数の入力ラインバッファからデータを並行に読み取って目標入力データブロックを取得することを含む。
好ましくは、入力データにおける隣接する2つの入力データブロックの間には、重畳データがある。
引き続き図1を参照すると、複数の第1記憶領域が入力バッファモジュール16であってもよく、入力バッファモジュール16が複数の入力ラインバッファ、例えば、Sram_I0、Sram_I1、Sram_I2、…、Sram_Inを含むと、1つの第1記憶領域は、入力バッファモジュール16における複数の入力ラインバッファ、例えば、Sram_I0、Sram_I1、Sram_I2、…、Sram_I5となる。入力バッファモジュール16は、複数の入力ラインバッファを含む。入力モジュール10aは、複数の入力ユニットCU_input_tileを含む。ただし、各入力ユニットは、第1所定数の入力ラインバッファに対応する。ただし、第1所定数は、目標入力データブロックの行数に対応する。例えば、目標入力データブロックが6*6サイズであれば、第1所定数は、6となる。
入力モジュール10aの入力計算並列度IPXは、8である。例えば、入力モジュール10aには、8つの並行する入力ユニットCU_input_tileが設けられてもよい。
好ましくは、各入力ユニットCU_input_tileは、複数の入力ラインバッファから1つの入力チャンネルの入力データを読み取る。例えば、入力バッファモジュール16を介してDDRから読み取ったデータがR、G、Bチャンネルの入力データを含む場合に、R、G、Bチャンネルにおける各チャンネルの入力データは、入力バッファモジュール16の第1所定数の入力ラインバッファにそれぞれ記憶される。
図4は、本発明の実施例に係る入力モジュールがデータを取得する模式図である。
図4に示すように、入力モジュールは、入力バッファモジュールから第1目標入力データブロック及び第2目標入力データブロックを読み取った。第2目標入力データブロックは、第1目標入力データブロックに隣接し、且つ読取順としては、第2目標入力データブロックが第1目標入力データブロックの後であり、第1目標入力データブロックと第2目標入力データブロックの間には、重畳データがある。
好ましくは、第1目標入力データブロックと第2目標入力データブロックの間に重畳データがあるとは、第2目標入力データブロックにおける第1列のデータが第1目標入力データブロックにおける最後から第2列のデータであることを指す。
好ましくは、第1目標入力データブロックが読み取られた第1個の目標入力データブロックである場合に、本実施例の方法は、各入力チャンネルの入力ラインバッファごとに、読み取られた各入力ラインバッファのデータの開始位置の前に補填データを追加して第1目標入力データブロックを形成するステップを更に含む。
例示として、入力ラインバッファがキャッシュSramである場合に、図4に示すように、キャッシュSramから読み取られたデータは、並行する6行のデータSram_I0、Sram_I1、Sram_I2、Sram_I3、Sram_I4、Sram_I5である。つまり、各入力ユニットは、Sram_I0、Sram_I1、Sram_I2、Sram_I3、Sram_I4、Sram_I5からデータを並行に読み取った。本例示では、キャッシュSramからデータを読み取ったときに、開始列に補填列を追加した。例えば、Sram_I0、Sram_I1、Sram_I2、Sram_I3、Sram_I4、Sram_I5の何れの開始列にも1列が0であるデータを追加した。当該追加されたデータと後の5列の正常データとは、6x6のデータブロック0を形成する。また、2つずつの6x6サイズのデータブロックの間には、重畳領域が存在する。例えば、データブロック0及びデータブロック1の間には、重畳領域が存在する。類似的に、データブロック1及びデータブロック2の間にも重畳領域が存在する。換言すれば、第1目標入力データブロックと第2目標入力データブロックとの間には、重畳データがある。winogradアルゴリズムでは、ウィンドウがスライドするときに開始列に補填列データが追加され、且つ一部のデータが多重化される。そのため、本実施例では、データを読み取るときに、読み取られた2つのデータブロックの間に重畳領域を設置し、且つ開始列に補填列を追加することにより、本実施例のハードウェア構造にwinogradアルゴリズムを実現することができる。
別の例示において、当該ニューラルネットワーク層の第1配置情報及び第2配置情報がそれぞれ4bit及び8bitである場合に、キャッシュSramからデータを読み取る過程に、読み取られる目標入力データブロックにおけるデータは、何れも4bitのビット幅の目標入力データブロックとなる。また、重みバッファモジュールから処理パラメータを読み取る過程に、読み取られる処理パラメータブロックにおけるデータは、何れも8bitのビット幅の処理パラメータとなる。
好ましくは、第1算出ユニットの出力結果は、複数の出力チャンネルの出力結果を含み、第3行列を第2行列変換関係にしたがって行列変換を行って第1算出ユニットの出力結果を取得した後、本実施例の方法は、複数の出力チャンネルの出力結果を並行に出力するステップを更に含む。
好ましくは、複数の出力チャンネルの出力結果を並行に出力するステップは、前記複数の出力チャンネルの演算結果を一度で出力する場合に、複数の出力チャンネルの出力結果のそれぞれに対してバイアス量を追加して出力することを含む。ただし、バイアス量は、ニューラルネットワークの畳み込み層におけるバイアス(bias)パラメータであってもよい。
好ましくは、本実施例の方法は、複数の出力チャンネルの出力結果を複数の第2記憶領域に並行に入力するステップを更に含み、第2記憶領域の数と出力チャンネルの数とは、同じであり、異なる出力チャンネルの出力結果は、異なる第2記憶領域に入力される。
好ましくは、各第2記憶領域は、複数の出力ラインバッファを含み、出力結果は、複数行の出力データと複数列の出力データとを含み、当該方法において、バスを整列させる方式で複数の出力ラインバッファからデータを並行に読み取り、目標出力データブロックを取得してメモリに書き込み、目標出力データブロックの行数及び列数は、同じである。本実施例におけるメモリは、DDRであってもよい。
引き続き図1を参照すると、複数の第2記憶領域が出力バッファモジュール17であってもよく、出力バッファモジュール17が複数の出力ラインバッファ、例えば、Sram_O0、Sram_O1、Sram_O2、…、Sram_Omであると、1つの第2記憶領域は、出力バッファモジュール17における複数の出力ラインバッファ、例えばSram_O0、Sram_O1、Sram_O2、Sram_O3となる。出力モジュール10bは、複数の出力ユニットCU_output_tileを備える。ただし、各出力ユニットは、第2所定数の出力ラインバッファに対応する。ただし、第2所定数は、目標出力データブロックの行のサイズに対応する。例えば、目標出力データブロックが4*4サイズである場合に、第2所定数は、4となる。
出力モジュール10bの出力計算並列度OPXは、4である。例えば、出力モジュール10bには、4つの並行する出力ユニットCU_output_tileが設けられてもよい。
例示として、出力ラインバッファがキャッシュSramである場合に、図5に示すように、複数行の出力結果をSram_O0、Sram_O1、Sram_O2、Sram_O3の4つの出力ラインバッファにそれぞれ書き込んでもよい。つまり、各出力ユニットは、データをSram_Oi、Sram_Oi+1、Sram_Oi+2、Sram_Oi+3に並行にバッファする。ただし、出力バッファモジュール内部の記憶は、data bus align(データバスが整列する)の方式で書き込む必要がある。同様に、配置に応じて、合計で3種のデータ形式の整列方式(4bit、8bit、32bit)がある。DDRへデータを書き込むときに、図5に示すline0、line1、line2、line3の順番で書き込む。
好ましくは、第1行列及び第2行列を乗算する前に、本実施例の方法は、第3配置情報を取得するステップを更に含む。第1算出ユニットが浮動小数点演算をサポートするよう、第3配置情報によって指示された場合に、処理すべきデータのうちの浮動小数点データを処理する。本実施例において、第3配置情報は、浮動小数点データの乗算を行えるか否かを指示するために用いられる。浮動小数点データの乗算を行えると第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得して処理する。浮動小数点データの乗算を行えないと第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得しない。1つの例示では、可以是対FPGAにおける乗算器13について、乗算器13が浮動小数点演算をサポートするか否かを指示するための第3配置情報を設置してもよい。乗算器13が浮動小数点データをサポートすると第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得して処理する。前記乗算器13が浮動小数点データをサポートしないと前記第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得しない。例えば、乗算器13は、第3配置情報に応じて、固定小数点乗算器を採用するかそれとも浮動小数点乗算器を採用するかを選択してもよい。こうして、乗算器は、柔軟に配置可能である。FPGAでは、浮動小数点乗算器に用いられるリソースが固定小数点乗算器の4倍である。浮動小数点乗算器が配置されていない又は浮動小数点乗算器が起動していない場合に、浮動小数点演算で消費されるリソースを省くことができ、データ処理速度を向上させる。
本実施例に係るデータ処理方法は、自動運転、画像処理のような場面に適用可能である。自動運転の場面を例とすると、1つの好適な例示において、処理すべきデータが自動運転中に取得された環境画像であり、当該環境画像がニューラルネットワークを介して処理される必要があると、当該環境画像の処理中に、異なるニューラルネットワーク層において異なるビット幅の処理すべきデータをサポート可能であるため、ビット幅が小さいほど、計算速度が速くなるので、ニューラルネットワーク層が単一のビット幅の処理すべきデータをサポートする場合よりも、本実施例のニューラルネットワーク層は、異なるビット幅の処理すべきデータをサポートし、画像の精度を保証できる場合になるべく環境画像に対する処理速度を向上させる。また、計算中に乗算が一般的に加算よりも遅いため、一部の乗算の替わりに加算を用いることにより、乗算の数が減少可能であり、僅かな加算を追加するだけで、環境画像に対する処理速度を速めることができる。環境画像の処理速度が向上した後、当該環境画像の処理結果を利用して後続の運転ポリシーや経路計画等を行う場合にも、運転ポリシーや経路計画を行う手順を速めることができる。
図6は、本発明の実施例に係るデータ処理装置の構造模式図である。本発明の実施例に係るデータ処理装置は、データ処理方法の実施例に係る処理フローを実行可能である。図6に示すように、データ処理装置60は、第1取得モジュール61、第2取得モジュール62及び処理モジュール63を備える。第1取得モジュール61は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得し、前記処理すべきデータは、第1ビット幅のデータを含む。第2取得モジュール62は、前記第1算出ユニットの処理パラメータを取得し、前記処理パラメータは、第2ビット幅のパラメータを含む。処理モジュール63は、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得する。ただし、前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なる。
好ましくは、前記第1取得モジュール61は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得する際に、具体的に、前記第1算出ユニットに入力された処理すべきデータを示すために用いられる第1ビット幅を含む、前記第1算出ユニットの第1配置情報を取得し、前記第1ビット幅に基づいて、ビット幅が前記第1ビット幅である処理すべきデータを取得する。前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第1ビット幅は、異なる。
好ましくは、前記第2取得モジュール62は、前記第1算出ユニットの処理パラメータを取得する際に、具体的に、前記第1算出ユニットに入力された処理パラメータを示すために用いられる第2ビット幅を含む、前記第1算出ユニットの第2配置情報を取得し、前記第2ビット幅に基づいて、ビット幅が前記第2ビット幅である処理パラメータを取得する。前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第2ビット幅は、異なる。
好ましくは、前記処理すべきデータは、複数の入力チャンネルの入力データを含み、前記入力データは、少なくとも1つの入力データブロックを含み、前記処理モジュール63は、前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得する際に、具体的に、前記複数の入力チャンネルのうちの各入力チャンネルごとに、前記少なくとも1つの入力データブロックのうちの目標入力データブロックを取得し、処理パラメータから、前記目標入力データブロックとは対応関係を有する処理パラメータブロックを取得し(前記処理パラメータブロックと前記目標入力データブロックとのサイズは、同じであり)、第1変換関係にしたがって、対応関係を有する、前記目標入力データブロックと前記処理パラメータブロックとのそれぞれに対して変換し、前記目標入力データブロックに対応する第1行列と、前記処理パラメータに対応する第2行列とを取得し、前記第1行列と前記第2行列とを乗算し、前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を取得し、前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を積算し、目標サイズの第3行列を取得し、前記第3行列を第2変換関係にしたがって変換し、前記第1算出ユニットの出力結果を取得する。
好ましくは、前記第1算出ユニットの出力結果は、複数の出力チャンネルの出力結果を含み、前記装置60は、前記複数の出力チャンネルの出力結果を並行に出力するための出力モジュール64を更に備える。
好ましくは、前記第1取得モジュール61は、複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得する際に、具体的に、前記複数の入力チャンネルの入力データを複数の第1記憶領域に並行に入力する。前記第1記憶領域の数と入力チャンネルの数とは、同じであり、異なる入力チャンネルの入力データは、異なる第1記憶領域に入力される。
好ましくは、前記複数の第1記憶領域のうちの各第1記憶領域は、複数の入力ラインバッファを含み、前記入力データの行数及び列数は、同じであり、前記目標入力データブロックの行数と、対応する第1記憶領域の入力ラインバッファの数とは、同じであり、前記処理モジュール63は、前記複数の入力チャンネルのうちの各入力チャンネルごとに、前記少なくとも1つの入力データブロックのうちの目標入力データブロックを取得する際に、具体的に、前記各入力チャンネルの複数の入力ラインバッファからデータを並行に読み取り、前記目標入力データブロックを取得する。
好ましくは、前記入力データにおける隣接する2つの前記入力データブロックの間に重畳データがある。
好ましくは、前記出力モジュール64は、前記複数の出力チャンネルの出力結果を並行に出力する際に、具体的に、前記複数の出力チャンネルの演算結果を一度で出力する場合に、前記複数の出力チャンネルの出力結果のそれぞれに対してバイアス量を追加して出力する。
好ましくは、前記出力モジュール64は、更に、複数の出力チャンネルの出力結果を複数の第2記憶領域に並行に入力する。前記第2記憶領域の数と出力チャンネルの数とは、同じであり、異なる出力チャンネルの出力結果は、異なる第2記憶領域に入力される。
好ましくは、各第2記憶領域は、複数の出力ラインバッファを含み、前記出力結果は、複数行の出力データと複数列の出力データとを含み、前記出力モジュール64は、バスを整列させる方式で複数の出力ラインバッファからデータを並行に読み取り、目標出力データブロックを取得してメモリに書き込み、前記目標出力データブロックの行数及び列数は、同じである。
好ましくは、前記装置60は、第3配置情報を取得するための第3取得モジュール65を更に備え、前記処理モジュール63は、更に、前記第1算出ユニットが浮動小数点演算をサポートすると前記第3配置情報によって指示された場合に、前記処理すべきデータのうちの浮動小数点データを処理する。
図6に示す実施例のデータ処理装置は、上記方法実施例の技術案を実行するためのものであってもよく、その実施原理及び技術効果が類似するため、ここで繰り返し説明しない。
図7は、本発明の実施例に係るデータ処理機器の構造模式図である。図7に示すように、データ処理機器70は、メモリ71、プロセッサ72、コンピュータプログラム及び通信インターフェース73を備える。ただし、コンピュータプログラムは、メモリ71に記憶され、プロセッサ72によって実行されることにより、上記データ処理方法の実施例の技術案を実施させる。
図7に示す実施例のデータ処理機器は、上記方法実施例の技術案を実行するためのものであってもよく、その実施原理及び技術効果が類似するため、ここで繰り返し説明しない。
また、本発明の実施例は、コンピュータ可読記憶媒体を更に提供する。当該コンピュータ可読記憶媒体には、コンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサによって実行されることにより、上記実施例に記載のデータ処理方法は、実施される。
本発明に係る幾つかの実施例において、開示された装置及び方法が他の方式にて実現され得ることは、理解されるべきである。例えば、上述した装置実施例が単に模式的なものであり、例えば、前記ユニットの区分が、単に1種の論理機能区分であり、実際に実施するときに別の区分方式もあり得る。例えば、複数のユニット或いはユニットは、組み合わせられてもよく、または、別のシステムに統合されてもよく、または、幾つかの特徴が略され、若しくは実行しないようにしてもよい。また、示され或いは議論された各構成部分同士間は、結合が直接結合であってもよく、通信接続が幾つかのインターフェース、装置或いはユニットを介する間接結合若しくは通信接続であってもよく、電気的なもの、機械的なもの或いは他の形態であってもよい。
上記分離部品として説明されるユニットが物理的に分離されるものであってもよくでなくてもよい。また、ユニットとして表示される部品は、物理ユニットであってもでなくてもよい。更に、それらのユニットは、1箇所に位置してもよく、複数のネットワークセルに分散してもよい。実際の需要に応じてその中の一部または全部のモジュールを選択して本実施例の目的を果たすことが可能である。
また、本発明の各実施例における各機能ユニットは、全部で1つの処理ユニットに集積されてもよく、各ユニットがそれぞれ単独で1つのユニットとされてもよく、2つ或いは2つ以上のユニットが1つのユニットに集積されてもよい。上記集積ユニットは、ハードウェアの形態にて実現されてよく、ハードウェアプラスソフトウェア機能ユニットの形態にて実現されてもよい。
上記ソフトウェア機能ユニットの形態で実現される集積のユニットは、1つのコンピュータ読み取り可能な記憶媒体に記憶されてもよい。上記ソフトウェア機能ユニットは、1つの記憶媒体に記憶され、コンピュータ機器(パソコン、サーバ又はネットワーク機器等であってもよい)又はプロセッサ(processor)に本発明の各実施例に記載の方法の一部のステップを実行させるための幾つかの指令を含む。上述した記憶媒体は、Uディスク、モバイルハードディスク、読み出し専用メモリ(Read-Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、磁気ディスクまたは光ディスク等の、プログラムコードを格納可能な各種の媒体を含む。当該コンピュータ記憶媒体は、揮発性記憶媒体及び/又は不揮発性記憶媒体であってもよい。
上記実施例において、全部又は部分的にソフトウェア、ハードウェア、ファームウェア又はそれらの任意の組み合わせで実施されてもよい。ソフトウェアで実施されるときに、全部又は部分的にコンピュータプログラム製品の形式で実施されてもよい。コンピュータプログラム製品は、1つ又は複数の機器の実行可能な指令を含む。コンピュータに機器の実行可能な指令をロードして実行するときに、全部又は部分的に本発明の実施例に沿うフロー又は機能を生成する。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は他のプログラマブル装置であってもよい。コンピュータ指令は、コンピュータ可読記憶媒体に記憶されてもよく、又は1つのコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ指令は、1つのウェブサイト、コンピュータ、軌跡予測機器又はデータセンターから、有線(例えば、同軸ケーブル、光ファイバー、デジタル加入者線(digital subscriber line、DSL))又は無線(例えば、赤外、無線、マイクロ波等)方式によって別のウェブサイト、コンピュータ、軌跡予測機器又はデータセンターへ伝送されてもよい。コンピュータ可読記憶媒体は、コンピュータがアクセスできる如何なる利用可能媒体、又は、1つ又は複数の利用可能媒体を含んで統合された軌跡予測機器、データセンター等のデータ記憶機器であってもよい。利用可能媒体は、磁気媒体、(例えば、フロッピーディスク、ハードディスク、磁気テープ)、光媒体(例えば、DVD))、又は半導体媒体(例えば、ソリッドステートディスク(solid state disk、SSD))等であってもよい。
当業者であれば明白で理解できるように、記述の利便性及び簡潔性のために、単に上記各機能モジュールの区分を例として説明したが、実際の応用に、必要に応じて上記機能割当を異なる機能モジュールで完成させ、即ち、装置の内部構造を異なる機能モジュールに分割して上述した全部又は一部の機能を完成させてもよい。上述した装置の具体的な稼働手順は、上記方法実施例における対応する手順を参照すればよいため、ここで繰り返し説明しない。
最後に説明すべきことは、上記各実施例が単に本発明の技術案を説明するためのものであり、それに対する制限とはならない。上記各実施例を参照して本発明を詳細に説明したが、当業者であれば理解できるように、依然として上記各実施例に記載の技術案に対して補正可能であり、又は、そのうちの一部若しくは全部の技術特徴に対して均等物による置換も可能であり、更に、これらの補正若しくは置換によって対応する技術案の要旨が本発明の各実施例の技術案の範囲から逸脱することはない。
ただし、加速器は、入力モジュール10a、出力モジュール10b、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14、重み行列変換モジュール15、入力バッファモジュール16、出力バッファモジュール17及び重みバッファモジュール18を備える。入力モジュール10a、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14及び出力モジュール10bは、順に接続され、重み行列変換モジュール15は、出力モジュール10b及び乗算器12にそれぞれ接続されている。本発明の実施例において、加速器は、畳み込みニューラルネットワークCNN加速器を含んでもよい。DDR、入力バッファモジュール16及び入力モジュール10aは、順に接続されている。DDRには、処理すべきデータ、例えば特徴マップデータが記憶される。出力モジュール10bは、順に出力バッファモジュール17、DDRに接続されている。重み行列変換モジュール15は、重みバッファモジュール18にも接続されている。
ニューラルネットワークにとって、ニューラルネットワークの各層は、何れも図1に示す入力モジュール10a、出力モジュール10b、前段行列変換モジュール11、乗算器12、加算器13、後段行列変換モジュール14、重み行列変換モジュール15を備えてもよい。ニューラルネットワーク層の計算手順が順次行われるため、ニューラルネットワークの各層は、1つの入力バッファモジュール16及び1つの出力バッファモジュール17を共用してもよい。ニューラルネットワークの現在層(例えば、第1算出ユニット)は、演算を行う必要がある場合に、DDRからニューラルネットワークの現在層に必要な処理すべきデータを取得し、入力バッファモジュール16に入力してバッファさせ、且つニューラルネットワークの現在層に必要な処理パラメータを重みバッファモジュール18にバッファしてもよい。
ステップ303では、第1変換関係にしたがって、対応関係を有する、目標入力データブロックと処理パラメータブロックとのそれぞれに対して変換し、目標入力データブロックに対応する第1行列と、処理パラメータブロックに対応する第2行列とを取得する。
このような設計により、本発明の実施例では、2種の固定小数点数の目標入力データブロックと2種の固定小数点数の処理パラメータブロックとを組み合わせて4種の組み合わせを取得可能でありながら、1種の浮動小数点数の演算を加えると、合計で5種の混合精度の畳み込み演算は、実現できる。一方で、Winogradアルゴリズムが乗算の数を減少可能であるため、データ処理速度は、向上することができる。したがって、本発明の実施例では、演算速度及び演算精度が両立可能であり、即ち、演算速度が向上可能でありながら、混合精度の演算も実現できる。
別の例示において、当該ニューラルネットワーク層の第1配置情報及び第2配置情報がそれぞれ4bit及び8bitである場合に、キャッシュSramからデータを読み取る過程に、読み取られる目標入力データブロックにおけるデータは、何れも4bitのビット幅の目標入力データブロックとなる。また、重みバッファモジュールから処理パラメータを読み取る過程に、読み取られる処理パラメータにおけるデータは、何れも8bitのビット幅の処理パラメータとなる。
好ましくは、第1算出ユニットの出力結果は、複数の出力チャンネルの出力結果を含み、第3行列を第2変換関係にしたがって行列変換を行って第1算出ユニットの出力結果を取得した後、本実施例の方法は、複数の出力チャンネルの出力結果を並行に出力するステップを更に含む。
好ましくは、第1行列及び第2行列を乗算する前に、本実施例の方法は、第3配置情報を取得するステップを更に含む。第1算出ユニットが浮動小数点演算をサポートするよう、第3配置情報によって指示された場合に、処理すべきデータのうちの浮動小数点データを処理する。本実施例において、第3配置情報は、浮動小数点データの乗算を行えるか否かを指示するために用いられる。浮動小数点データの乗算を行えると第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得して処理する。浮動小数点データの乗算を行えないと第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得しない。1つの例示では、可以是対FPGAにおける乗算器13について、乗算器13が浮動小数点演算をサポートするか否かを指示するための第3配置情報を設置してもよい。乗算器13が浮動小数点演算をサポートすると第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得して処理する。前記乗算器13が浮動小数点演算をサポートしないと前記第3配置情報によって指示された場合に、浮動小数点型の処理すべきデータを取得しない。例えば、乗算器13は、第3配置情報に応じて、固定小数点乗算器を採用するかそれとも浮動小数点乗算器を採用するかを選択してもよい。こうして、乗算器は、柔軟に配置可能である。FPGAでは、浮動小数点乗算器に用いられるリソースが固定小数点乗算器の4倍である。浮動小数点乗算器が配置されていない又は浮動小数点乗算器が起動していない場合に、浮動小数点演算で消費されるリソースを省くことができ、データ処理速度を向上させる。

Claims (21)

  1. データ処理方法であって、
    複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得するステップと、
    前記第1算出ユニットの処理パラメータを取得するステップと、
    前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得するステップと、を含み、
    前記処理すべきデータは、第1ビット幅のデータを含み、
    前記処理パラメータは、第2ビット幅のパラメータを含み、
    前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なることを特徴とするデータ処理方法。
  2. 前記複数の算出ユニットのうちの前記第1算出ユニットに入力された前記処理すべきデータを取得するステップは、
    前記第1算出ユニットに入力された前記処理すべきデータを示すために用いられ前記第1ビット幅を含む、前記第1算出ユニットの第1配置情報を取得することと、
    前記第1ビット幅に基づいて、ビット幅が前記第1ビット幅である処理すべきデータを取得することと、を含み、
    前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第1ビット幅は、異なることを特徴とする請求項1に記載のデータ処理方法。
  3. 前記第1算出ユニットの前記処理パラメータを取得するステップは、
    前記第1算出ユニットに入力された前記処理パラメータを示すために用いられる前記第2ビット幅を含む、前記第1算出ユニットの第2配置情報を取得することと、
    前記第2ビット幅に基づいて、ビット幅が前記第2ビット幅である処理パラメータを取得することと、を含み、
    前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第2ビット幅は、異なることを特徴とする請求項1に記載のデータ処理方法。
  4. 前記処理すべきデータは、複数の入力チャンネルの入力データを含み、
    前記入力データは、少なくとも1つの入力データブロックを含み、
    前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得するステップは、
    前記複数の入力チャンネルのうちの各入力チャンネルごとに、前記少なくとも1つの入力データブロックのうちの目標入力データブロックを取得することと、
    前記処理パラメータから、前記目標入力データブロックとは対応関係を有する処理パラメータブロックを取得することと、
    第1変換関係にしたがって、対応関係を有する、前記目標入力データブロックと前記処理パラメータブロックとのそれぞれに対して変換し、前記目標入力データブロックに対応する第1行列と、前記処理パラメータに対応する第2行列とを取得することと、
    前記第1行列と前記第2行列とを乗算し、前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を取得することと、
    前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を積算し、目標サイズの第3行列を取得することと、
    前記第3行列を第2変換関係にしたがって変換し、前記第1算出ユニットの出力結果を取得することと、を含み、
    前記処理パラメータブロックと前記目標入力データブロックとのサイズは、同じであることを特徴とする請求項1から3の何れか一項に記載のデータ処理方法。
  5. 前記第1算出ユニットの出力結果は、複数の出力チャンネルの出力結果を含み、
    前記第3行列を第2行列変換関係にしたがって行列変換し、前記第1算出ユニットの出力結果を取得した後、
    前記データ処理方法は、前記複数の出力チャンネルの出力結果を並行に出力するステップを更に含むことを特徴とする請求項4に記載のデータ処理方法。
  6. 前記複数の算出ユニットのうちの前記第1算出ユニットに入力された前記処理すべきデータを取得するステップは、
    前記複数の入力チャンネルの入力データを複数の第1記憶領域に並行に入力することを含み、
    前記第1記憶領域の数と入力チャンネルの数とは、同じであり、異なる入力チャンネルの入力データは、異なる第1記憶領域に入力されることを特徴とする請求項4に記載のデータ処理方法。
  7. 前記複数の第1記憶領域のうちの各第1記憶領域は、複数の入力ラインバッファを含み、前記入力データの行数及び列数は、同じであり、前記目標入力データブロックの行数と、対応する第1記憶領域の入力ラインバッファの数とは、同じであり、
    前記複数の入力チャンネルのうちの各入力チャンネルごとに、前記少なくとも1つの入力データブロックのうちの前記目標入力データブロックを取得することは、
    前記各入力チャンネルの複数の入力ラインバッファからデータを並行に読み取り、前記目標入力データブロックを取得することを含むことを特徴とする請求項6に記載のデータ処理方法。
  8. 前記入力データにおける隣接する2つの前記入力データブロックの間に重畳データがあることを特徴とする請求項6又は7に記載のデータ処理方法。
  9. 前記複数の出力チャンネルの出力結果を並行に出力するステップは、
    前記複数の出力チャンネルの演算結果を一度で出力する場合に、前記複数の出力チャンネルの出力結果のそれぞれに対してバイアス量を追加して出力することを含むことを特徴とする請求項5に記載のデータ処理方法。
  10. 前記データ処理方法は、
    複数の出力チャンネルの出力結果を複数の第2記憶領域に並行に入力するステップを更に含み、
    前記第2記憶領域の数と出力チャンネルの数とは、同じであり、異なる出力チャンネルの出力結果は、異なる第2記憶領域に入力されることを特徴とする請求項5又は9に記載のデータ処理方法。
  11. 各第2記憶領域は、複数の出力ラインバッファを含み、
    前記出力結果は、複数行の出力データと複数列の出力データとを含み、
    前記データ処理方法では、バスを整列させる方式で複数の出力ラインバッファからデータを並行に読み取り、目標出力データブロックを取得してメモリに書き込み、
    前記目標出力データブロックの行数及び列数は、同じであることを特徴とする請求項10に記載のデータ処理方法。
  12. 前記第1行列と前記第2行列とを乗算する前に、前記データ処理方法は、
    第3配置情報を取得するステップと、
    前記第1算出ユニットが浮動小数点演算をサポートすると前記第3配置情報によって指示された場合に、前記処理すべきデータのうちの浮動小数点データを処理するステップと、を更に含むことを特徴とする請求項4から11の何れか一項に記載のデータ処理方法。
  13. データ処理装置であって、
    複数の算出ユニットのうちの第1算出ユニットに入力された処理すべきデータを取得するための第1取得モジュールと、
    前記第1算出ユニットの処理パラメータを取得するための第2取得モジュールと、
    前記処理すべきデータ及び前記処理パラメータに基づいて、前記第1算出ユニットの出力結果を取得するための処理モジュールと、を備え、
    前記処理すべきデータは、第1ビット幅のデータを含み、
    前記処理パラメータは、第2ビット幅のパラメータを含み、
    前記複数の算出ユニットのうちの第2算出ユニットに入力された処理すべきデータのビット幅と、前記第1算出ユニットに入力された処理すべきデータのビット幅とは、異なり、及び/又は、前記第2算出ユニットに入力された処理パラメータのビット幅と、前記第1算出ユニットに入力された処理パラメータのビット幅とは、異なることを特徴とするデータ処理装置。
  14. 前記第1取得モジュールは、更に、
    前記第1算出ユニットに入力された前記処理すべきデータを示すために用いられる前記第1ビット幅を含む、前記第1算出ユニットの第1配置情報を取得し、
    前記第1ビット幅に基づいて、ビット幅が前記第1ビット幅である処理すべきデータを取得し、
    前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第1ビット幅は、異なり、
    前記第2取得モジュールは、更に、
    前記第1算出ユニットに入力された前記処理パラメータを示すために用いられる前記第2ビット幅を含む、前記第1算出ユニットの第2配置情報を取得し、
    前記第2ビット幅に基づいて、ビット幅が前記第2ビット幅である処理パラメータを取得し、
    前記複数の算出ユニットのうちの少なくとも2つの算出ユニットの第2ビット幅は、異なることを特徴とする請求項13に記載のデータ処理装置。
  15. 前記処理すべきデータは、複数の入力チャンネルの入力データを含み、前記入力データは、少なくとも1つの入力データブロックを含み、
    前記処理モジュールは、更に、
    前記複数の入力チャンネルのうちの各入力チャンネルごとに、前記少なくとも1つの入力データブロックのうちの目標入力データブロックを取得し、
    前記処理パラメータから、前記目標入力データブロックとは対応関係を有する処理パラメータブロックを取得し、
    第1変換関係にしたがって、対応関係を有する、前記目標入力データブロックと前記処理パラメータブロックとのそれぞれに対して変換し、前記目標入力データブロックに対応する第1行列と、前記処理パラメータに対応する第2行列とを取得し、
    前記第1行列と前記第2行列とを乗算し、前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を取得し、
    前記複数の入力チャンネルのうちの各入力チャンネルの乗算結果を積算し、目標サイズの第3行列を取得し、
    前記第3行列を第2変換関係にしたがって変換し、前記第1算出ユニットの出力結果を取得し、
    前記処理パラメータブロックと前記目標入力データブロックとのサイズは、同じであることを特徴とする請求項13又は14に記載のデータ処理装置。
  16. 前記第1算出ユニットの出力結果は、複数の出力チャンネルの出力結果を含み、
    前記データ処理装置は、前記複数の出力チャンネルの出力結果を並行に出力するための出力モジュールを更に備え、
    前記複数の出力チャンネルの出力結果を並行に出力することは、
    前記複数の出力チャンネルの演算結果を一度で出力する場合に、前記複数の出力チャンネルの出力結果のそれぞれに対してバイアス量を追加して出力することを含み、
    前記出力モジュールは、更に、複数の出力チャンネルの出力結果を複数の第2記憶領域に並行に入力し、
    前記第2記憶領域の数と出力チャンネルの数とは、同じであり、異なる出力チャンネルの出力結果は、異なる第2記憶領域に入力されることを特徴とする請求項15に記載のデータ処理装置。
  17. 前記第1取得モジュールは、更に、
    前記複数の入力チャンネルの入力データを複数の第1記憶領域に並行に入力し、
    前記第1記憶領域の数と入力チャンネルの数とは、同じであり、異なる入力チャンネルの入力データは、異なる第1記憶領域に入力され、
    前記複数の第1記憶領域のうちの各第1記憶領域は、複数の入力ラインバッファを含み、前記入力データの行数及び列数は、同じであり、前記目標入力データブロックの行数と、対応する第1記憶領域の入力ラインバッファの数とは、同じであり、
    前記処理モジュールは、更に、
    前記各入力チャンネルの複数の入力ラインバッファからデータを並行に読み取り、前記目標入力データブロックを取得することを特徴とする請求項15に記載のデータ処理装置。
  18. 前記データ処理装置は、第3配置情報を取得するための第3取得モジュールを更に備え、
    前記処理モジュールは、更に、前記第1算出ユニットが浮動小数点演算をサポートすると前記第3配置情報によって指示された場合に、前記処理すべきデータのうちの浮動小数点データを処理することを特徴とする請求項13から17の何れか一項に記載のデータ処理装置。
  19. データ処理機器であって、
    プロセッサと、
    プロセッサ実行可能なプログラムが記憶されるメモリと、を備え、
    前記プログラムが前記プロセッサによって実行されることにより、前記プロセッサに請求項1から12の何れか一項に記載の方法を実施させることを特徴とするデータ処理機器。
  20. コンピュータプログラムが記憶されるコンピュータ可読記憶媒体であって、
    前記コンピュータプログラムがプロセッサによって実行されたときに、前記プロセッサに請求項1から12の何れか一項に記載の方法を実施させることを特徴とするコンピュータ可読記憶媒体。
  21. 機器の実行可能な指令を含むコンピュータプログラム製品であって、
    前記機器の実行可能な指令がコンピュータによって読み取って実行されたときに、前記コンピュータに請求項1から12の何れか一項に記載の方法を実施させることを特徴とするコンピュータプログラム製品。
JP2020570459A 2019-12-27 2020-07-20 データ処理方法、装置、機器、記憶媒体及びプログラム製品 Pending JP2022518640A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201911379755.6 2019-12-27
CN201911379755.6A CN111047037B (zh) 2019-12-27 2019-12-27 数据处理方法、装置、设备及存储介质
PCT/CN2020/103118 WO2021128820A1 (zh) 2019-12-27 2020-07-20 数据处理方法、装置、设备、存储介质和程序产品

Publications (1)

Publication Number Publication Date
JP2022518640A true JP2022518640A (ja) 2022-03-16

Family

ID=70239430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020570459A Pending JP2022518640A (ja) 2019-12-27 2020-07-20 データ処理方法、装置、機器、記憶媒体及びプログラム製品

Country Status (4)

Country Link
JP (1) JP2022518640A (ja)
CN (1) CN111047037B (ja)
SG (1) SG11202013048WA (ja)
WO (1) WO2021128820A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047037B (zh) * 2019-12-27 2024-05-24 北京市商汤科技开发有限公司 数据处理方法、装置、设备及存储介质
CN114911832B (zh) * 2022-05-19 2023-06-23 芯跳科技(广州)有限公司 一种数据处理方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464180A (ja) * 1990-07-04 1992-02-28 Toshiba Corp ディジタル画像表示装置
JP2001036755A (ja) * 1999-07-15 2001-02-09 Seiko Epson Corp 色変換回路
CN108229648A (zh) * 2017-08-31 2018-06-29 深圳市商汤科技有限公司 卷积计算方法和装置、电子设备、计算机存储介质
JP2018139103A (ja) * 2016-12-13 2018-09-06 アクシス アーベー ニューラルネットワークをトレーニングするための方法、コンピュータプログラム製品、およびデバイス
WO2018192500A1 (zh) * 2017-04-19 2018-10-25 上海寒武纪信息科技有限公司 处理装置和处理方法
CN109146067A (zh) * 2018-11-19 2019-01-04 东北大学 一种基于FPGA的Policy卷积神经网络加速器
JP2019028616A (ja) * 2017-07-27 2019-02-21 トヨタ自動車株式会社 識別装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725700A (zh) * 2017-10-29 2019-05-07 上海寒武纪信息科技有限公司 动态调压调频装置和方法
US10768685B2 (en) * 2017-10-29 2020-09-08 Shanghai Cambricon Information Technology Co., Ltd Convolutional operation device and method
CN111626413A (zh) * 2018-03-14 2020-09-04 上海寒武纪信息科技有限公司 一种计算装置及方法
CN111047037B (zh) * 2019-12-27 2024-05-24 北京市商汤科技开发有限公司 数据处理方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464180A (ja) * 1990-07-04 1992-02-28 Toshiba Corp ディジタル画像表示装置
JP2001036755A (ja) * 1999-07-15 2001-02-09 Seiko Epson Corp 色変換回路
JP2018139103A (ja) * 2016-12-13 2018-09-06 アクシス アーベー ニューラルネットワークをトレーニングするための方法、コンピュータプログラム製品、およびデバイス
WO2018192500A1 (zh) * 2017-04-19 2018-10-25 上海寒武纪信息科技有限公司 处理装置和处理方法
JP2019028616A (ja) * 2017-07-27 2019-02-21 トヨタ自動車株式会社 識別装置
CN108229648A (zh) * 2017-08-31 2018-06-29 深圳市商汤科技有限公司 卷积计算方法和装置、电子设备、计算机存储介质
CN109146067A (zh) * 2018-11-19 2019-01-04 东北大学 一种基于FPGA的Policy卷积神经网络加速器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
山田 敬嗣: "ニューラルネットによるパターン認識〔III〕", 電子情報通信学会誌, vol. 第82巻 第10号, JPN6022011075, 25 October 1999 (1999-10-25), pages 1046 - 1053, ISSN: 0004894978 *
石垣 雄太朗 他: "高精度かつ高度なADASの構築に貢献する車載向け 低消費電力DCNNハードウェアアクセラレーター", 東芝レビュー, vol. 第74巻 第5号, JPN6022011074, September 2019 (2019-09-01), pages 26 - 29, ISSN: 0004894979 *

Also Published As

Publication number Publication date
WO2021128820A1 (zh) 2021-07-01
CN111047037B (zh) 2024-05-24
CN111047037A (zh) 2020-04-21
SG11202013048WA (en) 2021-07-29

Similar Documents

Publication Publication Date Title
CN110678840B (zh) 张量寄存器文件
CN112214726B (zh) 运算加速器
CN110678841B (zh) 张量处理器指令集架构
US10768894B2 (en) Processor, information processing apparatus and operation method for processor
CN112840356A (zh) 运算加速器、处理方法及相关设备
US20210201122A1 (en) Data processing methods, apparatuses, devices, storage media and program products
CN110276444B (zh) 基于卷积神经网络的图像处理方法及装置
JP2022518640A (ja) データ処理方法、装置、機器、記憶媒体及びプログラム製品
CN108073549B (zh) 卷积运算装置及方法
JP5071707B2 (ja) データ処理装置およびその制御方法
JP2020107338A (ja) ニューラルネットワークのコンボルーション演算を処理する方法及びその装置
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
WO2019216376A1 (ja) 演算処理装置
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
US20210042261A1 (en) Data processing
WO2020230374A1 (ja) 演算装置および演算システム
JP6906622B2 (ja) 演算回路および演算方法
KR20210014561A (ko) 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체
CN108491546A (zh) 一种页面切换方法及电子设备
JP2023076026A (ja) 半導体装置
EP2343640A2 (en) List structure control circuit
JP2002269067A (ja) 行列演算装置
JP5742427B2 (ja) 画像処理装置
CN112099737B (zh) 存储数据的方法、装置、设备和存储介质
JPH1063647A (ja) 行列演算装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221012

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230510