WO2022107929A1 - 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치 - Google Patents
가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치 Download PDFInfo
- Publication number
- WO2022107929A1 WO2022107929A1 PCT/KR2020/016473 KR2020016473W WO2022107929A1 WO 2022107929 A1 WO2022107929 A1 WO 2022107929A1 KR 2020016473 W KR2020016473 W KR 2020016473W WO 2022107929 A1 WO2022107929 A1 WO 2022107929A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- deep learning
- rdma
- restorer
- compressor
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 claims description 24
- 230000001133 acceleration Effects 0.000 claims description 17
- 238000007906 compression Methods 0.000 claims description 15
- 230000006835 compression Effects 0.000 claims description 15
- 230000006837 decompression Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Definitions
- the present invention relates to image processing and SoC (System on Chip) technology, and more particularly, to a deep learning acceleration device for controlling a compressor/decompressor by grasping a hardware state for data supply of deep learning hardware.
- SoC System on Chip
- the present invention has been devised to solve the above problems, and an object of the present invention is to continuously monitor the state of the accelerator and to produce the maximum output. Compression/restore according to the DMA and buffer states It is to provide a deep learning accelerator that controls the machine.
- a deep learning acceleration device includes: RDMA (Read Direct Memory Access) for directly accessing an external memory, and reading data for a deep learning operation from the external memory; a restorer that restores data read from RDMA; an input buffer in which data restored by the restorer is stored; an operator that performs a deep learning operation with data stored in the input buffer; and a controller for determining the RDMA and the input buffer conditions, and controlling the restoration operation of the restorer based on the identified conditions.
- RDMA Read Direct Memory Access
- Deep learning acceleration apparatus an output buffer in which data calculated by deep learning in the calculator is stored; a compressor for compressing data stored in the output buffer; WDMA (Write Direct Memory Access) that directly accesses the external memory and writes the compressed data in the compressor to the external memory; further comprising, the checker understands the status of the WDMA and the output buffer, and based on the identified situation It is possible to control the compression operation of the compressor.
- WDMA Write Direct Memory Access
- the checker can grasp the bandwidth situation of RDMA and WDMA. In addition, when the identified RDMA bandwidth situation is not good, the checker can control the restorer to restore data applied from the RDMA in advance and store it in the internal cache.
- the checker may control the compressor to pre-compress the data stored in the output buffer and store it in the internal cache.
- the decompressor and the compressor can minimize parallel processing when there are many zeros in the IFmap and OFmap data more than a threshold.
- the restorer and the compressor can maximize parallel processing when the number of 0 in the weight data is less than or equal to a threshold.
- a deep learning acceleration method RDMA (Read Direct Memory Access), directly accessing an external memory, reading data for a deep learning operation from the external memory; restoring, by a restorer, data read from RDMA; storing, by the input buffer, the restored data; performing, by the calculator, a deep learning operation on the stored data; and, by the checker, determining the RDMA and the input buffer conditions, and controlling the restoration operation of the restorer based on the identified conditions.
- RDMA Read Direct Memory Access
- the compressor/decompressor it is possible to control the compressor/decompressor according to the state of the DMA and the buffer, so that it is possible to maintain the output of the deep learning accelerator to the maximum.
- FIG. 1 is a view showing a deep learning acceleration device to which the present invention is applicable;
- FIG. 2 is a block diagram showing the structure of a deep learning acceleration apparatus according to an embodiment of the present invention.
- FIG. 3 is a block diagram showing the detailed structure of the operator shown in Figure 2;
- FIG. 7 is a flowchart provided to explain a method for controlling an operation of a deep learning acceleration apparatus according to another embodiment of the present invention.
- the illustrated deep learning accelerator consists of a read direct memory access (RDMA) (11), an input buffer (12), an operator (13), an output buffer (14), and a write direct memory access (WDMA) (15). do.
- RDMA read direct memory access
- WDMA write direct memory access
- the deep learning accelerator receives data from the external memory 10 , performs a deep learning operation, and outputs and stores the operation result to the external memory 10 .
- the data input from the external memory 10 is IFmap (Input Feature map: feature data of the input image) and Weight (convolution parameter of the deep learning model), and the deep learning operation result output to the external memory 10 is OFmap ( output feature map).
- the operator 13 performs a deep learning operation with data stored in the input buffer 12 .
- the operator 13 sequentially calculates and sums each channel for filtering, applies simultaneous filtering to multiple channels, and may simultaneously process images of multiple channels with filters.
- the IFmap and Weight are input from the external memory 10 and the OFmap must be stored in the external memory 10 .
- data transmission/reception with the external memory 10 should be reduced.
- I/O bandwidth for sufficient data input/output is very important.
- the amount of data is reduced through compression/restore of input/output data during operation, but in a specific layer, the data compression rate becomes worse.
- a light-weight compressor/decompressor is applied to the deep learning acceleration device, but a technique for controlling the compressor/decompressor by checking the state of the DMA and the buffer is proposed.
- Deep learning acceleration apparatus according to an embodiment of the present invention, as shown in FIG. 2 , RDMA 110 , a decoder 120 , an input buffer 130 , an operator 140 , an output buffer 150 . ), a compressor (Encoder) 160, WDMA (170) and a checker (Checker) (180) is configured to include.
- the RDMA 110 directly accesses the external memory 10 and reads data for a deep learning operation from the external memory 10 .
- Data read by the RDMA 110 are IFmap and Weight.
- the decompressor 120 restores (decompresses) the compressed data (IFmap and weight) read by the RDMA 110 . Data restored by the restorer 120 is stored in the input buffer 130 .
- the calculator 140 is a module for performing a deep learning operation with data stored in the input buffer 130 .
- FIG. 3 is a block diagram illustrating a detailed structure of the calculator 140 shown in FIG. 2 .
- the operator 140 includes a convolution operation module 141, an address tree module 142, a batch normalization module 143, an Add Bias module 144, and an Activation module 145 necessary for a deep learning operation. and a Maxpool module 146 .
- the output buffer 150 is a buffer in which OFmap, which is data calculated by deep learning by the operator 140, is stored.
- the compressor 160 compresses the data OFmap stored in the output buffer 150 .
- the WDMA 170 directly accesses the external memory 10 and stores data compressed by the compressor 160 in the external memory 10 .
- the checker 180 checks the RDMA 110 and the input buffer 130 and checks the output buffer 150 and the WDMA 170, to understand the bandwidth situation of the RDMA 110 and the bandwidth situation of the WDMA 170 .
- the checker 180 controls the restoration/compression operation of the restorer 120/compressor 160 based on the DMA bandwidth situation (channel situation).
- the checker 180 restores the data applied from the RDMA 110 in advance by the restorer 120 and stores it in the internal cache.
- the checker 180 allows the compressor 160 to pre-compress the data stored in the output buffer 150 and store it in the internal cache.
- a compressor/decompressor In the case of a compressor/decompressor that supports run mode, it consists of bits (NZ) allocated as data allocation (RI) data for the number of runs specified by the user. That is, when the compressed stream is input as RI bits + NZ bits and data is processed, it means that at least one data of up to 2 ⁇ RI pieces of data can be generated.
- N parallel processing a maximum of N*(2 ⁇ RI) can be processed, so an additional memory that stores the information about the valid stream of the initial data in the internal core and stores the location of the required data. in need.
- Data that needs to be stored include: 1) the number of current input data counts, 2) undecrypted input data, 3) data remaining in cache, 4) number of data remaining in cache, 5) target count to be output, 6) The number of currently output data counts is included.
- Signals received include: 1) 128-bit data & valid signal, 2) DMA ready signal, 3) target count to be output, 4) signal to save current state, 5) signal to call saved state, 6) state and This includes a signal to empty the buffer, and 7) a signal to request data coming to the cache.
- Output signals include: 1) 64-bit data & valid signal, 2) DMA data request signal, 3) current input data count, 4) currently output data count, 5) save process in progress display, 6) load process In progress indication, 7) emptying process in progress indication, and 8) resting status indication after process are included.
- FIG. 5 and 6 are diagrams illustrating a parallel processing process in the Index Union Module and Data Collect Module of the restorer illustrated in FIG. 4 , specifically, a process of supplying data for parallel processing required from input data and collecting output data. .
- This example is when the user designates run as 3 bits and data as 8 bits and processes 8 in parallel.
- multiple parallel cores can be prepared and data compression/restore processing can be performed in parallel according to the DMA and buffer conditions.
- parallel processing is minimized to enable low-power operation by minimizing parallel processing in the case of layer data in which zeros occur more than the threshold, and in the case of weight, in the case of channel data with few zeros below the threshold Parallel processing is performed to the maximum so that the required data can be sufficiently secured.
- FIG. 7 is a flowchart provided to explain a method for controlling an operation of a deep learning acceleration apparatus according to another embodiment of the present invention.
- the RDMA 110 of the deep learning accelerator reads data for a deep learning operation from the external memory 10 (S210). Then, the restorer 120 restores the compressed data read in step S210 and stores it in the input buffer 130 (S220).
- the calculator 140 performs a deep learning operation with the data stored in step S220 and stores the deep learning operation result in the output buffer 150 (S230).
- the compressor 160 compresses the data stored in step S230 ( S240 ), and the WDMA 170 stores the data compressed in step S240 in the external memory 10 ( S250 ).
- the checker 180 checks the RDMA 110 and the input buffer 130 and checks the output buffer 150 and the WDMA 170 to determine the DMA bandwidth situation (S260) ).
- the checker 180 controls the restoration/compression operation of the restorer 120/compressor 160 based on the DMA bandwidth situation identified in step S260 (S270).
- a model capable of outputting the maximum output while continuously monitoring the state of the accelerator is presented, which is a model applicable to flexible deep learning devices and various networks and layers.
- the technical idea of the present invention can also be applied to a computer-readable recording medium containing a computer program for performing the functions of the apparatus and method according to the present embodiment.
- the technical ideas according to various embodiments of the present invention may be implemented in the form of computer-readable codes recorded on a computer-readable recording medium.
- the computer-readable recording medium may be any data storage device readable by the computer and capable of storing data.
- the computer-readable recording medium may be a ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, hard disk drive, or the like.
- the computer-readable code or program stored in the computer-readable recording medium may be transmitted through a network connected between computers.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치가 제공된다. 본 발명의 실시예에 따른 딥러닝 가속 장치는, 외부 메모리에 직접 접근하여 외부 메모리로부터 딥러닝 연산을 위한 데이터를 읽어들이는 RDMA, RDMA에서 읽어들인 데이터를 복원하는 복원기, 복원기에서 복원된 데이터가 저장되는 입력 버퍼, 입력 버퍼에 저장된 데이터로 딥러닝 연산을 수행하는 연산기, RDMA와 입력 버퍼의 상황을 파악하고 파악된 상황을 기초로 복원기의 복원 동작을 제어하는 제어기를 포함한다. DMA와 버퍼 상태에 따라 압축/복원기를 제어할 수 있어, 딥러닝 가속기의 출력을 최대한으로 유지시킬 수 있게 된다.
Description
본 발명은 영상 처리 및 SoC(System on Chip) 기술에 관한 것으로, 더욱 상세하게는 딥러닝 하드웨어의 데이터 공급을 위하여 하드웨어 상태를 파악하여 압축/복원기를 제어하는 딥러닝 가속 장치에 관한 것이다.
종래 딥러닝 하드웨어 가속기의 대부분은 입력 데이터(Feature map), 입력 컨볼루션 파라미터(Weight)를 입력받아, 연산을 빠르게 수행하는 것을 목표로 하고 있다.
외부 메모리 접근 시에는 물리적 제약사항인 외부 메모리 허용 Bandwidth를 넘어갈 수 없기 때문에, 데이터의 입출력을 압축할 경우 많은 데이터를 공급할 수 있다.
그러나, 단순히 압축/복원으로 간단한 무손실 압축을 사용하고 높은 압축률을 갖는 기법을 사용한다 하더라도, 실제 하드웨어 구현시에는 가속기 보다 압축/복원을 위한 하드웨어 크기가 커지는 문제점을 갖고 있다.
또한, 손실 압축을 사용하게 될 경우에는 성능의 열화가 발생하는 방법이기 때문에 더 큰 문제점을 발생하게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 가속기의 상태를 지속적으로 모니터링하며 최대한의 출력을 낼 수 있도록 하기 위한 방안으로, DMA와 버퍼 상태에 따라 압축/복원기를 제어하는 딥러닝 가속 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 딥러닝 가속 장치는, 외부 메모리에 직접 접근하여, 외부 메모리로부터 딥러닝 연산을 위한 데이터를 읽어들이는 RDMA(Read Direct Memory Access); RDMA에서 읽어들인 데이터를 복원하는 복원기; 복원기에서 복원된 데이터가 저장되는 입력 버퍼; 입력 버퍼에 저장된 데이터로 딥러닝 연산을 수행하는 연산기; RDMA와 입력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 복원기의 복원 동작을 제어하는 제어기;를 포함한다.
본 발명의 실시예에 따른 딥러닝 가속 장치는, 연산기에서 딥러닝 연산된 데이터가 저장되는 출력 버퍼; 출력 버퍼에 저장된 데이터를 압축하는 압축기; 외부 메모리에 직접 접근하여, 압축기에서 압축된 데이터를 외부 메모리에 기록하는 WDMA(Write Direct Memory Access);를 더 포함하고, 체커는, WDMA와 출력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 압축기의 압축 동작을 제어할 수 있다.
체커는, RDMA와 WDMA의 bandwidth 상황을 파악할 수 있다. 또한, 체커는 파악된 RDMA의 bandwidth 상황이 좋지 않은 경우, 복원기가 RDMA로부터 인가되는 데이터를 미리 복원하여 내부 캐시에 저장하도록 제어할 수 있다.
그리고, 체커는 파악된 WDMA의 bandwidth 상황이 좋지 않은 경우, 압축기가 출력 버퍼에 저장된 데이터를 미리 압축하여 내부 캐시에 저장하도록 제어할 수 있다.
복원기와 압축기는, IFmap과 OFmap 데이터에 0이 임계치 이상으로 많은 경우, 병렬 처리를 최소화할 수 있다.
복원기와 압축기는, Weight 데이터에 0이 임계치 이하로 적은 경우, 병렬 처리를 최대화할 수 있다.
한편, 본 발명의 다른 실시예에 따른, 딥러닝 가속 방법은, RDMA(Read Direct Memory Access)가, 외부 메모리에 직접 접근하여, 외부 메모리로부터 딥러닝 연산을 위한 데이터를 읽어들이는 단계; 복원기가, RDMA에서 읽어들인 데이터를 복원하는 단계; 입력 버퍼가, 복원된 데이터를 저장하는 단계; 연산기가, 저장된 데이터로 딥러닝 연산을 수행하는 단계; 체커가, RDMA와 입력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 복원기의 복원 동작을 제어하는 단계;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, DMA와 버퍼 상태에 따라 압축/복원기를 제어할 수 있어, 딥러닝 가속기의 출력을 최대한으로 유지시킬 수 있게 된다. 특히, 병렬 데이터 처리 및 필요에 따른 속도 제어 가능하고, 압축/복원을 채널/Weight 별 데이터 처리를 위한 내/외부 메모리 접근 패턴 변경을 적용한 압축/복원이 가능하다.
도 1은 본 발명이 적용 가능한 딥러닝 가속 장치를 도시한 도면,
도 2는 본 발명의 일 실시예에 따른 딥러닝 가속 장치의 구조를 도시한 블럭도,
도 3은, 도 2에 도시된 연산기의 상세 구조를 도시한 블럭도,
도 4는 Run mode를 지원하는 복원기 예시,
도 5와 도 6은, 도 4에 예시된 복원기의 Index Union Module과 Data Collect Module에서 병렬 처리 과정, 그리고,
도 7은 본 발명의 다른 실시예에 따른 딥러닝 가속 장치의 동작 제어 방법의 설명에 제공되는 흐름도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용 가능한 딥러닝 가속 장치를 도시한 도면이다. 도시된 딥러닝 가속 장치는, RDMA(Read Direct Memory Access)(11), 입력 버퍼(12), 연산기(13), 출력 버퍼(14), WDMA(Write Direct Memory Access)(15)를 포함하여 구성된다.
딥러닝 가속 장치는 외부 메모리(10)로부터 데이터를 입력받아 딥러닝 연산을 수행하고, 연산 결과를 외부 메모리(10)로 출력하여 저장한다.
외부 메모리(10)로부터 입력받는 데이터는 IFmap(Input Feature map : 입력 영상의 특징 데이터)와 Weight(딥러닝 모델의 컨볼루션 파라미터)이고, 외부 메모리(10)로 출력하는 딥러닝 연산 결과는 OFmap(Outut Feature map)이다.
연산기(13)는 입력 버퍼(12)에 저장된 데이터로 딥러닝 연산을 수행한다. 이 과정에서, 연산기(13)는 필터링을 위하여 채널별 순차적으로 연산하여 합산하고, 여러 채널에 동시 필터링을 적용하며, 필터를 두고 다채널의 영상을 동시 처리할 수 있다.
이와 같이, IFmap, Weight가 외부 메모리(10)로부터 입력되고, OFmap가 외부 메모리(10)로 저장되어야 하는데, 저전력 동작을 위해서는 외부 메모리와(10)의 데이터 송수신을 줄여 주어야 한다.
충분한 데이터 입출력을 위한 입출력 Bandwidth가 매우 중요하다. 보통 연산시 입력/출력된 데이터의 압축/복원을 통해 데이터량이 줄어 들게 되나, 특정한 레이어에서는 데이터의 압축률이 오히려 더 나빠지는 경우가 발생한다.
또한, 외부 메모리(10)의 공유로 인해 외부 메모리(10)에 접근이 불가능할 경우 데이터의 부족현상이 발생하여 압축/복원기의 오동작을 야기시키기도 한다. 이를 위하여 데이터를 충분히 제공하기 위하여 DMA와 버퍼의 상태에 따라 압축/복원기를 제어할 필요가 있다.
이에 따라, 본 발명의 실시예에서는 딥러닝 가속 장치에 경량의 압축/복원기를 적용하되, DMA와 버퍼의 상태를 확인하여 압축/복원기를 제어하는 기법을 제시한다.
도 2는 본 발명의 일 실시예에 따른 딥러닝 가속 장치의 구조를 도시한 블럭도이다. 본 발명의 실시예에 따른 딥러닝 가속 장치는, 도 2에 도시된 바와 같이, RDMA(110), 복원기(Decoder)(120), 입력 버퍼(130), 연산기(140), 출력 버퍼(150), 압축기(Encoder)(160), WDMA(170) 및 체커(Checker)(180)를 포함하여 구성된다.
RDMA(110)는 외부 메모리(10)에 직접 접근하여, 외부 메모리(10)로부터 딥러닝 연산을 위한 데이터를 읽어들인다. RDMA(110)가 읽어들이는 데이터는 IFmap과 Weight이다.
복원기(120)는 RDMA(110)가 읽어들인 압축된 데이터(IFmap과 Weight)를 복원(압축 해제)한다. 복원기(120)에 의해 복원된 데이터는 입력 버퍼(130)에 저장된다.
연산기(140)는 입력 버퍼(130)에 저장된 데이터로 딥러닝 연산을 수행하기 위한 모듈이다. 도 3은, 도 2에 도시된 연산기(140)의 상세 구조를 도시한 블럭도이다.
도시된 바와 같이, 연산기(140)는 딥러닝 연산을 위해 필요한 컨볼루션 연산 모듈(141), 어드레스 트리 모듈(142), 배치 정규화 모듈(143), Add Bias 모듈(144), Activation 모듈(145) 및 Maxpool 모듈(146)을 포함한다.
출력 버퍼(150)는 연산기(140)에서 딥러닝 연산된 데이터인 OFmap이 저장되는 버퍼이다. 압축기(160)는 출력 버퍼(150)에 저장된 데이터(OFmap)를 압축한다. WDMA(170)는 외부 메모리(10)에 직접 접근하여, 압축기(160)에서 압축된 데이터를 외부 메모리(10)에 저장한다.
체커(180)는 RDMA(110)와 입력 버퍼(130)를 체크하고 출력 버퍼(150)와 WDMA(170)를 체크하여, RDMA(110)의 bandwidth 상황과 WDMA(170)의 bandwidth 상황을 파악한다.
그리고, 체커(180)는 DMA bandwidth 상황(채널 상황)을 기초로, 복원기(120)/압축기(160)의 복원/압축 동작을 제어한다.
구체적으로, RDMA(110)의 bandwidth 상황이 좋지 않은 경우, 체커(180)는 복원기(120)가 RDMA(110)로부터 인가되는 데이터를 미리 복원하여 내부 캐시에 저장하도록 한다.
또한, WDMA(110)의 bandwidth 상황이 좋지 않은 경우, 체커(180)는 압축기(160)가 출력 버퍼(150)에 저장된 데이터를 미리 압축하여 내부 캐시에 저장하도록 한다.
run mode를 지원하는 압축/복원기의 경우에는 사용자가 지정하는 run의 수를 위한 데이터 할당(RI) 데이터로 할당된 bits (NZ)로 구성된다. 즉, 압축된 스트림을 RI bits + NZ bits로 입력받아 데이터를 처리할 경우 최대 2^RI 개의 데이터를 최소 1개의 데이터를 생성할 수 있다는 의미가 된다.
N개로 병렬로 처리를 할 경우에는 최대 N*(2^RI)개를 처리할 수 있으므로, 초기 데이터의 유효한 스트림에 대한 정보를 내부 코어에 저장하여 필요로 하는 데이터의 위치를 기억하는 추가적인 메모리를 필요로한다.
몇 비트의 내부 메모리로 코어에서 필요로 하는 데이터를 충분히 확보가 가능하기 때문에, 메모리 접근 채널의 상황이 나쁠 경우에는 병렬 처리를 미리 수행하여 필요한 데이터를 미리 확보가 가능하다(내부 Global Buffer의 크기에 맞춰서 동작).
도 4는 복원기의 내부 구조를 예시한 도면이다. 저장해야 하는 데이터에는, 1) 현재 입력 데이터 카운트 수, 2) 복호화되지 못한 입력 데이터, 3) 캐시에 남아 있는 데이터, 4) 캐시에 남아 있는 데이터 수, 5) 출력해야 하는 목표 카운트 수, 6) 현재 출력한 데이터 카운트 수가 포함된다. 입력받는 신호에는, 1) 128비트 데이터&유효신호, 2) DMA 준비신호, 3) 출력해야 하는 목표 카운트 수, 4) 현재 상태를 저장하는 신호, 5) 저장된 상태를 불러오는 신호, 6) 상태 및 버퍼를 비우는 신호, 7) 캐시에 오는 데이터 요청 신호가 포함된다. 출력하는 신호에는, 1) 64비트 데이터 & 유효 신호, 2) DMA 데이터 요청신호, 3) 현재 입력 데이터 카운트 수, 4) 현재 출력한 데이터 카운트 수, 5) 저장 프로세스 진행 중 표시, 6) 로드 프로세스 진행 중 표시, 7) 비우는 프로세스 진행 중 표시, 8) 프로세스 후 휴식 상태 표시가 포함된다.
도 5와 도 6에는 도 4에 예시된 복원기의 Index Union Module과 Data Collect Module에서 병렬 처리 과정, 구체적으로 입력 데이터로부터 필요한 병렬 처리를 위한 데이터 공급 및 출력 데이터를 Collection 하는 과정을 예시한 도면이다.
해당 예시는 사용자가 run을 3bit로 data를 8bit로 지정하고 8개를 병렬로 처리할 경우이다. 하드웨어의 경우에는 복잡한 연산을 포함하고 있지 않기 때문에 다수의 병렬 코어를 준비하고, DMA 및 버퍼의 상황에 맞춰 병렬로 데이터를 압축/복원 처리를 수행할 수 있다.
또한, Activation(IFmap/OFmap)의 경우에는 0이 임계치 이상으로 많이 발생하는 레이어의 데이터의 경우 병렬 처리를 최소화 하여 저전력 동작을 가능하게 하고, Weight의 경우 0이 임계치 이하로 거의 없는 채널 데이터의 경우 병렬 처리를 최대로 수행하여 필요로 하는 데이터를 충분히 확보할 수 있도록 한다.
도 7은 본 발명의 다른 실시예에 따른 딥러닝 가속 장치의 동작 제어 방법의 설명에 제공되는 흐름도이다.
도시된 바와 같이, 딥러닝 가속 장치의 RDMA(110)는 외부 메모리(10)로부터 딥러닝 연산을 위한 데이터를 읽어들인다(S210). 그러면, 복원기(120)가 S210단계에서 읽어들인 압축된 데이터를 복원하여 입력 버퍼(130)에 저장한다(S220).
연산기(140)는 S220단계에서 저장된 데이터로 딥러닝 연산을 수행하고, 딥러닝 연산 결과를 출력 버퍼(150)에 저장한다(S230).
그러면, 압축기(160)는 S230단계에서 저장된 데이터를 압축하고(S240), WDMA(170)는 S240단계에서 압축된 데이터를 외부 메모리(10)에 저장한다(S250).
S210단계 내지 S250단계가 수행되는 중에, 체커(180)는 RDMA(110)와 입력 버퍼(130)를 체크하고 출력 버퍼(150)와 WDMA(170)를 체크하여, DMA bandwidth 상황을 파악한다(S260).
그리고, 체커(180)는 S260단계에서 파악된 DMA bandwidth 상황을 기초로, 복원기(120)/압축기(160)의 복원/압축 동작을 제어한다(S270).
지금까지, 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치에 대해, 바람직한 실시예를 들어 상세히 설명하였다.
위 실시예에서는, 가속기의 상태를 지속적으로 모니터링하며 최대한의 출력을 낼 수 있는 모델 제시하였는데, 유연한 딥러닝 장치 및 다양한 네트워크 및 레이어에서도 적용 가능한 모델이다.
병렬 데이터 처리 및 필요에 따른 속도 제어 가능한 하드웨어 구조와 딥러닝 가속기에서 압축/복원을 채널/Weight 별 데이터 처리를 위해 내/외부 메모리 접근 패턴 변경을 적용한 압축/복원 하드웨어 구조이다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
Claims (8)
- 외부 메모리에 직접 접근하여, 외부 메모리로부터 딥러닝 연산을 위한 데이터를 읽어들이는 RDMA(Read Direct Memory Access);RDMA에서 읽어들인 데이터를 복원하는 복원기;복원기에서 복원된 데이터가 저장되는 입력 버퍼;입력 버퍼에 저장된 데이터로 딥러닝 연산을 수행하는 연산기;RDMA와 입력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 복원기의 복원 동작을 제어하는 제어기;를 포함하는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 1에 있어서,연산기에서 딥러닝 연산된 데이터가 저장되는 출력 버퍼;출력 버퍼에 저장된 데이터를 압축하는 압축기;외부 메모리에 직접 접근하여, 압축기에서 압축된 데이터를 외부 메모리에 기록하는 WDMA(Write Direct Memory Access);를 더 포함하고,체커는,WDMA와 출력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 압축기의 압축 동작을 제어하는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 2에 있어서,체커는,RDMA와 WDMA의 bandwidth 상황을 파악하는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 3에 있어서,체커는,파악된 RDMA의 bandwidth 상황이 좋지 않은 경우, 복원기가 RDMA로부터 인가되는 데이터를 미리 복원하여 내부 캐시에 저장하도록 제어하는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 4에 있어서,체커는,파악된 WDMA의 bandwidth 상황이 좋지 않은 경우, 압축기가 출력 버퍼에 저장된 데이터를 미리 압축하여 내부 캐시에 저장하도록 제어하는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 4에 있어서,복원기와 압축기는,IFmap과 OFmap 데이터에 0이 임계치 이상으로 많은 경우, 병렬 처리를 최소화는 것을 특징으로 하는 딥러닝 가속 장치.
- 청구항 1에 있어서,복원기와 압축기는,Weight 데이터에 0이 임계치 이하로 적은 경우, 병렬 처리를 최대화는 것을 특징으로 하는 딥러닝 가속 장치.
- RDMA(Read Direct Memory Access)가, 외부 메모리에 직접 접근하여, 외부 메모리로부터 딥러닝 연산을 위한 데이터를 읽어들이는 단계;복원기가, RDMA에서 읽어들인 데이터를 복원하는 단계;입력 버퍼가, 복원된 데이터를 저장하는 단계;연산기가, 저장된 데이터로 딥러닝 연산을 수행하는 단계;체커가, RDMA와 입력 버퍼의 상황을 파악하고, 파악된 상황을 기초로 복원기의 복원 동작을 제어하는 단계;를 포함하는 것을 특징으로 하는 딥러닝 가속 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0155060 | 2020-11-19 | ||
KR1020200155060A KR102383962B1 (ko) | 2020-11-19 | 2020-11-19 | 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022107929A1 true WO2022107929A1 (ko) | 2022-05-27 |
Family
ID=81210817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2020/016473 WO2022107929A1 (ko) | 2020-11-19 | 2020-11-20 | 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102383962B1 (ko) |
WO (1) | WO2022107929A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190055608A (ko) * | 2017-11-15 | 2019-05-23 | 삼성전자주식회사 | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 |
WO2020062252A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 运算加速器和压缩方法 |
KR20200062323A (ko) * | 2017-10-17 | 2020-06-03 | 자일링크스 인코포레이티드 | 다수의 프로세서들 및 뉴럴 네트워크 가속기를 갖는 뉴럴 네트워크 프로세싱 시스템 |
KR20200091672A (ko) * | 2019-01-23 | 2020-07-31 | 전자부품연구원 | 딥러닝 가속 하드웨어 장치 |
KR20200109650A (ko) * | 2019-03-13 | 2020-09-23 | 한국전자통신연구원 | 가속기와 메모리 사이의 통신을 제어하는 메모리 제어기 및 그것의 동작 방법 |
-
2020
- 2020-11-19 KR KR1020200155060A patent/KR102383962B1/ko active IP Right Grant
- 2020-11-20 WO PCT/KR2020/016473 patent/WO2022107929A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200062323A (ko) * | 2017-10-17 | 2020-06-03 | 자일링크스 인코포레이티드 | 다수의 프로세서들 및 뉴럴 네트워크 가속기를 갖는 뉴럴 네트워크 프로세싱 시스템 |
KR20190055608A (ko) * | 2017-11-15 | 2019-05-23 | 삼성전자주식회사 | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 |
WO2020062252A1 (zh) * | 2018-09-30 | 2020-04-02 | 华为技术有限公司 | 运算加速器和压缩方法 |
KR20200091672A (ko) * | 2019-01-23 | 2020-07-31 | 전자부품연구원 | 딥러닝 가속 하드웨어 장치 |
KR20200109650A (ko) * | 2019-03-13 | 2020-09-23 | 한국전자통신연구원 | 가속기와 메모리 사이의 통신을 제어하는 메모리 제어기 및 그것의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102383962B1 (ko) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4090510B2 (ja) | アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース | |
US5933654A (en) | Dynamic buffer fracturing by a DMA controller | |
CN101567849B (zh) | 一种数据缓存方法和装置 | |
CA2375612A1 (en) | A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter | |
WO2001001271A1 (en) | Method and apparatus for bridging a plurality of buses | |
CN113986791B (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
WO2012036470A2 (en) | Hybrid raid controller having multi pci bus switching | |
US20070011689A1 (en) | Information processing unit, computer control method, and information storage medium | |
WO2023096118A1 (ko) | 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법 | |
CN111641566A (zh) | 数据处理的方法、网卡和服务器 | |
WO2013100302A1 (en) | Patch method using memory and temporary memory and patch server and client using the same | |
WO2013147441A1 (en) | Scheduling apparatus and method for load balancing when performing multiple transcoding operations | |
WO2022107929A1 (ko) | 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치 | |
EP0844566A1 (en) | Interface apparatus for adapting data width to system bus width | |
WO2020153513A1 (ko) | 딥러닝 가속 하드웨어 장치 | |
CN109032821A (zh) | 主题消息处理方法、装置、设备及存储介质 | |
US20030065735A1 (en) | Method and apparatus for transferring packets via a network | |
WO2022145713A1 (ko) | 인공 신경망 모델을 경량화하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 | |
WO2022107909A1 (ko) | 적응형 딥러닝 데이터 압축 처리 장치 및 방법 | |
WO2021117942A1 (ko) | 저복잡도 딥러닝 가속 하드웨어 데이터 가공장치 | |
WO2021107170A1 (ko) | 저전력 딥러닝 가속 장치 | |
CN101510183B (zh) | 数据搬运处理的方法和装置 | |
CN115208845A (zh) | 发送数据包的方法、装置、设备、存储介质、程序产品 | |
EP3092570A1 (en) | Method for processing data in storage device and storage device | |
WO2022107931A1 (ko) | 데이터 중복 방지를 위한 데이터 저장 방법 및 이를 적용한 데이터 플랫폼 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20962535 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20962535 Country of ref document: EP Kind code of ref document: A1 |