JP2022518636A - データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品 - Google Patents

データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品 Download PDF

Info

Publication number
JP2022518636A
JP2022518636A JP2020564063A JP2020564063A JP2022518636A JP 2022518636 A JP2022518636 A JP 2022518636A JP 2020564063 A JP2020564063 A JP 2020564063A JP 2020564063 A JP2020564063 A JP 2020564063A JP 2022518636 A JP2022518636 A JP 2022518636A
Authority
JP
Japan
Prior art keywords
data
controller
row
rows
format conversion
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
JP2020564063A
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 JP2022518636A publication Critical patent/JP2022518636A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)
  • Programmable Controllers (AREA)

Abstract

本願はデータ処理方法、装置及び記憶媒体を提供し、方法はデータ処理システムに適用され、データ処理システムストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。方法は、コントローラが第1のデータを取得することと、コントローラが第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、コントローラが第2のデータをストレージデバイスに記憶し、及び/又は、コントローラはアクセラレータへ第2のデータを送信することと含む。【選択図】図1

Description

<関連出願の相互引用>
本願は、2019年12月27日に提出された発明名称が「データ処理方法、装置、設備和記憶媒体」であり、出願番号が201911379730.6である中国特許出願の優先権を主張し、当該出願の内容は全て本文に取り込まれる。
本願は、コンピュータ技術の分野に関し、特に、データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品に関する。
データ処理タスクでは、データに対してデータフォーマット変換処理を行うためのコントローラが使用されることが多い。
一つのコントローラは、1種類のデータフォーマット変換機能を持つため、複数種類のフォーマットのデータフォーマット変換処理を実行する場合、異なるコントローラを利用して複数種類のフォーマットのデータフォーマット変換処理を実行することが必要になる。このため、データ処理システムには、異なる複数のコントローラが設けられる。
本願は、データ処理の技術的解決策を提供する。
第1の態様において、本願の実施例は、データ処理システムに適用されるデータ処理方法を提供し、前記データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、前記データ処理方法は、前記コントローラが第1のデータを取得することと、前記コントローラが前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、前記コントローラが前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記コントローラが前記アクセラレータへ前記第2のデータを送信することとを含む。
第2の態様において、本願はデータ処理装置を提供し、前記装置はストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、前記コントローラは、第1のデータを取得し、前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する。
第3の態様において、本願はデータ処理設備を提供し、前記データ処理設備は、プロセッサと、ストレージデバイスと、コンピュータプログラムとを含み、前記コンピュータプログラムはストレージデバイスに記憶され、前記コンピュータプログラムはプロセッサによって実行されるとき、第1の態様に記載の前記データ処理方法を実現するように構成される。
第4の態様において、本願はプログラマブルデバイスコードを記憶する機械可読記憶媒体を提供し、前記プログラマブルデバイスコードがコントローラによって実行されて、前記プロセッサに実行されて、第1の態様に記載の前記データ処理方法を実現する。
第5の態様において、本願はデータ処理装置を提供し、前記装置はストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。前記コントローラは、第1のデータを取得するための取得ユニットと、前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得するための第1の処理ユニットと、前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信するための第2の処理ユニットとを含む。
第6の態様において、本願はデータ処理システムを提供し、前記システムはストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介してデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。前記コントローラは、第1のデータを取得し、前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する。
第7の態様において、本願は、コンピュータプログラム製品を提供し、前記プログラム製品は実行可能な指令を含み、前記機械実行可能な指令がコンピュータによって読み取られて実行されるとき、第1の態様に記載の前記データ処理方法が前記コンピュータで実現する。
本願は、データ処理方法、装置、設備、システム、記憶媒体及びコンピュータ製品を提供し、データ処理方法はデータ処理システムに適用され、データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。データ処理方法は、コントローラが第1のデータを取得することと、コントローラが第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、コントローラが第2のデータをストレージデバイスに記憶し、及び/又は、コントローラアクセラレータへ第2のデータを送信することを含む。本願の方法によれば、複数種類のフォーマットのデータ変換処理を実行でき、データ変換統合機能を持ち、データフォーマット変換効率の向上及びデータ処理の処理効率の向上に有効である。
添付された図面は、本明細書に組み込まれ、本明細書の一部として本開示に関する実施形態を示し、本明細書とともに本開示の原理を説明するためのものである。
本願の一実施例に係るデータ処理方法のフローを示す模式図である。 本願の他の実施例に係るデータ処理方法のフローを示す模式図である。 本実施例に係るフォーマット変換処理過程を示す模式図である。 図2Aのフォーマット変換処理過程におけるフォーマット変換の前後のデータを示す模式図である。 本実施例に係る他の種類のフォーマット変換処理過程を示す模式図である。 本実施例に係る更に他の種類のフォーマット変換処理過程を示す模式図である。 図2Dのフォーマット変換処理過程におけるフォーマット変換の前後のデータを示す模式図である。 本実施例に係る再び他の種類のフォーマット変換処理過程を示す模式図である。 図2Fのフォーマット変換処理過程におけるフォーマット変換の前後のデータを示す模式図である。 本願の実施例に係るデータ処理装置の構成を示す模式図である。 本願の更に他の一実施例に係るデータ処理装置の構成を示す模式図である。 本願の実施例に係るデータ処理設備の構成を示す模式図である。 本願の実施例に係るデータ処理装置のハードウェア構成を示す模式図である。
ここで、以下の実施例について、図面を参照しながら詳細に説明する。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同一の数字は、同一又は類似な要素を示す。下記の実施例に記述された実施形態が本発明に合致するあらゆる実施形態を代表するとは限らない。逆に、それらは、添付する特許請求の範囲に記載された本発明の幾つかの側面に合致する装置および方法の例に過ぎない。
以下では、本願に関する用語について説明する。
データフォーマット(data format)とは、ファイルまたは記録に格納されたデータのフォーマット形式を指す。
バスとは、コンピュータの各機能部間で情報を伝送する共通の通信幹線であり、導線からなる伝送線路であってもよく、コンピュータで伝送された情報の種類によって、コンピュータのバスは、データバス、アドレスバス及び制御バスに分けて、データ、データアドレス及び制御信号をそれぞれ伝送するためのものである。
バスビット幅とは、あるバスにおいて同時に送れるバイナリデータのビット数である。
固定小数点数とは、数の中に小数点の位置が固定されているものであり、通常、固定小数点の整数及び固定小数点の小数または固定小数点の分数を含む。小数点の位置が選ばれたら、演算中の全部の数は固定小数点の整数または固定小数点の小数に統一されるべき、小数点の位置はもはや演算中には考慮されない。
浮動小数点数とは、小数点の位置が固定ではなく、指数と仮数で表現されるものである。通常、仮数は小数であり、指数は整数であり、仮数及び指数は、いずれも符号付き数である。仮数における符号は数の正負を表し、指数の符号は小数点の実際位置を表す。
DMA(Direct Memory Access、ダイレクトメモリアクセス)とは、高速にデータ転送を行う
1605155780801_0
である。DMAによってデータアクセスが実行される際には、CPUの制御が不要になり、DMAコントローラによりDMAデータの伝送が制御され、システムがアプリケーションを実行する効率は向上できる。
OpenCV(Open Source Computer Vision Library、オープンソースのコンピュータビジョンライブラリ)とは、BSD(Berkly Software Distribution)ライセンス(オープンソース)に基づくクロスプラットフォームのコンピュータビジョンライブラリである。
AXI(Advanced eXtensible Interface)とは、高性能、高帯域幅、低遅延のバスプロトコルである。
AMBA(Advanced Microcontroller Bus Architecture、アドバンスト・マイクロコントローラ・バス・アーキテクチャ)とは、高性能な組み込み型マイクロコントローラの通信規格を定義するものである。
IPコア(Intellectual Property core、知的財産コア)は、IPコアのハードウェア記述言語によってプログラムを記述し、ソフトIPコア、ハードIPコア及びファームIPコアを含む。
バッファFIFO(First Input First Output、先入れ先出し)とは、先入れ先出し方式の
1605155780801_1
ポートのバッファであり、すなわち、最初に格納されたデータが最初に取出されるようにデータを処理する。
ARM(Advanced RISC Machines)プロセッサとは、低電力・低コストのRISC(Reduced Instruction Set Computing)マイクロプロセッサである。
本願の応用場面は、ストレージデバイス及びプログラマブルデバイスを含むデータ処理システムであってもよく、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置されている。データ処理システムをデータ処理に使用する際に、アクセラレータはデータに対し異なる方式の演算処理を実行してもよい。異なる方式の演算処理によって、アクセラレータに要求されるデータフォーマットが異なるため、このとき、コントローラによりデータに対し相応なデータフォーマット変換処理が実行される。例えば、オンチップバスプロトコルAMBAバスに基づく深層学習アルゴリズムでは、CPU(Central Processing Unit)で処理された、または、Caffe(Convolutional Architecture for Fast Feature Embedding)に基づいて処理されたコードに対し、さらに、アクセラレータにより演算処理が実行される前に、コントローラによりコードのデータフォーマット変換処理が実行される。また、例えば、深層学習アルゴリズムでは、アクセラレータによりIPコアから出力された特徴マップ(feature map)の演算処理が実行される前に、制御ユニットにより特徴マップのデータフォーマット変換処理が実行される。また、例えば、OpenCVで処理された画像がDDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory、DDRと略称)に記憶され、OpenCVで処理された画像に対しアクセラレータにより演算処理が実行される前に、DDRからAXI-MMバスを介してOpenCVで処理された画像が制御ユニットにより直接取得され、データフォーマット変換処理が実行される。
本願は、データ処理方法、装置、設備及び記憶媒体を提供する。
図1は、本願の実施例に係るデータ処理方法のフローを示す模式図である。本願の方法はデータ処理システムに適用され、データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、図1に示すように、本願の方法は、以下のステップを含む。
ステップ101:コントローラは第1のデータを取得する。
本実施例では、具体的に、データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、ストレージデバイスは、プログラマブルデバイスが処理すべき最初データ、及び/又は、プログラマブルデバイスが処理すべき中間データ、及び/又は、プログラマブルデバイスが処理した最終データを格納するために用いられる。プログラマブルデバイスはアクセラレータ及びコントローラを含み、アクセラレータはデータに対し異なる方式の演算処理を実行するために用いられ、例えば、アクセラレータにより、CPUまたはCaffeで処理されたコードの演算処理が実行され、また、アクセラレータにより、IPコアから出力された特徴マップの演算処理が実行され、また、アクセラレータにより、OpenCVで処理された画像の演算処理が実行される。アクセラレータによりデータに対し異なる方式の演算処理が実行される工程において、アクセラレータが要求するデータフォーマットは異なるため、データをアクセラレータに入力して演算処理を実行する前に、アクセラレータが要求するデータフォーマットに応じて、コントローラによりデータフォーマット変換処理が実行される。
コントローラは第1のデータを取得することは、コントローラはアクセラレータから第1のデータを取得し、及び/又は、コントローラはストレージデバイスから第1のデータを取得すること、を含む。例えば、アクセラレータがデータ演算処理を実行した後、コントローラは、データフォーマット変換処理を実行するために、アクセラレータで演算処理が実行されたデータを取得して第1のデータとしてもよい。また、例えば、コントローラは、データフォーマット変換処理を実行するために、ストレージデバイスからデータを直接取得して第1のデータとしてもよい。
ステップ102:コントローラは第1のデータに対しデータフォーマット変換を実行して、目標データフォーマットの第2のデータを取得する。
本実施例では、具体的に、アクセラレータにより異なる方式の演算処理が実行される際に、アクセラレータが要求するデータフォーマットは異なる。アクセラレータが要求するデータフォーマットは、コントローラでデータフォーマット変換処理が実行される目標データフォーマットである。コントローラは、アクセラレータが要求するデータフォーマットに応じて、取得した第1のデータに対しデータフォーマット変換処理を実行して、目標データフォーマットに適合する第2のデータを取得する。アクセラレータが要求するデータフォーマットは、異なるデータフォーマットであってもよく、コントローラは、複数種類のデータフォーマット変換機能を持つため、アクセラレータが要求する目標データフォーマットに応じて、当該目標データフォーマットに適合する第2のデータを取得できる。例として、目標データフォーマットには、データ行ビット幅とバスビット幅とが同じであること、データ行ビット幅とバスビット幅とが同じであるとともに、データの演算フォーマットは32ビットの浮動小数点数であること、及び同じデータ行は連続のRGB(Red Green Blue)フォーマットデータなどであることを含んでよい。
ステップ103:コントローラは第2のデータをストレージデバイスに記憶し、及び/又は、コントローラはアクセラレータへ第2のデータを送信する。
本実施例では、具体的に、データ処理システムはARMプロセッサをさらに含み、ARMプロセッサとストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送する。コントローラはデータフォーマット変換処理を実行して目標データフォーマットの第2のデータを取得した後、コントローラは第2のデータをストレージデバイスに記憶してもよく、ARMプロセッサはストレージデバイスから第2のデータを直接取得して相応の処理を実行するとともに、アクセラレータはストレージデバイスから第2のデータを直接取得して演算処理を実行してもよい。なお、アクセラレータは目標データフォーマットの第2のデータを受信した後、第2のデータに対し演算処理を直接実行するために、コントローラは目標データフォーマットの第2のデータをアクセラレータへ直接送信してもよい。通常、単一のコントローラは単一種類のデータフォーマット変換機能を持ち、データに対し複数形式のデータフォーマット変換処理を実行する場合、アクセラレータから出力されたデータ、または、ストレージデバイスから取得されたデータを、異なる各コントローラに切り替えてデータフォーマット変換処理を実行する必要がある。本願の実施例のコントローラは複数種類のデータフォーマット変換機能を持ち、複数の形式のデータフォーマット変換処理を実行され、異なる各目標データフォーマットを満す第2のデータを取得できる。このため、データ処理システムには複数のデータフォーマット変換機能を持つ単一のコントローラが配置されることで、複数機能整合化のデータ変換処理が実現できる。本願に係るデータ処理システムは、簡単な構成で優れたデータ処理機能が実現でき、データ処理システムにおけるデータ読み取り速度とデータフォーマットの多様化との要件を満たす。
本実施例に開示されたデータ処理方法は、データ処理システムに適用され、データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。データ処理方法は、コントローラは第1のデータを取得することと、コントローラは第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、コントローラは第2のデータをストレージデバイスに記憶し、及び/又は、コントローラはアクセラレータへ第2のデータを送信することと、を含む。異なる形式のデータフォーマット変換処理を実行する場合、データ処理システムには単一種類のデータフォーマット変換機能を持つ複数のコントローラを整合する必要があるが、本実施例にけるコントローラは複数種類のデータフォーマット変換機能を持つ、データ変換の統合機能を有し、異なる各コントローラに頻繁に切り替えてデータフォーマット変換することによって消費された資源を節約し、データフォーマット変換の効率を向上させ、データ処理の処理効率を高めるのに役立つ。
図2は、本願の他の実施例に係るデータ処理方法のフローを示す模式図である。本願の方法はデータ処理システムに適用され、データ処理システムは、ストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のフォーマット変換機能を有し、図2に示すように、前記方法は、以下のステップを含む。
ステップ201:コントローラは、アクセラレータ及び/又はストレージデバイスから第1のデータを取得する。
本実施例では、具体的に、このステップについては、図1のステップ101を参照し、繰り返し説明しない。
ステップ202:コントローラは第1のデータに対しデータフォーマット変換を実行して、目標データフォーマットの第2のデータを取得する。
態様の一例として、第1のデータには、複数の第1のデータ行が含まれる。ステップ202は、コントローラは複数の第1のデータ行における各第1のデータ行の空データを削除し、複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得することと、コントローラは複数の第2のデータ行に対し結合処理を実行して第1の目標データを取得するとともに、第1の目標データを第2のデータとして特定することと、を含む。第1の目標データには少なくとも一つの第3のデータ行が含まれ、各第3のデータ行の行ビット幅とバスのビット幅とが同じである。
コントローラにより第1のデータに対しフォーマット変換処理が実行される場合、目標データフォーマットの要求に応じて、第1のデータに対しデータフォーマット変換処理が実行される。データフォーマット変換処理は、第1のデータをコントローラの第1のバッファに入力して、第1のバッファでは第1のデータを構成する第1のデータ行ごとに空データの削除処理を実行し、第1のデータの複数の第1のデータ行を複数の連続な第2のデータ行に変換することを実現し、各第2のデータ行と各第1のデータ行とは対応関係を有することと、複数の第2のデータ行をコントローラの第2のバッファに入力し、第2のバッファでは複数の第2のデータ行の結合処理を実行して第1の目標データを取得し、第1の目標データを第2のデータとして特定することと、を含む。第2のデータにおける各第3のデータ行の行ビット幅とバスビット幅とは同じであり、各第3のデータ行の行ビット幅とバスビット幅とは同じであることは、各第3のデータ行におけるデータビット数とバスに並列転送できる最大ビット数とは同じという意味がある。
一例として、図2Aは、本実施例に係るフォーマット変換処理の過程を示す模式図であり、図2Bは、図2Aのフォーマット変換処理の過程におけるフォーマット変換の前後のデータを示す模式図である。図2Aに示すように、コントローラは、AXIバス231を介してアクセラレータの第1の計算ユニット211から第1のデータを取得し、第1の計算ユニット211は、アクセラレータにおけるデータに対し前の演算処理を実行する計算ユニットであり、図2Bに示すように、第1のデータにはL1、L2、L3、L4という4つの第1のデータ行が含まれ、4つの第1のデータ行のそれぞれには8つのデータが含まれ、各第1のデータ行における8つのデータには1つの空データが含まれ、各データのそれぞれは8 bitであり、 AXIバスは、64 bitであり、8つのデータを保持できる。目標フォーマットの要求に応じて、第1のデータに対し、以下のフォーマット転換処理を実行する。各第1のデータ行を第1のバッファ221 FIFO_0に入力して連続処理を実行する。具体的に、第1のデータにおける4つの第1のデータ行の空データに対し削除処理を実行して、4つの第2のデータ行を取得し、4つの第2のデータ行は4つの第1のデータ行にそれぞれ対応する。各第2のデータ行には、7つのデータが含まれる。続いて、4つの第2のデータ行に対し結合処理を実行し、即ち、4つの第2のデータ行を第2のバッファ222 FIFO_1に入力して揃え処理を実行して第1の目標データを取得し、第1の目標データを第2のデータとして特定する。次に、第2のデータをアクセラレータの第2の計算ユニット212に送信し、第2の計算ユニット212は、アクセラレータにおける第2のデータに対し後の演算処理を実行する計算ユニットである。第2のバッファ222 FIFO_1とAXIバス231とはビット幅が同じ(どちらも64ビット)であり、各データ行のビット幅とAXIバス231のビット幅とは同じである。最後のデータ行のデータ量が、AXIバスビット幅に対応するデータ量未満となる場合、ゼロ埋めによって最後のデータ行を埋めて、最後のデータ行の行ビット幅とAXIバスビット幅とは同じであることを実現して、第2のデータの全部のデータ行の行ビット幅とAXIバスビット幅とは同じであることも実現する。
態様の一例として、複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得した後、方法は、コントローラは各第2のデータ行のデータに対し演算フォーマット変換を実行して、当該第2のデータ行に対応する第4のデータ行を取得することと、コントローラは複数の第4のデータ行に対し結合処理を実行して、第2の目標データを取得し、第2の目標データを第2のデータとして特定することと、をさらに含む。第2の目標データには少なくとも一つの第5のデータ行が含まれ、各第5のデータ行の行ビット幅とバスのビット幅とは同じである。
第1のデータにおける第1のデータ行ごとに、空データの削除を実行して、各第1のデータ行に対応する各第2のデータ行を取得した後、各第2のデータ行をコントローラの第3のバッファに入力し、コントローラの第3のバッファでは、第2のデータ行の各データ、即ち空でないデータに対し、演算フォーマット変換処理を実行し、空でないデータを現在の演算フォーマットから所定の演算フォーマットに変換し、すなわち、各第2のデータ行に対し演算フォーマット変換処理を実行して、対応する一つまたは複数の第4のデータ行を取得する。例として、空でないデータを、8bitの固定小数点数から、64bitの浮動小数点数に変換してもよい。複数の第4のデータ行に対し結合処理を実行し、第2の目標データを取得し、第2の目標データを第2のデータとして特定する。第2の目標データには少なくとも一つの第5のデータ行が含まれ、各第5のデータ行の行ビット幅とバスのビット幅とは同じである。
例として、図2Cは、本実施例に係る他の種類のフォーマット変換処理の過程を示す模式図であり、図2Aに加えて、第1のデータの連続処理を実行した後、処理されたデータを第3のバッファ223 FIFO_2に入力して演算フォーマット変換処理を実行し、次に、演算フォーマット変換処理されたデータを第2のバッファ222 FIFO_1に入力して揃え処理を実行する。
コントローラにおける第1のバッファ、第2のバッファ、第3のバッファにおける各バッファ中のデータは、データフォーマット変換処理されたデータとして直接出力され、具体的に、アクセラレータまたはストレージデバイスに直接出力してもよい。コントローラの第1のバッファから出力されたデータは、第1のデータに対し空データ削除処理が実行されたデータであり、コントローラの第3のバッファから出力されたデータは、第1のデータに対し空データ削除処理が実行され、且つ、演算フォーマット変換処理が実行されたデータであり、コントローラの第2のバッファから出力されたデータは、第2の目標データであり、すなわち、第1のデータに対し空データ削除処理、演算フォーマット変換処理、揃え処理が実行されたデータであり。
態様の一例として、第1のデータにはq種類のデータが含まれ、コントローラは第1のデータに対しデータフォーマット変換を実行して、目標データフォーマットの第2のデータを取得する。これは、コントローラは第1のデータにおける同じ種類のデータを一つの第1のサブデータセットに組み合わせて、q種類にそれぞれ対応するq個第1のサブデータセットを取得し、q個第1のサブデータセットを第2のデータとして特定することを含む。各第1のサブデータセットには一つまたは複数の第1のサブデータ行が含まれ、各第1のサブデータ行の行ビット幅とバスのビット幅とは同じであり、qは1以上の正の整数である。
第1のデータにはp個第6のデータ行が含まれてもよく、そのうち、一つの第6のデータ行には、複数種類のデータが含まれるか、または、単一種類のデータが含まれる。第1のデータをコントローラの第4のバッファに入力して、一つの第6のデータ行には複数種類のデータ、例えば、q種類のデータがある場合、当該第6のデータ行における同じ種類のデータを一つの第2のサブデータ行に組み合わせて、一つの第6のデータ行を複数の第2のサブデータ行、例えば、q個第2のサブデータ行に変換する。一つの第6のデータ行には単一種類のデータが含まれる場合、第6のデータ行が対応する第2のサブデータ行と第6のデータ行とは同じである。各第6のデータ行に対応する一つまたは複数の第2のサブデータ行を取得した後、当該一つまたは複数の第2のサブデータ行のそれぞれをコントローラの第5のバッファに入力し、コントローラの第5のバッファで同じ種類の第2のサブデータ行に対し揃え処理を実行して、当該種類の第1のサブデータセットを取得し、第2のデータにはq種類の第1のサブデータセットが含まれ、第2のデータにおける各第1のサブデータセットには同じ種類のデータが含まれ、且つ、各第1のサブデータ行の行ビット幅とバスのビット幅とは同じである。
例として、図2Dは、本実施例に係る他の種類のフォーマット変換処理の過程を示す模式図であり、図2Eは、図2Dのフォーマット変換処理の過程中のフォーマット変換の前後のデータを示す模式図であり、図2D及び図2Eに示すように、AXIバス231を介してアクセラレータの第1の計算ユニット211から取得された第1のデータにはp個第6のデータ行が含まれ、一つの第6のデータ行にはR(Red)、G(Green)、B(Blue)という三種類のデータが含まれる。具体的に、図2Eに示すように、第1のデータには、合計で、7つのRデータ、7つのGデータ、7つのBデータが含まれ、各データのサイズは8bitであり、AXIバスは最大容量で64bitのデータを保持できるため、AXIバスは最大容量で8つのデータを保持でき、そのため、3つの第6のデータ行にはそれらのデータが載せられる。第1のデータをコントローラの第4のバッファ224 FIFO_3に入力し、当該第6のデータ行における同じ種類のデータを一つの第2のサブデータ行に組み合わせて、各第6のデータ行を3つの第2のサブデータ行に変換し、3つの第2のサブデータ行における各第2のサブデータ行にはRデータ、Gデータ、Bデータがそれぞれ含まれる。図2Eを例として、1番目の第6のデータ行から変換された3つの第2のサブデータ行には4つのRデータ、2つのGデータ、2つのBデータがそれぞれ含まれ、2番目の第6のデータ行から変換された3つの第2のサブデータ行には2つのRデータ、4つのGデータ、2つのBデータがそれぞれ含まれ、3番目の第6のデータ行から変換された3つの第2のサブデータ行には1つのRデータ、1つのGデータ、3つのBデータが含まれる。各第6のデータ行に対応するq個以下の第2のサブデータ行を取得した後、全部の第2のサブデータ行をコントローラの第5のバッファ225 FIFO_4に入力し、揃え処理を実行して、第2のデータを取得する。図2Eを例として、前に取得された9つの第2のサブデータ行をコントローラの第5のバッファ225 FIFO_4に入力して、同じ種類のデータに対し揃え処理を実行し、即ち、Rデータ、Gデータ、Bデータに対しそれぞれに揃え処理を実行して、3つの第1のサブデータセットを取得し第2のデータとして、当該3つの第1のサブデータセットはRデータ、Gデータ、Bデータにそれぞれ対応する。本例では、各第1のサブデータセットには一つの第1のサブデータ行が含まれる。一つの第1のサブデータ行におけるデータ量はAXIバスビット幅に対応するデータ量よりも少ない場合、ゼロ埋めによって当該サブデータ行を埋めてもよい。次に、第2のデータをアクセラレータの第2の計算ユニット212に送信し、第5のバッファ225 FIFO_4とAXIバス231とのビット幅は同じ(どちらも64ビット)であるため、第2のデータにおける各第1のサブデータ行の行ビット幅とAXIバスビット幅とは同じである。
好ましくは、各種類に対応する第1のサブデータセットを取得した後、第1のサブデータセットにおける各第1のサブデータ行に対し平均サブトラクション処理を実行する。例として、各第1のサブデータセットにおけるデータのそれぞれから一つの経験値が減算され、一つの第1のサブデータセットは単一種類のデータに対応する。各第1のサブデータ行に対し平均サブトラクション処理を実行することにより、各第1のサブデータ行の共通の内容を取り除く、各第1のサブデータ行の差異の内容を増強することができる。深層学習の画像前処理の過程では、平均サブトラクション処理によって見本画像の標準化を実現できる。
態様の一例として、第1のデータには複数の第1のデータ列が含まれ、複数の第1のデータ列は順次に横方向に並び、コントローラは第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得する。これは、複数の第1のデータ列の横方向の並び順に基づいて、複数の第1のデータ列における各第1のデータ列の縦方向結合を実行し、縦方向結合で得られたデータを第2のデータとして特定すること、を含む。
コントローラがアクセラレータまたはストレージデバイスから取得した第1のデータには、横方向並びの複数の第1のデータ列が含まれ、コントローラは取得した複数の第1のデータ列に対しフォーマット変換処理が実行する。これは、横方向並びの複数の第1のデータ列をコントローラの第6のバッファに入力し、コントローラの第6のバッファにおいて横方向並びの複数の第1のデータ列を縦方向結合の1つの第2のデータ列に変換して、第2のデータを取得すること、を含む。縦方向結合の1つの第2のデータ列の上から下への順次結合の順序と、横方向並びの複数の第1のデータ列の左から右への並び順序とは同じである。好ましくは、縦方向結合の1つの第2のデータ列を取得した後、続いて、縦方向結合の1つの第2のデータ列における各データ行に対し連続処理及び揃え処理を実行し、第2のデータを取得する。連続処理及び揃え処理の過程は、上記の処理の過程に参照し、ここでは、繰り返し説明しない。
例として、図2Fは、本実施例に係る再び他の種類のフォーマット変換処理の過程を示す模式図であり、図2Gは、図2Fのフォーマット変換処理の過程におけるフォーマット変換の前後のデータを示す模式図であり、図2F及び図2Gに示すように、取得されたn列第1のデータ列は横方向並びである。nは1よりも大きい整数であり、横方向並びの順序は第1のデータ列の番号順序であってもよい。横方向並びのn列第1のデータ列をコントローラの第6のバッファ226に入力して、データフォーマット変換処理を実行する。図2Gに示すように、横方向並びのn列第1のデータ列を縦方向結合の1つの第2のデータ列に変換し、縦方向の結合で得られた第2のデータ列の上から下へ順次結合の順序と、データフォーマット変換処理の前の横方向並びのn列第1のデータ列の左から右への並び順序とは同じである。n列第1のデータ列を横方向並びする方式は、n列第1のデータ列における同じ行順番を持つデータ行を横方向並びすることを含み、第2のデータ列を縦方向結合する方式は、i番目の第1のデータ列における各データ行を順次に並べることを含み、次に、再び、i+1番目の第1のデータ列における各データ行を結合し、1≦i≦n-1である。他のステップは、前の図2A及び図2Cの説明を参照し、ここでは繰り返し説明しない。なお、本願では、nの数を制限しない。第6のバッファ226に入力されるものがバスビット幅のものであるが、第6のバッファ226で行の結合の前処理を実行して、第6のバッファ226の内部処理のビット幅がバスビット幅よりも大きく、例えば、バスビット幅の2倍、4倍などになることにしてもよい。
前記一例では、バッファとしてFIFOを使用するが、他の種類のストレージデバイスによって、例えば、FPGA(Field Programmable Gate Array)のblock RAMによって、類似の機能が実現されるのは、当業者によって明らかであろう。本願はこれを制限しない。
コントローラのフォーマット変換の性能は限度があるし、または、データ処理の役目が相違のため、データ変換処理を実行しようとするデータも相違し、本実施例の方法は、コントローラは複数チャンネルのデータを取得し、複数チャンネルのデータから少なくとも一部のデータを第1のデータとして選択することをさらに含む。具体的に、取得したMチャンネルの第1のデータからNチャンネルの第1のデータを取得してフォーマット変換処理を実行する。M、Nは、1以上の正の整数であり、且つ、M≧N、すなわち、取得した複数のチャンネルの第1のデータから一部の第1のデータを選択してフォーマット変換処理を実行し、残り部分の第1のデータは一時バッファ処理によってフォーマット変換を待つ。
好ましくは、大量なデータに対しフォーマット変換処理を実行する場合、データフォーマット変換処理の処理効率をさらに向上させるために、本実施例の方法ではping-pongバッファ方式を採用し、コントローラの第1のユニットでデータフォーマット変換処理を実行するとともに、第2のユニットでデータバッファを実行してデータフォーマット変換処理を準備する。第2のユニットでバッファリングされたデータ量はデータフォーマット変換処理の要求データ量を満たした後、第1のユニットにおけるデータフォーマット変換処理が完了するとき、第2のユニットによりデータフォーマット変換処理が実行され、第1のユニットによりデータバッファ処理が実行される。第1のユニットと第2のユニットの区分は、フォーマット変換処理しようとするデータ量の大きさ及びデータフォーマット変換処理に要求するデータ量の大きさに応じて実行される。このように設計すれば、データフォーマット変換処理の効率を向上させるとともに、フォーマット変換ユニットの性能に対する要求を効果的に削減できる。
ステップ203:コントローラは第2のデータをストレージデバイスに記憶し、及び/又は、コントローラはアクセラレータへ第2のデータを送信する。
本実施例では、具体的に、コントローラは目標フォーマットの第2のデータを取得した後、第2のデータをアクセラレータに送信して、後の演算処理を実行し、及び/又は、第2のデータをストレージデバイスに記憶してバッファリングするし、または、他のプロセッサはストレージデバイスから第2のデータを取得して他の処理を実行する。例として、コントローラはアクセラレータから出力された特徴マップを取得し、特徴マップに対しフォーマット変換処理を実行した後、フォーマット転換処理された第2のデータをストレージデバイスに記憶して、他のプロセッサはストレージデバイスから第2のデータを取得して後のデータ処理を実行する。
好ましくは、本願の実施例におけるコントローラはDMAコントローラを含み、ストレージデバイスはDDR SDRAMを含み、プログラマブルデバイスはFPGAを含み、アクセラレータは畳み込みニューラルネットワーク(Convolutional Neural Networks、CNN)アクセラレータを含む。
本実施例に係るデータフォーマット変換処理方法は、無人運転、セキュリティ監視、動画知能分析など複数種類のデータフォーマットの要求に応じるデータに対し異なるデータ処理を実行する様々な分野に適用している。
本実施例方法はデータ処理システムに適用され、データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、そのうち、方法は、コントローラはアクセラレータ及び/又はストレージデバイスから第1のデータを取得することと、コントローラは第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、コントローラは第2のデータをストレージデバイスに記憶し、及び/又は、コントローラはアクセラレータへ第2のデータを送信することと、含む。本実施例方法によれば、複数の方式でデータフォーマット変換処理が実行し、データ変換統合機能があり、データフォーマット処理の時間消費を効果的に削減し、データフォーマット変換処理の効率を向上させる。単一の共通バスを利用して複数種類のデータフォーマット変換処理の切り替えを実現し、データ変換処理の資源消費の低減に役立つ。各種のデータフォーマット変換処理に応じて各コントローラを用意することが不要であり、同じデータフォーマット変換処理が異なるコントローラを繰り返し占有することを効果的に回避し、単一のコントローラにより少なくとも1つのチャンネルの第1のデータに対し複数種類のフォーマットのデータ変換処理が実行され、データ変換処理効率が高い。データ処理における複数種類のデータフォーマットに応じる要求に満たすとともに、データ処理の処理効率を向上させ、データ処理システムの処理性能を向上させる。
図3は、本願の実施例に係るデータ処理装置の構成を示す模式図であり、図3に示すように、当該装置はストレージデバイス1及びプログラマブルデバイス2を含み、ストレージデバイス1とプログラマブルデバイス2とはバス3を介して互いにデータを伝送し、プログラマブルデバイス2にはコントローラ21及びアクセラレータ22が配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持つ。
コントローラ21は、第1のデータを取得するための取得ユニット211と、第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得するための第1の処理ユニット212と、第2のデータをストレージデバイスに記憶し、及び/又は、アクセラレータへ第2のデータを送信するための第2の処理ユニット213と、を備える。
本実施例に開示されたデータ処理装置はストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、コントローラは、第1のデータを取得し、第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、第2のデータをストレージデバイスに記憶し、及び/又は、アクセラレータへ第2のデータを送信する。異なる形式のデータフォーマット変換処理時を実行する場合、データ処理システムには、単一種類のデータフォーマット変換機能のみを持つ複数のコントローラが整合される必要がある。しかしながら、本実施例のコントローラは複数種類のデータフォーマット変換機能を持ち、データ変換の統合機能も持ち、データフォーマット変換処理をするために各コントローラの切り替えが不要であるため、データフォーマット変換効率が高く、データ処理の処理効率を向上させる。
図4は、本願の他の実施例に係るデータ処理装置の構成を示す模式図であり、図3に示す実施例に加え、図4に示すように、取得ユニット211は、アクセラレータから第1のデータを取得し、及び/又は、コントローラはストレージデバイスから第1のデータを取得する。
一例として、前記第1のデータには、複数の第1のデータ行が含まれる。第1の処理ユニット212は、前記複数の第1のデータ行における各第1のデータ行の空データを削除し、前記複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得する第1の処理サブユニット2121と、前記複数の第2のデータ行に対し結合処理を実行し、取得した第1の目標データを前記第2のデータとして特定する第2の処理サブユニット2122と、を含む。前記第1の目標データには少なくとも一つの第3のデータ行が含まれ、各前記第3のデータ行の行ビット幅と前記バスのビット幅とは同じである。
一例として、第1の処理ユニット212は、前記複数の第1のデータ行にそれぞれ対応する前記複数の第2のデータ行を取得した後、前記複数の第2のデータ行における各第2のデータ行におけるデータに対し演算フォーマット変換を実行して、当該第2のデータ行に対応する第4のデータ行を取得する第3の処理サブユニット2123と、複数の前記第4のデータ行に対し結合処理を実行して、取得した第2の目標データを前記第2のデータとして特定する第4の処理サブユニット2124と、をさらに含む。前記第2の目標データには少なくとも一つの第5のデータ行が含まれ、各前記第5のデータ行の行ビット幅と前記バスのビット幅とは同じである。
一例として、第1のデータにはq種類のデータが含まれ、第1の処理ユニット212は、前記第1のデータにおける同じ種類のデータを一つの第1のサブデータセットに組み合わせて、q種類にそれぞれ対応するq個第1のサブデータセットを取得し、前記q個第1のサブデータセットを前記第2のデータとして特定するための第5の処理サブユニット2125をさらに含む。各第1のサブデータセットには一つまたは複数の第1のサブデータ行が含まれ、各前記第1のサブデータ行の行ビット幅と前記バスのビット幅とは同じであり、qは1以上の正の整数である。
一例として、第1のデータには複数の第1のデータ列が含まれ、前記複数の第1のデータ列は順次に横方向に並び、第1の処理ユニット212は、前記複数の第1のデータ列の横方向の並び順に基づいて、前記複数の第1のデータ列における各第1のデータ列に対し縦方向結合を実行し、縦方向の結合で得られたデータを前記第2のデータとして特定するための第6の処理サブユニット2126をさらに含む。
一例として、取得ユニット211は、さらに、複数チャンネルのデータを取得し、複数チャンネルのデータから少なくとも一部のデータを第1のデータとして選択する。
一例として、コントローラはDMAコントローラを含み、ストレージデバイスはDDRを含み、プログラマブルデバイスはFPGAを含み、アクセラレータはCNNアクセラレータを含む。
本実施例開示のデータ処理装置はストレージデバイス及びプログラマブルデバイスを含み、ストレージデバイスとプログラマブルデバイスとはバスを介して互いにデータを伝送し、プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、コントローラは、アクセラレータ及び/又はストレージデバイスから第1のデータを取得し、第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、第2のデータをストレージデバイスに記憶し、及び/又は、アクセラレータへ第2のデータを送信する。本実施例方法によれば、複数の方式でデータフォーマット変換処理が実行し、データ変換統合機能があり、データフォーマット処理の時間消費を効果的に削減し、データフォーマット変換処理の効率を向上させる。単一の共通バスで複数種類のデータフォーマット変換処理の切り替えを実現し、データ変換処理の資源消費の低減に役立つ。各種のデータフォーマット変換処理に応じて各コントローラを用意することが不要であり、同じデータフォーマット変換処理のため各コントローラが繰り返し使用されることを効果的に回避し、単一のコントローラにより少なくとも1つのチャンネルの第1のデータに対し複数種類のフォーマットのデータ変換処理を実行し、データ変換処理効率が高い。データ処理における複数種類のデータフォーマットに応じる要求に満たすとともに、データ処理の処理効率を向上させ、データ処理システムの処理性能を向上させる。
図5は、本願の実施例に係るデータ処理設備の構成を示す模式図であり、図5に示すように、本願の実施例は、図1及び図2に示す実施例におけるデータ処理方法の動作或ステップを実行するためのデータ処理設備を提供し、具体的に、プロセッサ501と、ストレージデバイス502と、通信インタフェース503とを含む。
ストレージデバイス502は、プログラムを格納する。プロセッサ501は、ストレージデバイス502に格納されているプログラムを実行して、図1~図4に示す実施例におけるデータ処理設備の操作を実現する。ここでは、繰り返し説明しない。
好ましくは、データ処理設備は、バス504をさらに含む。プロセッサ501とストレージデバイス502と通信インタフェース503とは、バス504を介して互いに接続されてもよく、バス504は、PCI(Peripheral Component Interconnect)バス、または、EISA(Extended Industry Standard Architecture)バスなどであってもよい。上記のバス504は、アドレスバス、データバス、制御バスなどに分けてもよい。表現を簡単にするために、図5において、1つの太線で示されているが、1つのバスまたは単一種類のバスしかないという意味ではない。
本願の実施例では、上記の各実施例は互いに参照し、同一または或実質同一のステップおよび用語について繰り返し説明しない。
また、上記の各部分または全体は、集積回路の形で当該軌道予測設備のあるチップに埋め込むことによって実現してもよい。また、それらは、個別に実現してもよく、統合して実現してもよい。即ち、上記の各部分は、上記の方法を実現する一つまたは複数の集積回路として、例えば、一つまたは複数のASIC(Application Specific Integrated Circuit)や、一つまたは複数のDSP(Digital Singnal Processor)や、一つのまたは複数のFPGAのように配置されてもよい。
図6は、本願の実施例に係るデータ処理装置のハードウェアの構成を示す模式図であり、図6に示すように、本願の実施例は、ストレージデバイス610及びプログラマブルデバイス620を含むデータ処理装置600を提供する。ストレージデバイス610とプログラマブルデバイス620とはバス630を介して互いにデータを伝送し、プログラマブルデバイス620にはコントローラ622及びアクセラレータ621が配置され、コントローラ622は少なくとも二種類のデータフォーマット変換機能を持つ。コントローラ622は、第1のデータを取得し、前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する。
一例として、コントローラは、アクセラレータから第1のデータを取得し、及び/又は、コントローラは、ストレージデバイスから第1のデータを取得する。
一例として、前記第1のデータには、複数の第1のデータ行が含まれる。コントローラは、前記複数の第1のデータ行における各第1のデータ行の空データを削除し、前記複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得する第1のサブコントローラと、前記複数の第2のデータ行に対し結合処理を実行し、取得した第1の目標データを前記第2のデータとして特定する第2のサブコントローラと、を含む。前記第1の目標データには少なくとも一つの第3のデータ行が含まれ、各前記第3のデータ行の行ビット幅と前記バスのビット幅とは同じである。
一例として、コントローラは、前記複数の第1のデータ行にそれぞれ対応する前記複数の第2のデータ行取得した後、前記複数の第2のデータ行における各第2のデータ行におけるデータに対し演算フォーマット変換を実行し、当該第2のデータ行に対応する第4のデータ行を取得する第3のサブコントローラと、複数の前記第4のデータ行に対し結合処理を実行し、取得した第2の目標データを前記第2のデータとして特定する第4のサブコントローラと、を含む。前記第2の目標データは少なくとも一つの第5のデータ行が含まれ、各前記第5のデータ行の行ビット幅と前記バスのビット幅とは同じである。
一例として、第1のデータにはq種類のデータが含まれ、コントローラは、前記第1のデータにおける同じ種類のデータを一つの第1のサブデータセットに組み合わせ、q種類にそれぞれ対応するq個第1のサブデータセットを取得し、前記q個第1のサブデータセットを前記第2のデータとして特定する第5のサブコントローラを含む。各第1のサブデータセットには一つまたは複数の第1のサブデータ行が含まれ、各前記第1のサブデータ行の行ビット幅と前記バスのビット幅とは同じであり、qは1以上の正の整数である。
一例として、第1のデータには複数の第1のデータ列が含まれ、前記複数の第1のデータ列は順次に横方向に並び、コントローラは、前記複数の第1のデータ列の横方向の並び順に基づいて前記複数の第1のデータ列における各第1のデータ列に対し縦方向結合を実行し、縦方向の結合で得られたデータを前記第2のデータとして特定する第6のサブコントローラを含む。
一例として、コントローラは、さらに、複数チャンネルのデータを取得し、第1のデータとして複数チャンネルのデータから少なくとも一部のデータを選択する。
一例として、コントローラはDMAコントローラを含み、ストレージデバイスはDDRを含み、プログラマブルデバイスはFPGAを含み、アクセラレータはCNNアクセラレータを含む。コントローラや、アクセラレータは、プログラマブルデバイスで電気回路デザイン専用記述言語、例えば、Verilog、VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)などを利用して、プログラマブルデバイスに内蔵されたトリガー、ストレージデバイス、ゲート回路と組み合わせて実現される。コントローラにおける各サブコントローラの実現方法は、コントローラの実現方法と同様である。
本願は、データ処理システムをさらに提供する。当該データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、前記コントローラは、第1のデータを取得し、前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する。
本願は、プログラムを記憶するコンピュータ可読記憶媒体をさらに提供する。プロセッサは、当該プログラムを実行して、上記の処理方法を実現する。当該コンピュータ可読記憶媒体は、不揮発性コンピュータ可読記憶媒体であってよい。
上記の実施例では、全体的または部分的に、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せによって実現される。ソフトウェアによって実現される場合、全体的または或部分的に、プログラム製品の形で実現される。プログラム製品は、一つまたは複数のコンピュータ指令を含む。コンピュータは、プログラム指令をロードして実行すると、本願の実施例の工程または機能が、全体的または部分的に実現される。コンピュータは、汎用コンピュータ、専用コンピュータ、ネットワーク、または他のプログラム可能なデバイスであってもよい。コンピュータ指令は、コンピュータ可読記憶媒体に記憶されてもよく、または、コンピュータ可読記憶媒体から他のコンピュータ可読記憶媒体に伝送されてもよく、例えば、コンピュータ指令は、Webサイトや、コンピュータや、軌道予測設備や、データセンターから、回線(例えば、同軸ケーブル、光ファイバー、DSL(digital subscriber line))または無線(例えば、赤外線、ワイヤレス、マイクロウエーブなど)を介して、他のWebサイトへ伝送されてもよい。コンピュータ可読記憶媒体は、コンピュータがアクセスできるいずれかの記憶媒体であってもよく、または、一つまたは複数の記憶媒体を含有している軌道予測設備、データセンターなどデータ格納設備であってもよい。記憶媒体は、磁気媒体(例えば、フレキシブルディスク、ハードディスク、磁気テープ)や、光学媒体(例えば、DVD)や、半導体媒体(例えば、SSD(solid state disk))などであってもよい。
上記の一つまたは複数の例では、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せによって、本願の実施例に係る機能が実現されるのは、当業者によって明らかであろう。ソフトウェアによって実現される場合、それらの機能がコンピュータ可読記憶媒体に記憶されてもよく、または、コンピュータ可読記憶媒体内の一つまたは複数の指令またはコードとして伝送されてもよい。コンピュータ可読記憶媒体は、コンピュータ記憶媒体及び通信媒体を含み、そのうち、通信媒体は、一つの場所から他の場所へプログラムを転送するいずれかの媒体を含む。記憶媒体は、汎用または専用コンピュータによって読み取り可能な媒体であってもよい。
明細書に記載された発明を理解・適用した上で、本開示の他の実施案も、当業者によって明らかであろう。本発明には、本開示のあらゆる変形、適用または適応的な変更も含まれ、それらの変形、適用または適応的な変更は、本開示の一般原則に従って、当該分野における従来技術に基づく当業者の設計事項として把握され得る。上記の明細書及び実施例は、いずれも本発明の一例であり、本発明の趣旨の範囲で適宜変形、修正、追加を行っても本願特許請求の範囲に包含されることは当然である。
本開示は、図に示す構成に限るものではなく、本発明の趣旨の範囲で適宜修正、変更を行っても本願特許請求の範囲に包含されることは当然である。本開示の範囲は、添付の請求の範囲によって制限される。

Claims (23)

  1. データ処理方法であって、
    前記方法はデータ処理システムに適用され、前記データ処理システムはストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、
    前記方法は、
    前記コントローラが第1のデータを取得することと、
    前記コントローラが前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得することと、
    前記コントローラが前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記コントローラが前記アクセラレータへ前記第2のデータを送信することと、を含む、
    ことを特徴とするデータ処理方法。
  2. 前記コントローラが前記第1のデータを取得することは、
    前記コントローラが前記アクセラレータから前記第1のデータを取得し、及び/又は、前記コントローラが前記ストレージデバイスから前記第1のデータを取得することを含むこと、
    を特徴とする請求項1に記載の方法。
  3. 前記第1のデータには複数の第1のデータ行が含まれ、
    前記コントローラが前記第1のデータに対しデータフォーマット変換を実行して前記目標データフォーマットの前記第2のデータ取得することは、
    前記コントローラが前記複数の第1のデータ行における各第1のデータ行の空データを削除し、前記複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得することと、
    前記コントローラが前記複数の第2のデータ行に対し結合処理を実行し、取得した第1の目標データを前記第2のデータとして特定することと、を含み、
    前記第1の目標データには少なくとも一つの第3のデータ行が含まれ、各前記第3のデータ行の行ビット幅と前記バスのビット幅とは同じであること、
    を特徴とする請求項1または2に記載の方法。
  4. 前記複数の第1のデータ行にそれぞれ対応する前記複数の第2のデータ行を取得した後、前記データ処理方法は、
    前記コントローラが前記複数の第2のデータ行における各第2のデータ行におけるデータに対し演算フォーマット変換を実行して、当該第2のデータ行に対応する第4のデータ行を取得することと、
    前記コントローラが複数の前記第4のデータ行に対し結合処理を実行し、取得した第2の目標データを前記第2のデータとして特定することと、を含み、
    前記第2の目標データには少なくとも一つの第5のデータ行が含まれ、各前記第5のデータ行の行ビット幅と前記バスのビット幅とは同じであること、
    を特徴とする請求項3に記載の方法。
  5. 前記第1のデータにはq種類のデータが含まれ、
    前記コントローラが前記第1のデータに対しデータフォーマット変換を実行して、前記目標データフォーマットの前記第2のデータを取得することは、
    前記コントローラが前記第1のデータにおける同じ種類のデータを一つの第1のサブデータセットに組み合わせて、q種類にそれぞれ対応するq個第1のサブデータセットを取得することと、
    前記q個第1のサブデータセットを前記第2のデータとして特定することと、を含み、
    各第1のサブデータセットには一つまたは複数の第1のサブデータ行が含まれ、各前記第1のサブデータ行の行ビット幅と前記バスのビット幅とは同じであり、qは1以上の正の整数である、
    ことを特徴とする請求項1~4のいずれかに記載の方法。
  6. 前記第1のデータには複数の第1のデータ列が含まれ、前記複数の第1のデータ列は順次に横方向に並び、
    前記コントローラが前記第1のデータに対しデータフォーマット変換を実行して、前記目標データフォーマットの前記第2のデータを取得することは、
    前記複数の第1のデータ列の横方向の並び順に基づいて、前記複数の第1のデータ列における各第1のデータ列に対し縦方向結合を実行して、縦方向の結合で得られたデータを前記第2のデータとして特定することを含む、
    ことを特徴とする請求項1~5のいずれかに記載の方法。
  7. 前記コントローラが前記第1のデータを取得することは、
    前記コントローラが複数チャンネルのデータを取得することと、
    前記複数チャンネルのデータから少なくとも一部のデータを前記第1のデータとして選択することと、を含む、
    ことを特徴とする請求項1~6のいずれかに記載の方法。
  8. 前記コントローラが、ダイレクトメモリアクセス(DMA)コントローラを含む、
    ことを特徴とする請求項1~7のいずれかに記載の方法。
  9. 前記ストレージデバイスは、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(DDR SDRAM)を含み、
    前記プログラマブルデバイスは、フィールドプログラマブルゲートアレイ(FPGA)を含み、
    前記アクセラレータは、畳み込みニューラルネットワーク(CNN)アクセラレータを含む、
    ことを特徴とする請求項1~8のいずれかに記載の方法。
  10. データ処理装置であって、
    前記データ処理装置はストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、
    前記コントローラは、
    第1のデータを取得し、
    前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、
    前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する、
    ことを特徴とするデータ処理装置。
  11. 前記コントローラは、前記アクセラレータから前記第1のデータを取得し、及び/又は、前記コントローラは前記ストレージデバイスから前記第1のデータを取得する、
    ことを特徴とする請求項10に記載の装置。
  12. 前記第1のデータには複数の第1のデータ行が含まれ、
    前記コントローラは、
    前記複数の第1のデータ行における各第1のデータ行の空データを削除し、前記複数の第1のデータ行にそれぞれ対応する複数の第2のデータ行を取得するための第1のサブコントローラと、
    前記複数の第2のデータ行に対し結合処理を実行し、取得した第1の目標データを前記第2のデータとして特定するための第2のサブコントローラと、を含み、
    前記第1の目標データには少なくとも一つの第3のデータ行が含まれ、各前記第3のデータ行の行ビット幅と前記バスのビット幅とは同じである、
    ことを特徴とする請求項10または11に記載の装置。
  13. 前記コントローラは、さらに、
    前記複数の第1のデータ行にそれぞれ対応する前記複数の第2のデータ行を取得した後、前記複数の第2のデータ行における各第2のデータ行におけるデータに対し演算フォーマット変換を実行して、当該第2のデータ行に対応する第4のデータ行を取得するための第3のサブコントローラと、
    複数の前記第4のデータ行に対し結合処理を実行し、取得した第2の目標データを前記第2のデータとして特定するための第4のサブコントローラと、を含み、
    前記第2の目標データには少なくとも一つの第5のデータ行が含まれ、各前記第5のデータ行の行ビット幅と前記バスのビット幅とは同じである、
    ことを特徴とする請求項12に記載の装置。
  14. 前記第1のデータにはq種類のデータが含まれ、
    前記コントローラは、さらに、第5のサブコントローラを含み、
    前記第5のサブコントローラは、
    前記第1のデータにおける同じ種類のデータを一つの第1のサブデータセットに組み合わせて、q種類にそれぞれ対応するq個第1のサブデータセットを取得し、
    前記q個第1のサブデータセットを前記第2のデータとして特定することと、を含み、
    各第1のサブデータセットには一つまたは複数の第1のサブデータ行が含まれ、各前記第1のサブデータ行の行ビット幅と前記バスのビット幅とは同じであり、qは1以上の正の整数である、
    ことを特徴とする請求項10~13のいずれかに記載の装置。
  15. 前記第1のデータには複数の第1のデータ列が含まれ、前記複数の第1のデータ列は順次に横方向に並び、
    前記コントローラは、さらに、第6のサブコントローラを含み、
    前記第6のサブコントローラは、前記複数の第1のデータ列の横方向の並び順に基づいて、前記複数の第1のデータ列における各第1のデータ列縦方向結合を実行して、縦方向の結合で得られたデータを前記第2のデータを前記第2のデータとして特定する、
    ことを特徴とする請求項10~14のいずれかに記載の装置。
  16. 前記コントローラは、
    複数チャンネルのデータを取得し、
    前記複数チャンネルのデータから少なくとも一部のデータを前記第1のデータとして選択する、
    ことを特徴とする請求項10~15のいずれかに記載の装置。
  17. 前記コントローラはDMAコントローラを含む、
    ことを特徴とする請求項10~16のいずれかに記載の装置。
  18. 前記ストレージデバイスはDDR SDRAMを含み、
    前記プログラマブルデバイスはFPGAを含み、
    前記アクセラレータはCNNアクセラレータを含む、
    ことを特徴とする請求項10~17のいずれかに記載の装置。
  19. データ処理設備であって、
    前記データ処理設備は、プロセッサと、ストレージデバイスと、コンピュータプログラムとを含み、
    前記コンピュータプログラムはストレージデバイスに記憶され、前記コンピュータプログラムはプロセッサによって実行されるとき、請求項1~9のいずれかに記載の方法が実現されるように構成される、
    ことを特徴とするデータ処理設備。
  20. 機械可読記憶媒体であって、
    前記機械可読記憶媒体は、プログラマブルデバイスコードを記憶し、
    前記プログラマブルデバイスコードがコントローラによって実行されて、請求項1~9のいずれかに記載されたデータ処理方法が実現される、
    ことを特徴とする機械可読記憶媒体。
  21. データ処理装置であって、
    前記データ処理装置はストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、
    前記コントローラは、
    第1のデータを取得しするための取得ユニットと、
    前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得するための第1の処理ユニットと、
    前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信するための第2の処理ユニットと、を含む、
    ことを特徴とするデータ処理装置。
  22. データ処理システムであって、
    前記処理システムはストレージデバイス及びプログラマブルデバイスを含み、前記ストレージデバイスと前記プログラマブルデバイスとはバスを介して互いにデータを伝送し、前記プログラマブルデバイスにはコントローラ及びアクセラレータが配置され、前記コントローラは少なくとも二種類のデータフォーマット変換機能を持ち、
    前記コントローラは、
    第1のデータを取得し、
    前記第1のデータに対しデータフォーマット変換を実行して目標データフォーマットの第2のデータを取得し、
    前記第2のデータを前記ストレージデバイスに記憶し、及び/又は、前記アクセラレータへ前記第2のデータを送信する、
    ことを特徴とするデータ処理システム。
  23. 機械実行可能な指令が含まれるコンピュータプログラム製品であって、
    前記機械実行可能な指令がコンピュータによって読み取られて実行されるとき、前記コンピュータが請求項1~9のいずれかに記載の方法を実現させる、
    ことを特徴とするコンピュータプログラム製品。
JP2020564063A 2019-12-27 2020-06-24 データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品 Pending JP2022518636A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201911379730.6 2019-12-27
CN201911379730.6A CN111176725B (zh) 2019-12-27 2019-12-27 数据处理方法、装置、设备和存储介质
PCT/CN2020/098173 WO2021128776A1 (zh) 2019-12-27 2020-06-24 数据处理方法、装置、设备、系统、存储介质和程序产品

Publications (1)

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

Family

ID=70658118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020564063A Pending JP2022518636A (ja) 2019-12-27 2020-06-24 データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品

Country Status (5)

Country Link
US (1) US11314457B2 (ja)
JP (1) JP2022518636A (ja)
CN (1) CN111176725B (ja)
SG (1) SG11202011214XA (ja)
WO (1) WO2021128776A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176725B (zh) 2019-12-27 2022-05-06 北京市商汤科技开发有限公司 数据处理方法、装置、设备和存储介质
US11175957B1 (en) * 2020-09-22 2021-11-16 International Business Machines Corporation Hardware accelerator for executing a computation task
WO2022061931A1 (zh) * 2020-09-28 2022-03-31 华为技术有限公司 一种数据格式处理方法和装置
CN115794913B (zh) * 2020-12-30 2024-03-15 华为技术有限公司 一种人工智能系统中数据处理方法及装置
US11734075B2 (en) * 2021-11-24 2023-08-22 International Business Machines Corporation Reducing data format conversion of an accelerator

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017508201A (ja) * 2014-01-31 2017-03-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated ベクトルプロセッサにおけるロード/ストア演算中のフォーマット変換
US20180373760A1 (en) * 2017-06-23 2018-12-27 Xilinx, Inc. Parallel compute offload to database accelerator
CN110515589A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US8407245B2 (en) * 2010-11-24 2013-03-26 Microsoft Corporation Efficient string pattern matching for large pattern sets
CN103226532A (zh) * 2013-03-28 2013-07-31 北京圆通慧达管理软件开发有限公司 数据处理系统和方法
US9952937B2 (en) * 2013-10-28 2018-04-24 Openet Telecom Ltd. Method and system for reducing journaling log activity in databases
CN105573922B (zh) * 2014-11-07 2020-07-10 中兴通讯股份有限公司 一种实现数据格式转换的方法和装置
US10614354B2 (en) * 2015-10-07 2020-04-07 Altera Corporation Method and apparatus for implementing layers on a convolutional neural network accelerator
CN106294234B (zh) * 2016-08-01 2018-09-21 深圳云天励飞技术有限公司 一种数据传输方法及装置
CN109032704B (zh) * 2017-06-12 2022-08-09 深圳市中兴微电子技术有限公司 一种数据处理的方法和设备
CN107895191B (zh) * 2017-10-30 2022-02-22 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN108363737B (zh) * 2018-01-19 2022-04-12 深圳市宏电技术股份有限公司 一种数据格式转换方法、装置及设备
CN109274697B (zh) * 2018-11-22 2021-11-12 湖南有马信息技术有限公司 数据帧转义方法、系统及相关装置
CN110309088B (zh) * 2019-06-19 2021-06-08 北京百度网讯科技有限公司 Zynq fpga芯片及其数据处理方法、存储介质
CN110457256A (zh) * 2019-08-01 2019-11-15 大众问问(北京)信息科技有限公司 数据存储方法、装置、计算机设备及存储介质
CN111176725B (zh) * 2019-12-27 2022-05-06 北京市商汤科技开发有限公司 数据处理方法、装置、设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017508201A (ja) * 2014-01-31 2017-03-23 クゥアルコム・インコーポレイテッドQualcomm Incorporated ベクトルプロセッサにおけるロード/ストア演算中のフォーマット変換
US20180373760A1 (en) * 2017-06-23 2018-12-27 Xilinx, Inc. Parallel compute offload to database accelerator
CN110515589A (zh) * 2019-08-30 2019-11-29 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备

Also Published As

Publication number Publication date
CN111176725B (zh) 2022-05-06
US11314457B2 (en) 2022-04-26
WO2021128776A1 (zh) 2021-07-01
SG11202011214XA (en) 2021-07-29
CN111176725A (zh) 2020-05-19
US20210200474A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
JP2022518636A (ja) データ処理方法、装置、設備、システム、記憶媒体及びプログラム製品
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
US9560310B2 (en) Method and system for rescaling image files
CN106503791A (zh) 用于有效神经网络部署的系统和方法
US10430210B2 (en) Systems and devices for accessing a state machine
US11947979B2 (en) Systems and devices for accessing a state machine
CN110909870B (zh) 训练装置及方法
US20170193351A1 (en) Methods and systems for vector length management
US20200401553A1 (en) Devices for time division multiplexing of state machine engine signals
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
WO2021179289A1 (zh) 卷积神经网络的运算方法、装置、设备和存储介质
CN107678781B (zh) 处理器以及用于在处理器上执行指令的方法
CN109815181B (zh) 一种基于axi协议接口的任意位宽转换方法及装置
WO2019127926A1 (zh) 一种稀疏神经网络的计算方法及计算装置、电子装置、计算机可读存储介质以及计算机程序产品
CN111382853B (zh) 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN209044575U (zh) 基于pis的存储装置控制器、存储装置及系统
CN113504893B (zh) 一种智能芯片架构和高效处理数据的方法
CN114490465B (zh) 用于直接存储器访问的数据传输方法和装置
CN111382855B (zh) 数据处理装置、方法、芯片及电子设备
KR101706201B1 (ko) 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
KR20180067200A (ko) 딥러닝 기반 인식 시스템
Joshi et al. Multi-core image processing system using network on chip interconnect
WO2021092941A1 (zh) 感兴趣区域-池化层的计算方法与装置、以及神经网络系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230609