WO2024128372A1 - 차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 - Google Patents
차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 Download PDFInfo
- Publication number
- WO2024128372A1 WO2024128372A1 PCT/KR2022/020704 KR2022020704W WO2024128372A1 WO 2024128372 A1 WO2024128372 A1 WO 2024128372A1 KR 2022020704 W KR2022020704 W KR 2022020704W WO 2024128372 A1 WO2024128372 A1 WO 2024128372A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- feature map
- layer
- buffer
- data
- size
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 45
- 239000000872 buffer Substances 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title description 17
- 238000005457 optimization Methods 0.000 title description 4
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000036316 preload Effects 0.000 claims abstract description 7
- 238000007792 addition Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
Definitions
- Deep learning is a widely used technology in the fields of artificial intelligence (AI) and computer vision.
- Various deep-learning architectures such as convolution neural networks (CNNs), deep-belief networks (DBNs), and autoencoders, are used for visual object recognition, automatic conversation recognition, etc. , has been shown to produce state-of-the-art results for tasks such as natural language processing, and music/acoustic signal processing.
- the main effort in deep learning has been focused on software implementation for various network architectures, learning algorithms, and applications.
- Object recognition using deep learning is currently one of the most notable research areas in the industry, and is being used in self-driving cars, unmanned stores, and traffic detection. For these applications, low latency or real-time response equivalent to 30 to 60 frames per second or more is essential. Since this is a difficult goal to achieve with general-purpose processors, the industry is currently developing processors dedicated to artificial neural networks called NPUs to lower latency.
- One of the reasons that reduces efficiency when designing an NPU for an artificial intelligence algorithm that includes convolution is that the size of the convolution operation is different for each layer. For example, there are convolutions where the size of the multiplication unit changes, such as 1x1 convolution, 3x3 convolution, and 5x5 convolution. In addition, in cases where the stride to the next data after convolution changes, the convolution operation is performed in the calculation unit. This makes it difficult to map efficiently.
- the technical problem of the present invention is to use a calculation unit with a variable addition tree that can efficiently map various types of convolution operations in order to solve the above problems, and to use a spatial unit that can provide the maximum amount of data required per unit time.
- a calculation unit with a variable addition tree that can efficiently map various types of convolution operations in order to solve the above problems, and to use a spatial unit that can provide the maximum amount of data required per unit time.
- the present invention relates to a data processing device, which provides the maximum calculation unit utilization for each layer performing different convolution operations, and provides the greatest common divisor commonly used in a plurality of convolution operations. Compare the time to load the feature map and parameters for each layer from an external memory with a calculation unit that includes a variable addition tree that bundles the multiplier results, and preload and store the data based on the comparison result, or store the data in advance.
- a dynamic data flow structure unit that reuses, a spatial buffer distribution structure unit that generates the number of buffers corresponding to the largest value among the spatial pixels required by the convolution operation, and distributes the characteristic map to the buffers created in pixel units. It is characterized by including.
- the addition tree of the calculation unit is variable, so that one calculation unit and the minimum secondary logic resources can produce the effect of having several types of calculation units. Accordingly, multiple units with different functions can be added to the accelerator, or the unit cost and power usage can be further reduced by making the accelerator lighter.
- communication with external memory can be minimized by improving the data flow structure, thereby improving overall system performance.
- FIG. 1 is a conceptual diagram illustrating a comparison between an embodiment of a data processing device according to the prior art and a variable addition tree of a data processing device according to the present invention.
- Figure 2 is a conceptual diagram showing a comparison between an embodiment of a data processing device according to the prior art and a dynamic data flow structure according to the present invention.
- Figure 3 is a conceptual diagram showing a comparison between an embodiment of a data processing device according to the prior art and a spatial buffer distribution structure according to the present invention.
- Figure 4 is a block diagram of a computational unit with a variable addition tree according to the present invention.
- Figure 5 is a timing diagram showing an embodiment of applying the layer fusion technique.
- Figure 6 is a conceptual diagram showing spatial buffer distribution according to the present invention.
- a calculation unit, layer that includes a variable addition tree that groups multiplier results equal to the greatest common divisor commonly used in multiple convolution operations to provide maximum calculation unit utilization for each layer performing different convolution operations.
- a dynamic data flow structure unit that compares the loading time for each feature map and parameter from external memory, preloads and stores data based on the comparison result, or reuses data, and uses the largest spatial pixel required for convolution operation.
- a data processing device comprising a spatial buffer distribution structure unit that generates the number of buffers corresponding to the value and distributes the characteristic map to the buffers created in pixel units.
- Figure 1 shows an image recognition method applying the dynamic quantization precision variable algorithm of the deep learning network according to the present invention.
- the main network unit of the image recognition device performs quantization corresponding to a plurality of different numbers of bits for a deep learning network that performs object recognition on an arbitrary image, A plurality of quantization models, each corresponding to the number of bits, can be created (S101).
- the calculation unit consists of 144 multipliers, in a layer where the number of multiplications required to calculate one output pixel is 36, the problem is that only 25% of the calculation units, which is the number of multiplications required by the number of multipliers divided by the number of calculation units, are used. There is.
- Figure 2 shows a comparison between an embodiment of a data processing device according to the prior art and a dynamic data flow structure according to the present invention.
- CNN Convolutional Neural Network
- the dynamic data flow structure unit can use a data reuse method to minimize repetitive loading of the same data and allow the calculation unit to continue performing meaningful calculations without rest while loading the next data.
- the dynamic data flow structure unit seeks to optimize performance by variably applying both feature map reuse and parameter reuse methods depending on the characteristics of the layer.
- the dynamic data flow structure unit according to the present invention does not perform redundant data loading and does not need to communicate with external memory other than the characteristic map of the initial layer.
- the dynamic data flow structure unit preloads all parameters of the layer into the chip's internal buffer, and loads all parameters while loading the characteristic map. and perform calculations.
- the dynamic data flow structure unit loads the feature map of the layer in advance into the chip's internal buffer and loads the parameters. When one filter is loaded, the next filter is loaded. and performs calculations with the entire feature map.
- the entire algorithm can be calculated by loading the feature map from external memory just once using the layer fusion technique, taking advantage of the fact that the size of the feature map gradually decreases as the layer progresses. You can.
- the layer fusion technique is a technique that changes the order of calculations across multiple layers. When calculating one layer, when the calculation result is sufficient to proceed with the calculation of the next layer, the calculation of the current layer is stopped and the next layer is calculated and then return. It's a technique. If this is repeated up to the layer where the size of the characteristic map is smaller than the size of the chip's internal buffer, the process of saving and loading the characteristic map to external memory becomes unnecessary. External memory access is greatly reduced, saving power and maximizing performance.
- Figure 3 is a conceptual diagram showing a comparison between an embodiment of a data processing device according to the prior art and a spatial buffer distribution structure according to the present invention.
- characteristic maps are stacked and stored in order in one buffer, so there is a problem in that specific data must be loaded for several cycles because the storage unit of the buffer and the movement unit of the data address required for calculation do not match.
- the spatial buffer distribution structure according to the present invention is a method of storing feature map data in different unit buffers depending on the location of the pixel, and all feature map data at an arbitrary location can be loaded in one cycle, making it possible to load the feature map data into a calculation unit. Make sure there are no rest cycles.
- pixels can be stored in one of 16 buffers according to their positions in the feature map. Through this, arbitrary 4x4 unit data of the feature map can be accessed in one cycle.
- a calculation unit with a variable addition tree structure can be configured by grouping the multiplier results as many as the greatest common divisor commonly used in all convolution operations and grouping the grouped multiplier units together.
- the data flow structure compares the time to load the feature map and parameters from external memory for each layer, preloads and stores data that takes less time, and reuses data that takes more time. Also, if the size of the chip's internal buffer cannot store the entire characteristic map, the characteristic map is divided into parts, the calculation is performed as it passes through the layers, and the calculation is repeated until the size of the internal buffer is smaller.
- the spatial buffer distribution structure creates as many buffers as the largest spatial pixel required during the convolution operation at once, and spatially distributes the feature map to several buffers on a pixel basis.
- the addition tree of the calculation unit is variable, so that one calculation unit and the minimum secondary logic resources can produce the effect of having several types of calculation units. Accordingly, multiple units with different functions can be added to the accelerator, or the unit cost and power usage can be further reduced by making the accelerator lighter.
- communication with external memory can be minimized by improving the data flow structure, thereby improving overall system performance.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
본 발명은 데이터 처리 장치에 관한 것으로서, 서로 다른 합성곱 연산을 수행하는 레이어마다 최대의 계산 유닛 이용률을 제공하도록, 복수의 합성곱 연산에서 공통으로 사용되는 최대공약수만큼의 곱셉기 결과를 묶어서 구성하는 가변적 덧셈 트리를 포함하는 계산 유닛과, 상기 레이어마다 특성맵과 파라미터를 외부 메모리에서 로드하는 시간을 비교하고, 비교결과에 근거하여 데이터를 미리 로드하여 저장하거나, 데이터를 재사용하는 동적 데이터 흐름 구조 유닛과, 상기 합성곱 연산이 요구하는 공간적 픽셀 중 가장 큰 값에 대응되는 버퍼 개수를 생성하고, 상기 특성맵을 픽셀 단위로 생성된 버퍼에 분배하는 공간적 버퍼 분배 구조 유닛을 포함하는 것을 특징으로 한다.
Description
본 발명은 객체인식 알고리즘의 가속기와 관련된 것이다. 아울러, 본 발명은 합성곱 연산을 사용하는 인공지능 알고리즘 가속기 설계에 범용적으로 사용될 수 있는 최적화 방법론에 관한 것이다.
딥 러닝은 인공 지능(artificial intelligence, AI) 및 컴퓨터 비전(computer vision) 분야에서 널리 사용되는 기술이다. 컨볼루션 뉴럴 네트워크들(convolution neural networks, CNNs), 심층-신뢰 네트워크들(deep-belief networks, DBNs), 및 오토인코더들(autoencoders)과 같은 다양한 딥-러닝 아키텍쳐들은 시각적인 객체 인식, 자동 대화 인식, 자연 언어 처리, 및 음악/음향 신호 처리와 같은 작업들에 대한 최신의 결과들을 생성하는 것으로 보여왔다. 딥 러닝의 주된 노력은 다양한 네트워크 아키텍쳐들, 러닝 알고리즘들, 및 어플리케이션들에 대한 소프트웨어 구현에 포커싱 되어왔다.
딥러닝을 활용한 객체인식은 현재 산업계에서 가장 주목받는 연구분야 중 하나로, 자율주행 자동차, 무인 상점, 교통 감지 등에 활용되고 있다. 이러한 응용에는 초당 30~60프레임 이상에 해당하는 짧은 지연시간 혹은 실시간 반응이 필수적이다. 이는 범용 프로세서로 달성하기 어려운 목표이므로 현재 산업계에선 NPU라는 인공신경망 전용 프로세서를 개발하여 지연시간을 낮추고 있다.
합성곱을 포함하는 인공지능 알고리즘의 NPU를 설계할 때 가장 효율을 떨어뜨리는 원인 중 하나로 합성곱 연산의 크기가 레이어별로 다르다는 이유가 있다. 예를 들어 1x1 합성곱, 3x3 합성곱, 5x5 합성곱처럼 곱셈단위의 크기가 변하는 합성곱이 있으며 그 외에도 합성곱 이후 다음 데이터로의 이동 단위(stride)가 변하는 경우 등이 합성곱 연산을 계산 유닛에 효율적으로 매핑하기 어렵게 만든다.
또한 여러 종류의 합성곱에 따라서 계산에 사용되는 데이터를 제공하는 데이터 흐름의 구조도 바꾸지 않으면 계산 유닛에 필요한 데이터를 적재적소에 제공하지 못해 성능 저하의 원인이 된다.
본 발명의 기술적 과제는 위와 같은 문제점을 해결하기 위하여 여러 종류의 합성곱 연산을 모두 효율적으로 매핑할 수 있는 가변 덧셈 트리를 가진 계산 유닛을 사용하고, 단위시간당 필요한 최대 데이터양을 제공할 수 있는 공간적 버퍼 분배 구조를 사용하여 계산 유닛의 사용률을 최대화하고자 한다.
상기한 과제를 해결하기 위해 본 발명은 데이터 처리 장치에 관한 것으로서, 서로 다른 합성곱 연산을 수행하는 레이어마다 최대의 계산 유닛 이용률을 제공하도록, 복수의 합성곱 연산에서 공통으로 사용되는 최대공약수만큼의 곱셉기 결과를 묶어서 구성하는 가변적 덧셈 트리를 포함하는 계산 유닛과, 상기 레이어마다 특성맵과 파라미터를 외부 메모리에서 로드하는 시간을 비교하고, 비교결과에 근거하여 데이터를 미리 로드하여 저장하거나, 데이터를 재사용하는 동적 데이터 흐름 구조 유닛과, 상기 합성곱 연산이 요구하는 공간적 픽셀 중 가장 큰 값에 대응되는 버퍼 개수를 생성하고, 상기 특성맵을 픽셀 단위로 생성된 버퍼에 분배하는 공간적 버퍼 분배 구조 유닛을 포함하는 것을 특징으로 한다.
본 발명에 따른 최적화 방법론은 종래의 기술과 달리 계산 유닛의 덧셈 트리가 가변적이기 때문에 하나의 계산 유닛과 최소의 부수적은 로직 자원으로 마치 여러 종류의 계산 유닛을 가진 효과를 낼 수 있다. 이에 따라 가속기에 다른 기능을 하는 여러 유닛을 추가할 수 있거나 가속기를 경량화하여 단가, 사용전력을 더 낮출 수 있다.
아울러, 본 발명에 따르면 데이터 흐름 구조를 개선하여 외부 메모리와의 통신을 최소화하고, 그를 통해 시스템 전체의 성능을 높일 수 있다.
도 1은 종래 기술에 따른 데이터 처리 장치의 일 실시예와, 본 발명에 따른 데이터 처리 장치의 가변적 덧셈 트리의 비교를 나타낸 개념도이다.
도 2는 종래 기술에 따른 데이터 처리 장치의 일 실시예와, 본 발명에 따른 동적 데이터 흐름 구조의 비교를 나타낸 개념도이다.
도 3은 종래 기술에 따른 데이터 처리 장치의 일 실시예와, 본 발명에 따른 공간적 버퍼 분배 구조의 비교를 나타낸 개념도이다.
도 4는 본 발명에 따른 가변적 덧셈 트리를 갖는 계산 유닛의 블록도이다.
도 5는 레이어 융합 기법을 적용하는 실시예를 나타낸 타이밍도이다.
도 6은 본 발명에 따른 공간적 버퍼 분배를 나타내는 개념도이다.
서로 다른 합성곱 연산을 수행하는 레이어마다 최대의 계산 유닛 이용률을 제공하도록, 복수의 합성곱 연산에서 공통으로 사용되는 최대공약수만큼의 곱셉기 결과를 묶어서 구성하는 가변적 덧셈 트리를 포함하는 계산 유닛, 레이어마다 특성맵과 파라미터를 외부 메모리에서 로드하는 시간을 비교하고, 비교결과에 근거하여 데이터를 미리 로드하여 저장하거나, 데이터를 재사용하는 동적 데이터 흐름 구조 유닛, 합성곱 연산이 요구하는 공간적 픽셀 중 가장 큰 값에 대응되는 버퍼 개수를 생성하고, 특성맵을 픽셀 단위로 생성된 버퍼에 분배하는 공간적 버퍼 분배 구조 유닛을 포함하는 것을 특징으로 하는 데이터 처리 장치.
본 발명의 목적 및 효과는 다음의 상세한 설명을 통하여 보다 분명해질 것이나 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
도 1에서는 본 발명에 따른 딥러닝 네트워크의 동적 양자화 정밀도 가변 알고리즘을 적용한 영상 인식 방법이 도시된다.
도 1에 도시된 것과 같이, 본 발명에 따른 영상 인식 장치의 메인네트워크부는 임의의 이미지에 대해 사물인식을 수행하는 딥러닝 네트워크에 대해, 복수의 서로 다른 비트수에 대응되는 양자화를 수행하여, 상기 비트수에 각각 대응되는 복수의 양자화 모델을 생성할 수 있다(S101).
예를 들어, 메인 네트워크를 본 발명의 목적 및 효과는 다음의 상세한 설명을 통하여 보다 분명해질 것이나 하기의 기재만으로 본 발명의 목적 및 효과가 제한되는 것은 아니다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
먼저 도 1을 살펴보면, 종래 데이터 처리 장치와 본 발명에 따른 가변적 덧셈 트리 구조의 비교가 도시된다.
도 1에 도시된 것과 같이, 종래기술의 계산 유닛의 경우, 덧셈 트리의 구조가 고정되어 있어 레이어의 특성에 따라 하드웨어 이용률이 크게 변할 수 있다.
예를 들어, 144개의 곱셈기로 계산 유닛이 이루어져 있을 때, 한 출력 픽셀을 계산하는 데 필요한 곱셈의 수가 36개인 레이어에서는 곱셈기의 수로 필요한 곱셈의 수를 나눈 값인 25%만큼의 계산 유닛만 이용되는 문제가 있다.
즉, 나머지 75%의 계산 유닛은 계산을 수행하지 않으므로, 데이터 처리 장치의 성능 저하를 유발한다.
반면, 본 발명에 따른 가변적 덧셈 트리 구조의 경우, 종래 기술과 같은 예시를 적용하면, 덧셈의 단위가 해당 레이어에서만 144개에서 36개로 변경될 수 있도록 하여 한 번에 4개의 출력 픽셀을 계산하게 할 수 있다. 이러한 방법으로 100%(=36x4/144)의 계산 유닛 이용률을 확보할 수 있다.
도 2에서는 종래 기술에 따른 데이터 처리 장치의 일 실시예와, 본 발명에 따른 동적 데이터 흐름 구조의 비교가 도시된다.
일반적으로 데이터 처리 장치가 컨볼루셔널 뉴럴 네트워크(Convolutional Neural Network, CNN) 알고리즘을 수행할 경우, 특성맵과 패러미터는 데이터의 크기가 커서 외부 메모리에 저장해 놓고, 필요할 때 로드하여 계산에 사용한다.
이와 관련하여 도 2를 참조하면, 종래 기술에 따른 데이터 처리 장치의 경우, 외부 메모리에 접근함에 있어서 데이터를 중복으로 로드하는 경우가 빈번하게 발생하였으므로, 데이터 이동 지연 시간만큼 성능 저하가 발생하였다.
반면, 본 발명에 따른 동적 데이터 흐름 구조 유닛은, 같은 데이터를 중복해서 불러오는 것을 최소화하고, 다음 데이터를 불러오는 동안 계산 유닛이 쉬지 않고 의미있는 계산을 계속 실행하도록 하기 위하여 데이터 재사용 방법을 사용할 수 있다.
특히, 본 발명에 따른 동적 데이터 흐름 구조 유닛은, 특성맵 재사용과 패러미터 재사용 방법 두가지를 레이어의 특성에 따라 가변적으로 적용함으로서, 성능 최적화를 도모한다.
도 2를 참조하면, 종래 기술과 달리 본 발명에 따른 동적 데이터 흐름 구조 유닛은 중복된 데이터 로드를 수행하지 않으며, 초기 레이어의 특성맵 이외에는 외부 메모리와 통신을 수행할 필요가 없다.
구체적으로, 본 발명에 따른 동적 데이터 흐름 구조 유닛은, 패러미터의 크기가 작고 특성맵의 크기가 큰 레이어의 경우 해당 레이어의 모든 패러미터를 칩 내부 버퍼에 미리 로드해 놓고, 특성맵을 로드하면서 모든 패러미터와 계산을 수행한다.
이 특성맵 재사용 방법을 적용하면 패러미터 전체를 미리 로드하는 데 시간이 적게 들면서, 특성맵을 로드하면서 쉬지 않고 계산 유닛에 필요한 데이터를 제공하는 것이 가능하다.
반대로, 패러미터의 크기가 크고 특성맵의 크기가 큰 레이어의 경우, 동적 데이터 흐름 구조 유닛은 해당 레이어의 특성맵을 미리 칩 내부 버퍼에 로드해 놓고 패러미터를 로드하면서 한 필터가 로드되면 다음 필터를 로드하며 특성맵 전체와 계산을 수행한다. 이 패러미터 재사용 방법을 적용하면 마찬가지로 계산 유닛이 쉬지 않도록 데이터를 계속 제공하는 것이 가능하다.
마지막으로 데이터 처리 장치가 객체인식 알고리즘을 수행하는 경우, 특성맵의 크기가 레이어를 진행하면서 점점 줄어드는 것을 이용하여, 레이어 융합 기법을 사용하여 외부 메모리에서 특성맵을 한 번만 로드하여도 알고리즘 전체를 계산할 수 있다. 레이어 융합 기법은 여러 레이어를 넘나들며 계산하도록 순서를 바꾸는 기법으로, 한 레이어를 계산할 때 계산 결과가 그 다음 레이어의 계산을 진행할 수 있는 정도가 되면, 현재 레이어의 계산을 멈추고 다음 레이어를 계산하고 돌아오는 기법이다. 이를 특성맵의 크기가 칩 내부 버퍼의 크기보다 작아지는 레이어까지 반복하면 외부 메모리에 특성맵을 저장하고 불러오는 과정이 필요없게 된다. 외부 메모리 접근이 크게 줄어 전력을 아끼고 성능을 극대화할 수 있다.
도 3은 종래 기술에 따른 데이터 처리 장치의 일 실시예와, 본 발명에 따른 공간적 버퍼 분배 구조의 비교를 나타낸 개념도이다.
도 3을 참조하면, 종래 기술의 경우, 특성맵을 로드 할 때, 해당 특성맵의 위치에 따라 로드 지연시간이 다른 문제점이 존재하였다.
즉, 도 3의 제1 부분(301)을 로드할 때는 버퍼의 4개 주소에만 접근하는 반면, 제2 부분(302)을 로드할 때는 버퍼의 8개 주소에 접근해야 한다.
또한, 종래 기술의 경우, 하나의 버퍼에 특성맵을 순서대로 쌓아 저장하므로, 버퍼의 저장 단위와 계산에서 필요한 데이터 주소의 이동 단위가 맞지 않아 특정 데이터의 경우 여러 사이클 동안 로드해야하는 문제점이 있었다.
이와 달리, 본 발명에 따른 공간적 버퍼 분배 구조는 특성맵의 데이터를 픽셀의 위치에 따라 서로 다른 단위 버퍼에 저장하는 방법으로, 임의의 위치의 특성맵 데이터를 모두 한 사이클만에 불러올 수 있어 계산 유닛이 쉬는 사이클이 없도록 한다.
구체적으로, 본 발명에 따르면 특성맵에서 픽셀의 위치에 따라 16개의 버퍼 중 하나에 저장할 수 있다. 이를 통해, 특성맵의 임의의 4x4 단위 데이터를 한 사이클에 접근할 수 있다.
상술한 본 발명의 특징을 이하 도 4 내지 도 6에서 보다 상세히 설명한다.
먼저, 도 4를 참조하면, 가변적 덧셈 트리 구조를 가진 계산 유닛은 모든 합성곱 연산에서 공통으로 사용되는 최대공약수만큼의 곱셈기 결과를 묶고, 묶인 곱셈기 단위를 서로 묶어 구성할 수 있다.
도 5를 참조하면, 데이터 흐름 구조는 레이어마다 특성맵과 파라미터를 외부 메모리에서 로드하는 시간을 비교하여 시간이 더 적게 걸리는 데이터를 미리 로드하여 저장하고, 시간이 더 오래 걸리는 데이터를 재사용한다. 또한 칩 내부 버퍼의 크기가 특성맵 전체를 저장하지 못한다면, 특성맵을 부분으로 나누어 레이어를 넘어가며 계산을 실행하고 돌아와 내부 버퍼의 크기보다 작아질 때까지 연산을 반복한다.
도 6을 참조하면, 공간적 버퍼 분배 구조는 합성곱 연산 중 가장 큰 공간적 픽셀을 한번에 요하는 만큼의 버퍼 개수를 만들어, 특성맵을 픽셀 단위로 여러 버퍼에 공간적으로 분배한다.
상기한 본 발명의 바람직한 실시예는 예시의 목적으로 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며 이러한 수정, 변경 및 부가는 상기의 특허청구 범위에 속하는 것으로 보아야 할 것이다. 또한 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
[이 발명을 지원한 국가연구개발사업]
과제고유번호: 1711152596
과제번호: 2021-0-00863-002
부처명: 과학기술정보통신부
과제관리(전문)기관명: 정보통신기획평가원
연구사업명: 신개념 PIM반도체선도기술개발
연구과제명: 고신뢰 메모리를 위한 지능형 인메모리 오류정정 디바이스 개발(Intelligent in-memory error-correction device for high-reliability memory)
기여율: 1/1
과제수행기관명: 서울대학교 산학협력단
연구기간: 2022.01.01~2022.12.31
본 발명에 따른 최적화 방법론은 종래의 기술과 달리 계산 유닛의 덧셈 트리가 가변적이기 때문에 하나의 계산 유닛과 최소의 부수적은 로직 자원으로 마치 여러 종류의 계산 유닛을 가진 효과를 낼 수 있다. 이에 따라 가속기에 다른 기능을 하는 여러 유닛을 추가할 수 있거나 가속기를 경량화하여 단가, 사용전력을 더 낮출 수 있다.
아울러, 본 발명에 따르면 데이터 흐름 구조를 개선하여 외부 메모리와의 통신을 최소화하고, 그를 통해 시스템 전체의 성능을 높일 수 있다.
Claims (5)
- 서로 다른 합성곱 연산을 수행하는 레이어마다 최대의 계산 유닛 이용률을 제공하도록, 복수의 합성곱 연산에서 공통으로 사용되는 최대공약수만큼의 곱셉기 결과를 묶어서 구성하는 가변적 덧셈 트리를 포함하는 계산 유닛;상기 레이어마다 특성맵과 파라미터를 외부 메모리에서 로드하는 시간을 비교하고, 비교결과에 근거하여 데이터를 미리 로드하여 저장하거나, 데이터를 재사용하는 동적 데이터 흐름 구조 유닛;상기 합성곱 연산이 요구하는 공간적 픽셀 중 가장 큰 값에 대응되는 버퍼 개수를 생성하고, 상기 특성맵을 픽셀 단위로 생성된 버퍼에 분배하는 공간적 버퍼 분배 구조 유닛을 포함하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항에 있어서,상기 동적 데이터 흐름 구조 유닛은,상기 버퍼가 특성맵 전체를 저장하지 못하는 경우, 상기 특성맵의 크기가 상기 버퍼보다 작아질 때까지 상기 특성맵을 분할하여 상기 레이어마다 반복적으로 계산을 수행하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항에 있어서,상기 동적 데이터 흐름 구조 유닛은,일 레이어의 패러미터 크기가 기준 패러미터 크기보다 작고, 상기 일 레이어의 특성맵의 크기가 기준 맵크기보다 큰 경우, 상기 일 레이어의 패러미터를 미리 버퍼에 로드하고, 이후 특성맵을 로드하면서 상기 로드된 패러미터와의 계산을 수행하는 것을 특징으로 하는 데이터 처리 장치.
- 제3항에 있어서,상기 동적 데이터 흐름 구조 유닛은,일 레이어의 패러미터 크기가 기준 패러미터 크기 이상이고, 상기 일 레이어의 특성맵의 크기가 기준 맵크기보다 큰 경우, 상기 일 레이어의 특성맵을 미리 버퍼에 로드하고, 이후 상기 패러미터를 로드하면서 상기 특성맵 전체와의 계산을 수행하는 것을 특징으로 하는 데이터 처리 장치.
- 제1항에 있어서,상기 공간적 버퍼 분배 구조 유닛은,임의의 위치에 대응되는 특성맵 데이터를 모두 한 사이클에 로드하도록, 상기 특성맵의 데이터를 픽셀의 위치에 따라 서로 다른 단위의 버퍼에 저장하는 것을 특징으로 하는 데이터 처리 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0177171 | 2022-12-16 | ||
KR1020220177171A KR20240095659A (ko) | 2022-12-16 | 2022-12-16 | 차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024128372A1 true WO2024128372A1 (ko) | 2024-06-20 |
Family
ID=91486052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/020704 WO2024128372A1 (ko) | 2022-12-16 | 2022-12-19 | 차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240095659A (ko) |
WO (1) | WO2024128372A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220071618A (ko) * | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 컨벌루션 연산을 위한 데이터 공유 방법, 페처 및 컨벌루션 연산 장치 |
KR20220125117A (ko) * | 2021-03-04 | 2022-09-14 | 삼성전자주식회사 | 뉴럴 프로세서 |
KR20220142333A (ko) * | 2021-04-14 | 2022-10-21 | 주식회사 딥엑스 | 데이터 재사용이 가능한 신경 프로세싱 유닛 및 그 방법 |
KR20220149281A (ko) * | 2021-04-30 | 2022-11-08 | 포항공과대학교 산학협력단 | 특징 맵을 컴프레싱하는 장치 및 방법 |
KR20220153311A (ko) * | 2021-05-11 | 2022-11-18 | 포항공과대학교 산학협력단 | 바이너리 뉴럴 네트워크 제어 방법 및 바이너리 뉴럴 네트워크 장치 |
-
2022
- 2022-12-16 KR KR1020220177171A patent/KR20240095659A/ko not_active Application Discontinuation
- 2022-12-19 WO PCT/KR2022/020704 patent/WO2024128372A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220071618A (ko) * | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 컨벌루션 연산을 위한 데이터 공유 방법, 페처 및 컨벌루션 연산 장치 |
KR20220125117A (ko) * | 2021-03-04 | 2022-09-14 | 삼성전자주식회사 | 뉴럴 프로세서 |
KR20220142333A (ko) * | 2021-04-14 | 2022-10-21 | 주식회사 딥엑스 | 데이터 재사용이 가능한 신경 프로세싱 유닛 및 그 방법 |
KR20220149281A (ko) * | 2021-04-30 | 2022-11-08 | 포항공과대학교 산학협력단 | 특징 맵을 컴프레싱하는 장치 및 방법 |
KR20220153311A (ko) * | 2021-05-11 | 2022-11-18 | 포항공과대학교 산학협력단 | 바이너리 뉴럴 네트워크 제어 방법 및 바이너리 뉴럴 네트워크 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20240095659A (ko) | 2024-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mittal et al. | A survey of techniques for optimizing deep learning on GPUs | |
CN110689126B (zh) | 一种用于执行神经网络运算的装置 | |
US10943167B1 (en) | Restructuring a multi-dimensional array | |
US11775430B1 (en) | Memory access for multiple circuit components | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
US20190236049A1 (en) | Performing concurrent operations in a processing element | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
JP2021532437A (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
US12093801B1 (en) | Neural network processing based on subgraph recognition | |
CN113792621B (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN114429214A (zh) | 运算单元、相关装置和方法 | |
CN111831359A (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN108875914B (zh) | 对神经网络数据进行预处理和后处理的方法和装置 | |
CN111831355A (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN114626516A (zh) | 一种基于对数块浮点量化的神经网络加速系统 | |
CN115668222A (zh) | 一种神经网络的数据处理方法及装置 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN115186796A (zh) | 基于fpga的卷积神经网络自动部署方法 | |
WO2024128372A1 (ko) | 차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 | |
CN113254070B (zh) | 加速单元、片上系统、服务器、数据中心和相关方法 | |
CN116523045B (zh) | 一种面向多芯粒芯片的深度学习推理模拟器 | |
CN112732638B (zh) | 基于ctpn网络的异构加速系统及方法 | |
WO2021020848A2 (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: 22968632 Country of ref document: EP Kind code of ref document: A1 |