KR20210023591A - Recognition System based on Deep Learning - Google Patents

Recognition System based on Deep Learning Download PDF

Info

Publication number
KR20210023591A
KR20210023591A KR1020190104005A KR20190104005A KR20210023591A KR 20210023591 A KR20210023591 A KR 20210023591A KR 1020190104005 A KR1020190104005 A KR 1020190104005A KR 20190104005 A KR20190104005 A KR 20190104005A KR 20210023591 A KR20210023591 A KR 20210023591A
Authority
KR
South Korea
Prior art keywords
unit
processing unit
deep learning
memory
input
Prior art date
Application number
KR1020190104005A
Other languages
Korean (ko)
Inventor
조인성
Original Assignee
(주)나래컴즈
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 (주)나래컴즈 filed Critical (주)나래컴즈
Priority to KR1020190104005A priority Critical patent/KR20210023591A/en
Publication of KR20210023591A publication Critical patent/KR20210023591A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

The present invention relates to a deep learning-based recognition system. The deep learning-based recognition system comprises: a deep learning calculation unit that performs a deep learning calculation on a received input and outputs an output value to the outside. The deep learning calculation unit comprises: an input transfer unit for receiving the input, and distributing and outputting the received input; a memory unit including at least one memory for storing data from the input transfer unit and distributing and outputting the data; a processing unit including at least one processing unit that performs an operation necessary for deep learning calculation based on the data from the memory unit; and an output transfer unit for receiving an output value of the processing unit from the memory unit and outputting the same to the outside. Accordingly, the present invention may improve convolutional neural network performance through a three-dimensional batch of the processing unit.

Description

딥러닝 기반 인식 시스템 {Recognition System based on Deep Learning}Recognition System based on Deep Learning}

본 발명은 딥러닝 기반 인식 시스템에 관한 것으로, 상세하게는 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 성능을 향상시킬 수 있도록 구현된 딥러닝 기반 인식 시스템에 관한 것이다.The present invention relates to a deep learning-based recognition system, and more particularly, to a deep learning-based recognition system implemented to improve performance of a convolutional neural network through three-dimensional arrangement of processing units.

인공지능 기술 중 하나인 딥러닝(Deep Learning)은 인간의 신경망을 모델링한 딥 뉴럴 네트워크(Deep Neural Network)에 기반을 둔 기계학습(Machine Learning) 방법론이다. 이러한 딥러닝은 현재 이미지 인식, 자연어 처리, 목소리 인식, 게임 등 다양한 분야에서 널리 사용되고 있다. 딥러닝은 기존 인공지능 기술보다 정확성이 높다는 장점이 있다. 하지만, 이러한 장점을 있는 반면, 계산과정에서 막대한 연산량을 필요로 하는 단점이 있다. 따라서, 계산과정에서 막대한 연산량이 필요하다는 단점을 보완하기 위하여, 다양한 하드웨어 기반의 딥러닝 가속기가 설계되고 있고, 이러한 하드웨어 기반 가속기는 딥러닝 계산에 특화되어 있어 빠른 연산을 가능하게 한다. 또한, 하드웨어 기반 가속기는 구조가 단순하여 일반적인 프로세서에 비해 크기 및 에너지 소비에서 우위를 가진다. 일반적으로, 딥러닝 가속기들은 작은 계산 단위인 프로세싱 유닛(Processing Unit)을 다수 포함하여 계산 성능을 높인다. 하지만, 프로세싱 유닛의 수가 증가할수록 메모리 대역폭(Memory Bandwidth), 메모리 접근 속도(Memory access Latency), 프로세싱 유닛 간 통신 속도 등이 병목지점이 된다. 이러한 병목지점으로 인해 가속기의 속도 향상에 한계를 보인다는 문제점이 있다.Deep Learning, one of artificial intelligence technologies, is a machine learning methodology based on a deep neural network modeling a human neural network. Such deep learning is currently widely used in various fields such as image recognition, natural language processing, voice recognition, and games. Deep learning has the advantage of being more accurate than existing artificial intelligence technologies. However, while having these advantages, there is a disadvantage that requires an enormous amount of computation in the calculation process. Therefore, in order to compensate for the disadvantage of requiring an enormous amount of computation in the computation process, various hardware-based deep learning accelerators are being designed, and these hardware-based accelerators are specialized for deep learning computations, thereby enabling fast computation. In addition, the hardware-based accelerator has an advantage in size and energy consumption compared to general processors due to its simple structure. In general, deep learning accelerators include a large number of processing units, which are small computation units, to improve computation performance. However, as the number of processing units increases, memory bandwidth, memory access latency, and communication speed between processing units become bottlenecks. There is a problem in that the speed improvement of the accelerator is limited due to this bottleneck.

따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은, 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 성능을 향상시킬 수 있도록 구현된 딥러닝 기반인식 시스템에 관한 것이다. Accordingly, the present invention has been proposed to solve the problems of the prior art, and an object of the present invention is a deep learning implemented to improve the performance of a convolutional neural network through a three-dimensional arrangement of processing units. It is about the base recognition system.

상기와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 딥러닝 기반 인식 시스템은, 수신되는 입력에 대해 딥러닝 계산을 수행하여 출력값을 외부로 출력하는 딥러닝 계산부를 포함하는 딥러닝 기반 인식 시스템에 있어서, 상기 딥러닝 계산부는, 상기 입력을 수신하고, 수신한 입력을 분배하여 출력하는 입력 전달부; 상기 입력전달부로부터의 데이터를 저장하는 한편, 상기 데이터를 분배하여 출력하는 적어도 하나 이상의 메모리를 포함하는 메모리부; 상기 메모리부로부터의 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 적어도 하나 이상의 프로세싱 유닛을 포함하는 프로세싱 유닛부; 및 상기 프로세싱 유닛으로부터의 출력값을 상기 메모리부로부터 제공받아 외부로 출력하는 출력 전달부를 포함한다.A deep learning-based recognition system according to an embodiment of the present invention for achieving the above object includes a deep learning calculation unit that performs a deep learning calculation on a received input and outputs an output value to the outside. The deep learning calculation unit comprises: an input transmission unit for receiving the input, distributing and outputting the received input; A memory unit including at least one memory for storing data from the input transmission unit and distributing and outputting the data; A processing unit unit including at least one processing unit that performs an operation required for deep learning calculation based on data from the memory unit; And an output transmission unit receiving the output value from the processing unit from the memory unit and outputting the output value to the outside.

상기 딥러닝 계산부는 다수의 메모리부를 포함하고, 상기 입력 전달부는 수신한 입력을 분배하여 상기 다수의 메모리부 각각에 출력한다.The deep learning calculation unit includes a plurality of memory units, and the input transmission unit distributes the received input and outputs it to each of the plurality of memory units.

상기 다수의 메모리부는 서로 연결되고, 전단의 메모리부는 상기 입력 전달부로부터 수신한 데이터의 일부를 후단의 메모리부로 제공한다. 상기 후단의 메모리부는 상기 전단의 메모리부로부터 제공되는 데이터와 상기 입력 전달부로부터의 데이터를 합한 데이터를 분배하여 자신과 연결된 프로세싱 유닛부로 출력한다.The plurality of memory units are connected to each other, and a front memory unit provides some of the data received from the input transmission unit to a rear memory unit. The rear-stage memory unit distributes data obtained by combining data provided from the front-end memory unit and data from the input transmission unit and outputs the data to a processing unit connected thereto.

상기 메모리부는 다수의 메모리를 포함하고, 상기 프로세싱 유닛부는 다수의 프로세싱 유닛을 포함하며, 상기 다수의 메모리 각각은 상기 다수의 프로세싱 유닛과 서로 대응하여 연결되고, 서로 대응하는 메모리와 프로세싱 유닛 사이에 데이터 송수신이 이루어진다.The memory unit includes a plurality of memories, and the processing unit unit includes a plurality of processing units, each of the plurality of memories being connected to each other in correspondence with the plurality of processing units, and data between the corresponding memory and the processing unit Sending and receiving is done.

상기 프로세싱 유닛부를 구성하는 다수의 프로세시 유닛은 3차원 구조로 배치된다. 상기 딥러닝 계산부는 상기 메모리부와 연결되는 다수의 프로세싱 유닛부를 포함하고, 상기 다수의 프로세싱 유닛부 각각에 포함되는 프로세싱 유닛은 자신이 포함된 프로세싱 유닛부와 인접하는 프로세싱 유닛부 내 같은 차원의 하나의 프로세싱 유닛과 데이터를 송수신한다.A plurality of processing units constituting the processing unit unit are arranged in a three-dimensional structure. The deep learning calculation unit includes a plurality of processing unit units connected to the memory unit, and a processing unit included in each of the plurality of processing unit units is one of the same dimension within a processing unit unit adjacent to the processing unit unit including itself. It transmits and receives data to and from the processing unit of

상기 다수의 프로세싱 유닛부 중 전단의 프로세싱 유닛부에 포함된 프로세싱 유닛은 후단의 프로세싱 유닛부에 포함되어 자신과 데이터를 송수신하는 프로세싱 유닛으로 상기 메모리부로부터 수신한 데이터의 일부를 제공한다.Among the plurality of processing unit units, a processing unit included in a front processing unit unit is included in a processing unit unit at a later stage to transmit and receive data to and from the processing unit unit, and provides a part of the data received from the memory unit.

상기 후단의 프로세싱 유닛부의 프로세싱 유닛은 상기 전단의 프로세싱 유닛부의 프로세싱 유닛으로부터의 데이터와 상기 메모리부로부터의 데이터를 합한 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행한다.The processing unit of the later processing unit unit performs an operation necessary for deep learning calculation based on data obtained by adding data from the processing unit of the previous processing unit unit and the data from the memory unit.

상기 입력이 행렬 단위로 구획될 수 있는 이미지인 경우, 상기 입력 전달부는 상기 이미지의 첫 번째 행부터 순차적으로 임의의 개수의 행의 이미지를 첫 번째 메모리부로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 이미지 중 첫 번째 열부터 순차적으로 임의의 개수의 열의 이미지를 첫 번째 프로세싱 유닛부로 제공하한다.When the input is an image that can be partitioned in a matrix unit, the input transfer unit provides an image of an arbitrary number of rows sequentially from the first row of the image to the first memory unit, and the first memory unit transfers the input The images of an arbitrary number of rows are sequentially provided from the first row among the images from the unit to the first processing unit unit.

상기 첫 번째 메모리부는 상기 첫 번째 프로세싱 유닛부로 제공된 이미지 이후의 열의 이미지를 두 번째 프로세싱 유닛부로 제공하고, 상기 첫 번째 프로세싱 유닛부는 상기 첫 번째 메모리부로부터의 열의 이미지 중 일부열의 이미지를 상기 두 번째 프로세싱 유닛부로 제공한다.The first memory unit provides an image of a row after the image provided to the first processing unit unit to a second processing unit unit, and the first processing unit unit processes an image of a partial row of images from the first memory unit to the second processing unit. It is provided as a unit.

상기 입력 전달부는 상기 첫 번째 메모리부로 제공된 이미지 이후의 행의 이미지를 두 번째 메모리부로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 행의 이미지 중 일부의 행의 이미지를 상기 두 번째 메모리부로 제공한다.The input transfer unit provides an image of a row after the image provided to the first memory unit to a second memory unit, and the first memory unit transfers an image of some of the row images from the input transfer unit to the second memory unit. to provide.

이와 같은 본 발명의 실시 예에 따르면, 하드웨어 기반 딥러닝 가속기 장치 내의 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 데이터 공유의 특성, 계산 특성을 활용할 수 있다. According to such an embodiment of the present invention, it is possible to utilize data sharing characteristics and computation characteristics of a convolutional neural network through a three-dimensional arrangement of processing units in a hardware-based deep learning accelerator device.

또한, 적합한 메모리 배치와 프로세싱 유닛 간 통신 네트워크의 구성을 통해 프로세싱 유닛이 최대한의 성능을 발휘할 수 있도록 한다. 종래에는 프로세싱 유닛의 수가 증가하는 경우, 메모리 대역폭(Memory Bandwidth), 메모리 접근 속도(Memory access Latency), 프로세싱 유닛 간 통신 속도 등이 병목지점이 되어, 가속기의 속도 향상에 한계를 보였으나, 이러한 방법을 활용함으로써, 가속기 내부의 프로세싱 유닛의 개수를 증가에 따른 성능향상을 이끌어 낼 수 있다.In addition, it is possible to maximize the performance of the processing unit through appropriate memory arrangement and configuration of a communication network between processing units. Conventionally, when the number of processing units increases, memory bandwidth, memory access latency, communication speed between processing units, etc., become bottlenecks, showing limitations in improving the speed of the accelerator. By utilizing, it is possible to improve the performance by increasing the number of processing units inside the accelerator.

본 발명을 바탕으로 사용자는 하드웨어 기반 딥러닝 가속기 장치를 스마트폰, 고정/이동 카메라, 로봇 등에 장착하여 이미지 분류 속도를 향상시키고 전체적인 장치의 성능을 향상시킬 수 있는 이점이 있다.Based on the present invention, the user has the advantage of improving the image classification speed and improving the performance of the overall device by installing a hardware-based deep learning accelerator device on a smartphone, a fixed/mobile camera, or a robot.

도 1은 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 일례를 도시한 구성도이다. 도 2는 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 딥러닝 계산부의 구성을 도시한 도면이다. 도 3은 도 2의 딥러닝 계산부의 구성 중 메모리부와 프로세싱 유닛부의 입체 연결 구조를 도시한 도면이다. 도 4는 도 3의 A 영역의 메모리부과 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다. 도 5는 도 3의 B 영역의 메모리부와 프로세싱 유닛부의 연결 구조를 입체적으로 도시한 도면이다. 도 6은 도 5의 메모리부와 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다. 도 7은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 입력의 하나의 행을 처리하는 과정에서의 메모리와 프로세싱 유닛 사이의 데이터 할당 방법을 설명하기 위한 도면이다. 도 8은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 이전 입력된 행 다음의 행을 처리하는 과정에서 메모리에 데이터를 할당하는 방법을 설명하기 위한 도면이다. 도 9는 본 발명의 딥러닝 기반 인식 시스템의 딥러닝 연산에 이용되는 가중치를 할당하는 방법을 설명하기 위한 도면이다.1 is a block diagram showing an example of a deep learning-based recognition system according to a preferred embodiment of the present invention. 2 is a diagram showing the configuration of a deep learning calculation unit of a deep learning-based recognition system according to a preferred embodiment of the present invention. FIG. 3 is a diagram illustrating a three-dimensional connection structure of a memory unit and a processing unit unit in the configuration of the deep learning calculation unit of FIG. 2. FIG. 4 is a plan view illustrating a connection structure of a memory unit and a processing unit unit in area A of FIG. 3. FIG. 5 is a diagram illustrating a connection structure of a memory unit and a processing unit unit in a region B of FIG. 3 in three dimensions. 6 is a plan view illustrating a connection structure of a memory unit and a processing unit unit of FIG. 5. FIG. 7 is a diagram for explaining a data allocation method between a memory and a processing unit in a process of processing one row of an input when the deep learning-based recognition system of the present invention performs a deep learning operation on an input . FIG. 8 is a diagram illustrating a method of allocating data to a memory in a process of processing a row following a previously input row when the deep learning-based recognition system of the present invention performs a deep learning operation on an input. 9 is a diagram for explaining a method of allocating weights used for deep learning operations in the deep learning-based recognition system of the present invention.

본문에 개시되어 있는 본 발명의 실시 예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시 예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시 예들에 한정되는 것으로 해석되어서는 안 된다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.With respect to the embodiments of the present invention disclosed in the text, specific structural or functional descriptions are exemplified for the purpose of describing the embodiments of the present invention only, and the embodiments of the present invention may be implemented in various forms. It should not be construed as being limited to the described embodiments. In the present invention, various modifications may be made and various forms may be applied, and specific embodiments will be illustrated in the drawings and described in detail in the text. However, this is not intended to limit the present invention to a specific form disclosed, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 “~사이에”와 “바로 ~사이에” 또는 “~에 이웃하는”과 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.Terms such as first and second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle. Other expressions that describe the relationship between components, such as “between” and “just between” or “neighbor to” and “directly adjacent to” should be interpreted as well.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “포함하다” 또는 “가지다” 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate the existence of disclosed features, numbers, steps, actions, components, parts, or a combination thereof, but one or more other features or numbers, It is to be understood that the presence or addition of steps, actions, components, parts, or combinations thereof, does not preclude the possibility of preliminary exclusion. Unless otherwise defined, all terms used herein including technical or scientific terms have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.

한편, 어떤 실시 예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다. 이하, 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템에 대하여 첨부된 도면을 참조하여 상세하게 설명한다.Meanwhile, when a certain embodiment can be implemented differently, a function or operation specified in a specific block may occur differently from the order specified in the flowchart. For example, two consecutive blocks may actually be executed at the same time, or the blocks may be executed in reverse, depending on a related function or operation. Hereinafter, a deep learning-based recognition system according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 일례를 도시한 구성도이다. 도 1을 참조하면, 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템(100)은 입력부(110), 제어부(130), 딥러닝 계산부(150) 및 출력부(170)로 구성될 수 있다. 상기 입력부(110)는 외부에서 분류의 대상이 되는 입력을 수신하는 구성으로서, 수신한 입력을 딥러닝 계산부(150)로 제공한다.1 is a block diagram showing an example of a deep learning-based recognition system according to a preferred embodiment of the present invention. Referring to FIG. 1, a deep learning-based recognition system 100 according to a preferred embodiment of the present invention may include an input unit 110, a control unit 130, a deep learning calculation unit 150, and an output unit 170. have. The input unit 110 is configured to receive an input to be classified from the outside, and provides the received input to the deep learning calculation unit 150.

특히, 상기 입력부(110)는 분류의 대상이 되는 입력값의 매트릭스와 기 학습된 가중치 정보를 외부로부터 수신하여 딥러닝 계산부(150)로 제공한다. 예를 들어, 상기 입력부(110)는 카메라와 같은 외부 영상 기기, 통신장치나 파일시스템과 같은 데이터 전송장치 등일 수 있다.In particular, the input unit 110 receives a matrix of input values to be classified and pre-learned weight information from the outside and provides them to the deep learning calculation unit 150. For example, the input unit 110 may be an external imaging device such as a camera, a data transmission device such as a communication device or a file system, and the like.

상기 제어부(130)는 딥러닝 기반 인식 시스템(100)의 전반적인 제어를 수행하며, 특히, 데이터 전송, 계산수행, 출력 전송 등과 같이 딥러닝 계산부(150)의 동작을 제어한다. 예를 들어, 상기 제어부(130)는 외부 컴퓨팅 시스템 혹은 임베디드 시스템 프로세싱 코어 등일 수 있다. 상기 딥러닝 계산부(150)는 입력부(110)로부터의 입력을 수신하여 딥러닝 분류 결과를 계산한다. 상기 딥러닝계산부(150)에 대한 구체적인 설명은 후술하도록 한다.The control unit 130 performs overall control of the deep learning-based recognition system 100, and in particular, controls operations of the deep learning calculation unit 150 such as data transmission, calculation performance, and output transmission. For example, the control unit 130 may be an external computing system or an embedded system processing core. The deep learning calculation unit 150 receives an input from the input unit 110 and calculates a deep learning classification result. A detailed description of the deep learning calculation unit 150 will be described later.

상기 출력부(170)는 딥러닝 계산부(150)에 의해 계산된 결과로 나온 출력값를 외부로 전달한다. 상기 출력부(170)는 외부 컴퓨터 시스템, 혹은 LED 등과 같은 외부 디스플레이 시스템 등일 수 있다. 도 2는 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 딥러닝 계산부의 구성을 도시한 도면이다. 도 2에 도시된 딥러닝 계산부(200)는 도 1의 딥러닝 계산부(150)에 적용될 수 있는 것으로서, 입력 전달부(210), 메모리부(220), 프로세싱 유닛부(230), 출력 전달부(240), 제어부(250)로 구성될 수 있다. 이때, 상기 딥러닝 계산부(200)는 다수의 메모리부(220) 및 다수의 프로세싱 유닛부(230)로 구성될 수 있다. 그리고, 상기 딥러닝 계산부(200) 내 구성들은 인터커넥트 네트워크(260)에 의해 연결된다. 상기 입력 전달부(210)는 도 1의 입력부(110)를 통해 제공되는 입력을 나누어 다수의 메모리부(220)로 분배하는 역할을 한다.The output unit 170 transmits an output value obtained as a result calculated by the deep learning calculation unit 150 to the outside. The output unit 170 may be an external computer system or an external display system such as an LED. 2 is a diagram showing the configuration of a deep learning calculation unit of a deep learning-based recognition system according to a preferred embodiment of the present invention. The deep learning calculation unit 200 shown in FIG. 2 is applicable to the deep learning calculation unit 150 of FIG. 1, and includes an input transmission unit 210, a memory unit 220, a processing unit unit 230, and an output. It may be composed of a delivery unit 240 and a control unit 250. In this case, the deep learning calculation unit 200 may include a plurality of memory units 220 and a plurality of processing unit units 230. In addition, the components in the deep learning calculation unit 200 are connected by an interconnect network 260. The input transmission unit 210 serves to divide the input provided through the input unit 110 of FIG. 1 and distribute it to a plurality of memory units 220.

또한, 상기 입력 전달부(210)는 이전 단계의 딥러닝 계산부의 수행 결과로 출력되는 결과값을 출력 전달부(240)에서 전달받아 메모리부(220)로 제공할 수 있다. 상기 메모리부(220)는 입력 전달부(210)로부터 입력값에 대한 정보를 제공받아, 입력값의 일부를 저장한다. 이때, 상기 메모리부(220)는 다수의 메모리(221)로 구성될 수 있다. 그리고, 상기 메모리부(220) 내 메모리(221)는 제어부(250)의 명령에 따라, 저장하고 있는 값의 이루를 프로세싱 유닛부(230)의 프로세싱 유닛(231)의 내부 저장소에 전송한다.In addition, the input transmission unit 210 may receive a result value output as a result of the execution of the deep learning calculation unit in the previous step from the output transmission unit 240 and provide it to the memory unit 220. The memory unit 220 receives information on an input value from the input transmission unit 210 and stores a part of the input value. In this case, the memory unit 220 may include a plurality of memories 221. Further, the memory 221 in the memory unit 220 transmits the stored values to the internal storage of the processing unit 231 of the processing unit unit 230 according to a command of the control unit 250.

또한, 상기 메모리부(220)는 프로세싱 유닛부(230)에 의해 계산된 결과를 받아, 출력 전달부(240)로 제공한다. 상기 메모리부(220)의 내부 구조 및 프로세싱 유닛부(230)와의 연결 구조는 후술하도록 한다. 상기 프로세싱 유닛부(230)는 메모리부(220)로부터 입력값의 일부를 제공받고, 이를 바탕으로 딥러닝 계산에 필요한 연산을 수행한다. 이때, 상기 프로세싱 유닛부(230)는 다수의 프로세싱 유닛(231)으로 구성될 수 있다. 그리고, 상기 프로세싱 유닛부(230)는 인터커넥트 네트워크(260)를 통해 다른 프로세싱 유닛부로 자신의 저장소에 저장된 값의 일부를 전송한다. 상기 프로세싱 유닛부(230)의 내부 구조 및 메모리부(220)와의 연결 구조는 후술하도록 한다. 상기 출력 전달부(240)는 프로세싱 유닛부(230)로부터의 출력값을 메모리부(220)를 통해 전달받아, 도 1의 출력부(170)로 전송한다.In addition, the memory unit 220 receives the result calculated by the processing unit unit 230 and provides it to the output transmission unit 240. The internal structure of the memory unit 220 and a connection structure with the processing unit unit 230 will be described later. The processing unit unit 230 receives a part of the input value from the memory unit 220 and performs an operation required for deep learning calculation based on this. In this case, the processing unit unit 230 may include a plurality of processing units 231. Further, the processing unit unit 230 transmits a part of the value stored in its storage to another processing unit unit through the interconnect network 260. The internal structure of the processing unit unit 230 and a connection structure with the memory unit 220 will be described later. The output transmission unit 240 receives the output value from the processing unit unit 230 through the memory unit 220 and transmits the output value to the output unit 170 of FIG. 1.

또한, 상기 출력 전달부(240)는, 딥러닝 계산부(200)의 구조에 따라, 결과값을 메모리부(220)로 전송할 수도 있다. 상기 제어부(250)는 딥러닝 계산부(200)의 데이터 전송, 계산의 시작과 종료에 대한 명령을 출력한다. 또한, 상기 제어부(250)는 프로세싱 유닛부(230)의 계산 완료 여부를 기초로 하여 데이터 값의 동기화를 맞춰주는 역할도 수행한다. 상기 인터커넥트 네트워크(260)는 데이터 소스에 해당하는 부분의 저장소에서 데이터를 전송하면, 목적지에 해당하는 부분의 저장소에 데이터를 저장한다.In addition, the output transmission unit 240 may transmit a result value to the memory unit 220 according to the structure of the deep learning calculation unit 200. The control unit 250 outputs commands for data transmission and start and end of calculation of the deep learning calculation unit 200. In addition, the control unit 250 performs a role of synchronizing data values based on whether the processing unit unit 230 has completed the calculation. When the interconnect network 260 transmits data from a storage corresponding to a data source, the interconnect network 260 stores the data in a storage corresponding to a destination.

도 3은 도 2의 딥러닝 계산부의 구성 중 메모리부와 프로세싱 유닛부의 입체 연결 구조를 도시한 도면이고, 도 4는 도 3의 A 영역의 메모리부과 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다. 도 3 및 4를 참조하면, 메모리부(220) 및 프로세싱 유닛부(230)는 각각 다수의 메모리(221)와 프로세싱 유닛(231)로 구성될 수 있다. 즉, 복수의 프로세싱 유닛(231이 모여 하나의 프로세싱 유닛부(230)를 구성하고, 복수의 프로세싱 유닛부(230)가 모여 하나의 프로세싱 유닛 집합체(270)를 구성하며, 다수의 프로세싱 유닛 집합체(270)가 모여 프로세싱 유닛 매트릭스를 구성한다. 그리고, 하나의 메모리부(220)와 하나의 프로세싱 유닛 집합체(270)가 한 쌍을 이루는 형태로 구성된다. 한편, 상기 프로세싱 유닛 집합체(270)의 개수와 각 프로세싱 유닛 집합체(280)에 포함된 프로세싱 유닛부(230)의 개수는 딥러닝 계산부(200)의 물리적 한계에 의해 결정된다. 또한, 상기 프로세싱 유닛부(230)의 구조는 입력 이미지의 차원에 의해 결정된다. 예를 들어, 컬러 이미지를 분류하는 딥러닝 계산부의 경우, 이미지의 하나의 픽셀마다 RGB 값의 3개 값이 존재하므로, 프로세싱 유닛부(230)는 서로 다른 차원(혹은 층)에 위치하는 3개의 프로세싱 유닛(231)으로 구성된다. 그리고, 상기 프로세싱 유닛 집합체(280)를 구성하는 프로세싱 유닛부(230)은 인접한 프로세싱 유닛부과 데이터를 송수신한다. 이때, 상기 프로세싱 유닛부(230) 내 프로세싱 유닛(230)은 동일한 프로세싱 유닛 집합체(270) 내 인접한 다른 프로세싱 유닛부(230)의 프로세싱 유닛(231)과 데이터를 송수신한다.FIG. 3 is a diagram illustrating a three-dimensional connection structure of a memory unit and a processing unit unit among the configuration of the deep learning calculation unit of Fig. 2, and Fig. 4 is a plan view illustrating a connection structure of a memory unit and a processing unit unit in area A of FIG. 3. . 3 and 4, the memory unit 220 and the processing unit unit 230 may include a plurality of memories 221 and processing units 231, respectively. That is, a plurality of processing units 231 are gathered to form one processing unit unit 230, a plurality of processing unit units 230 are gathered to form one processing unit assembly 270, and a plurality of processing unit assemblies ( The processing unit matrix 270 is gathered together to form a processing unit matrix, and one memory unit 220 and one processing unit assembly 270 are formed as a pair. On the other hand, the number of processing unit assemblies 270 is formed. And the number of processing unit units 230 included in each processing unit assembly 280 is determined by the physical limit of the deep learning calculation unit 200. In addition, the structure of the processing unit unit 230 is the structure of the input image. For example, in the case of a deep learning calculation unit that classifies color images, since three values of RGB values exist for each pixel of the image, the processing unit unit 230 has different dimensions (or layers). ) Is composed of three processing units 231. And, the processing unit unit 230 constituting the processing unit assembly 280 transmits and receives data to and from an adjacent processing unit unit. The processing unit 230 in the 230) transmits and receives data to and from the processing unit 231 of another processing unit unit 230 adjacent to the same processing unit assembly 270.

특히, 상기 프로세싱 유닛(230)은 자신이 포함된 프로세싱 유닛 집합(270)과 인접한 프로세싱 유닛 집합 내 프로세싱 유닛 중 자신과 동일한 차원에 위치하는 프로세싱 유닛과 데이터를 송수신한다. 도 3 및 4에 도시된 바와 같이, 상기 메모리부(220)는 프로세싱 유닛부(230)와 데이터를 송수신하도록 구성된다.In particular, the processing unit 230 transmits/receives data to and from a processing unit located in the same dimension as the processing unit in the processing unit set adjacent to the processing unit set 270 in which it is included. 3 and 4, the memory unit 220 is configured to transmit and receive data to and from the processing unit unit 230.

이때, 상기 메모리부(220)는 다수의 메모리(221)로 구성될 수 있는데, 메모리부(220)를 구성하는 메모리(221)의 수는 프로세싱 유닛부(230)를 구성하는 프로세싱 유닛(231)의 개수와 대응한다. 즉, 상기 메모리부(220)의 구성은 프로세싱 유닛부(270) 내 프로세싱 유닛(231)의 개수와 관련된다. 또한, 상기 메모리부(220) 내 메모리(221)는 인접한 메모리와 데이터를 송수수한다.In this case, the memory unit 220 may be composed of a plurality of memories 221, and the number of the memories 221 constituting the memory unit 220 is the processing unit 231 constituting the processing unit unit 230 Corresponds to the number of. That is, the configuration of the memory unit 220 is related to the number of processing units 231 in the processing unit unit 270. In addition, the memory 221 in the memory unit 220 transmits/receives data to and from adjacent memories.

그리고, 상기 메모리부(220) 내 메모리들 중 하나는 적어도 하나, 예를 들면 메모리 1은 도 2의 입력 전달부(210) 및 출력 전달부(240)와 연결되어, 데이터를 송수신한다. 따라서, 도 4에 도시된 바와 같이, 메모리부(220)를 구성하는 다수의 메모리(221)는 메모리부(220) 내 인접한 메모리와 데이터를 송수신하며, 프로세싱 유닛부(230)를 구성하는 다수의 프로세싱 유닛(231)은 대응하는 메모리(221)와 데이터를 송수신한다.In addition, at least one of the memories in the memory unit 220, for example, memory 1 is connected to the input transmission unit 210 and the output transmission unit 240 of FIG. 2 to transmit and receive data. Accordingly, as shown in FIG. 4, a plurality of memories 221 constituting the memory unit 220 transmit and receive data to and from adjacent memories in the memory unit 220, and a plurality of memories constituting the processing unit unit 230 The processing unit 231 transmits and receives data to and from the corresponding memory 221.

이와 같은 구성에 따라, 상기 메모리부(220)는 입력 전달부(210)로부터 입력값에 대한 정보를 제공받아 저장하고, 저장한 입력값을 대응하는 프로세싱 유닛 집합체(270)로 제공한다. 구체적으로, 상기 메모리부(220)를 구성하는 다수의 메모리(221)가 입력 전달부(210)로부터의 입력값을 저장하고, 저장한 입력값을 대응하는 프로세싱 유닛(212)으로 제공한다.According to this configuration, the memory unit 220 receives and stores information on an input value from the input transmission unit 210 and provides the stored input value to the corresponding processing unit assembly 270. Specifically, a plurality of memories 221 constituting the memory unit 220 store input values from the input transfer unit 210 and provide the stored input values to the corresponding processing unit 212.

그리고, 상기 프로세싱 유닛(231)은 대응하는 메모리(221)로부터 제공되는 입력값을 바탕으로 연산 수행한 결과값을 대응하는 메모리(221)로 제공한다. 이후, 상기 프로세싱 유닛(231)로부터 제공된 결과값은 하나의 메모리(221), 예를 들면 메모리 1로 통합되고, 메모리 1은 통합된 결과값을 출력 전달부(240)로 제공된다. 도 5는 도 3의 B 영역의 메모리부와 프로세싱 유닛부의 연결 구조를 입체적으로 도시한 도면이고, 도 6은 도 5의 메모리부와 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다.Further, the processing unit 231 provides a result value of an operation based on an input value provided from a corresponding memory 221 to a corresponding memory 221. Thereafter, the result value provided from the processing unit 231 is integrated into one memory 221, for example, memory 1, and the memory 1 provides the integrated result value to the output transfer unit 240. FIG. 5 is a three-dimensional view showing a connection structure of a memory unit and a processing unit unit in area B of FIG. 3, and FIG. 6 is a plan view showing a connection structure of a memory unit and a processing unit unit of FIG. 5.

도 5 및 도 6을 참조하면, 메모리부(220)가 3개의 메모리(221a, 221b, 221c)로 구성되고, 메모리부(220)에 3개의 프로세싱 유닛부(230a, 230b, 230c)가 구성되며, 3개의 프로세싱 유닛부(230a, 230b, 230c)는 각각 3개의 프로세싱 유닛으로 구성된다. 즉, 제 1 프로세싱 유닛부(230a)는 제 1 내지 제 3 프로세싱 유닛(231a-1, 231a-2, 231a-3)으로 구성되고, 제 2 프로세싱 유닛부(230b)는 제 4 내지 6 프로세싱 유닛(231b-1, 231b-2, 231b-3)으로 구성되며, 제 3 프로세싱 유닛부(230c)는 제 7 내지 9 프로세싱 유닛(231c-1, 231c-2, 231c-3)으로 구성된다. 이때, 하나의 프로세싱 유닛부를 구성하는 다수의 프로세싱 유닛은 서로 직접적으로 연결되지 않고, 인접하는 다른 프로세싱 유닛부 내 동일한 차원에 위치하는 프로세싱 유닛과 직접적으로 연결된다. 즉, 제 1 프로세싱 유닛부(230a) 내 제 1 프로세싱 유닛(231a-1)은 제 1 프로세싱 유닛부(230a)와 인접하는 제 2 프로세싱 유닛부(230b) 내 제 4 프로세싱 유닛(231b-1)과 연결된다.5 and 6, the memory unit 220 includes three memories 221a, 221b, and 221c, and the memory unit 220 includes three processing unit units 230a, 230b, and 230c. , The three processing unit units 230a, 230b, and 230c are each composed of three processing units. That is, the first processing unit unit 230a is composed of first to third processing units 231a-1, 231a-2, 231a-3, and the second processing unit unit 230b is the fourth to sixth processing units. (231b-1, 231b-2, 231b-3), and the third processing unit unit 230c is composed of seventh to ninth processing units 231c-1, 231c-2, and 231c-3. In this case, a plurality of processing units constituting one processing unit unit are not directly connected to each other, but are directly connected to processing units located at the same dimension in other adjacent processing unit units. That is, the first processing unit 231a-1 in the first processing unit unit 230a is the fourth processing unit 231b-1 in the second processing unit unit 230b adjacent to the first processing unit unit 230a. Is connected with.

그리고, 제 2 프로세싱 유닛부(230b) 내 제 4 프로세싱 유닛(231b-1)은 제 2 프로세싱 유닛부(230b)와 인접하는 제 3 프로세싱 유닛부(230c) 내 제 7 프로세싱 유닛(231c-1)과 연결된다. 그리고, 제 1 프로세싱 유닛(231a-1), 제 4 프로세싱 유닛(231b-1) 및 제 7 프로세싱 유닛(231c-1)은 제 1 메모리(221a)를 공유한다. 마찬가지로, 제 1 프로세싱 유닛부(230a) 내 제 2 프로세싱 유닛(231a-2)은 제 1 프로세싱 유닛부(230a)와 인접하는 제 2 프로세싱 유닛부(230b) 내 제 5 프로세싱 유닛(231b-2)과 연결된다. 그리고, 제 2 프로세싱 유닛부(230b) 내 제 5 프로세싱 유닛(231b)은 제 2 프로세 유닛부(230b)와 인접하는 제 3 프로세싱 유닛부(230c) 내 제 8 프로세싱 유닛(231c-2)과 연결된다. 그리고, 제 2 프로세싱 유닛(231a-2), 제 5 프로세싱 유닛(231b-2) 및 제 8 프로세싱 유닛(231c-2)은 제 2 메모리(221b)를 공유한다.In addition, the fourth processing unit 231b-1 in the second processing unit unit 230b is a seventh processing unit 231c-1 in the third processing unit unit 230c adjacent to the second processing unit unit 230b. Is connected with. In addition, the first processing unit 231a-1, the fourth processing unit 231b-1, and the seventh processing unit 231c-1 share the first memory 221a. Similarly, the second processing unit 231a-2 in the first processing unit unit 230a is the fifth processing unit 231b-2 in the second processing unit unit 230b adjacent to the first processing unit unit 230a. Is connected with. In addition, the fifth processing unit 231b in the second processing unit unit 230b includes an eighth processing unit 231c-2 in the third processing unit unit 230c adjacent to the second processing unit unit 230b. Connected. In addition, the second processing unit 231a-2, the fifth processing unit 231b-2, and the eighth processing unit 231c-2 share the second memory 221b.

본 발명에 있어서 한 쌍의 이루는 메모리부(220)와 프로세싱 유닛 집합체(270)는 모두 상술한 바와 같은 구조로 이루어진다. 이하에서는 도 7 내지 9를 참조하여, 본 발명의 딥러닝 기반 인식 시스템이 딥러닝 연산을 수행하는 경우의 메모리 및 프로세싱 유닛 사이의 데이터 할당 방법에 대해서 좀 더 살펴보기로 한다. 도 7은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 입력의 하나의 행을 처리하는 과정에서의 메모리와 프로세싱 유닛 사이의 데이터 할당 방법을 설명하기 위한 도면이다. 도 7에 도시된 바와 같이, 입력 이미지가 입력 전달부(210)로 입력되면, 입력 전달부(210)는 입력 이미지의 첫 행부터 순차적으로 임의의 개수의 행(영역 ①)을 첫 번째 메모리부(220a)로 전달한다. 이때, 입력 전달부(210)로부터 메모리부(220a)로 전달되는 행의 개수는 컨벌루션 연산을 적용할 가중치의 크기에 의해 결정된다.In the present invention, both the memory unit 220 and the processing unit assembly 270 forming a pair have a structure as described above. Hereinafter, a method of allocating data between a memory and a processing unit when the deep learning-based recognition system of the present invention performs a deep learning operation will be described in more detail with reference to FIGS. 7 to 9. FIG. 7 is a diagram for explaining a data allocation method between a memory and a processing unit in a process of processing one row of an input when the deep learning-based recognition system of the present invention performs a deep learning operation on an input . As shown in FIG. 7, when an input image is input to the input transfer unit 210, the input transfer unit 210 sequentially selects an arbitrary number of rows (area ①) from the first row of the input image to the first memory unit. Pass it to (220a). In this case, the number of rows transferred from the input transfer unit 210 to the memory unit 220a is determined by the size of the weight to which the convolution operation is applied.

그리고, 메모리부(220a)는 전달받은 데이터 중 첫 열을 가중치의 크기에 맞게 분할하여 일정 영역(영역 ②)을 첫 번째 프로세싱 유닛(예를 들면, 도 5의 제 1 프로세싱 유닛(231a-1))으로 전달한다.딥러닝의 컨벌루션 연산의 특성 상, 다음 연산은 이전 연산의 입력 데이터 일부분이 중복하여 입력값으로 사용된다. 따라서, 첫 번째 프로세싱 유닛은 다음 프로세싱 유닛으로 입력값의 일부분(영역 ③)을 전달하고, 메모리부(220a)는 다음 프로세싱 유닛으로 첫 번째 프로세싱 유닛으로 전달된 데이터 이후의 데이터(영역 ④)를 전달한다. 도 8은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 이전 입력된 행 다음의 행을 처리하는 과정에서 메모리에 데이터를 할당하는 방법을 설명하기 위한 도면이다. 도 7에서와 같이 입력 이미지 중 임의의 개수의 행이 첫 번째 메모리부 (220a)에 입력된 경우, 두 번째 메모리부(220b)는 첫 번째 메모리부(220a)에 입력된 행 다음의 행의 데이터(영역 ⑤)를 입력 전달부(210)로부터 전달받고, 첫 번째 메모리(220a)로부터 복수 개의 행의 데이터(영역 ⑥)를 전달받는다. 도 9는 본 발명의 딥러닝 기반 인식 시스템의 딥러닝 연산에 이용되는 가중치를 할당하는 방법을 설명하기 위한 도면이다. 도 9를 참조하면, 본 발명에서 이용되는 가중치 값은 모든 프로세싱 유닛 행렬에서 공통적이며, 다만, 프로세싱 유닛부 내 차원에 의해 다른 값을 갖는다.In addition, the memory unit 220a divides the first column of the received data according to the size of the weight, and divides a predetermined area (area ②) into a first processing unit (eg, the first processing unit 231a-1 in FIG. 5 ). Due to the nature of the convolutional operation of deep learning, the next operation is used as an input value by overlapping a part of the input data of the previous operation. Accordingly, the first processing unit transfers a part of the input value (area ③) to the next processing unit, and the memory unit 220a transfers the data (area ④) after the data transferred to the first processing unit to the next processing unit. do. FIG. 8 is a diagram illustrating a method of allocating data to a memory in a process of processing a row following a previously input row when the deep learning-based recognition system of the present invention performs a deep learning operation on an input. As shown in FIG. 7, when an arbitrary number of rows among the input images are input to the first memory unit 220a, the second memory unit 220b is the data of the row following the row input to the first memory unit 220a. (Area ⑤) is transferred from the input transfer unit 210, and a plurality of rows of data (area ⑥) are transferred from the first memory 220a. 9 is a diagram for explaining a method of allocating weights used for deep learning operations in the deep learning-based recognition system of the present invention. Referring to FIG. 9, the weight values used in the present invention are common to all processing unit matrices, but have different values depending on the dimension within the processing unit unit.

이때, 가중치 값은 외부로부터 도 1의 입력부(110)로 입력되고, 입력부(110)는 도 2의 입력 전달부(210)로 가중치 값을 전달하며, 입력 전달부(210)는 가중치 값을 메모리부(220)로 전달하고, 메모리부(220)가 최종적으로 프로세싱 유닛(231)으로 가중치 값을 전달한다.At this time, the weight value is input from the outside to the input unit 110 of FIG. 1, the input unit 110 transfers the weight value to the input transmission unit 210 of FIG. 2, and the input transmission unit 210 stores the weight value as a memory. The weight value is transferred to the unit 220, and the memory unit 220 finally transfers the weight value to the processing unit 231.

따라서, 가중치 값은 같은 차원에 있는 모든 프로세싱 유닛으로 전달된다. 이상에서 설명한 본 발명의 실시 예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 기능 혹은 모든 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.Thus, the weight value is passed to all processing units in the same dimension. Even if all the components constituting the embodiments of the present invention described above are described as being combined into one or operating in combination, the present invention is not necessarily limited to these embodiments. That is, as long as it is within the scope of the object of the present invention, one or more of the components may be selectively combined and operated. In addition, although all of the components can be implemented as one independent hardware, a program module that performs some or all functions combined in one or more hardware by selectively combining some or all of the components. It may be implemented as a computer program having In addition, such a computer program is stored in a computer readable media such as a USB memory, a CD disk, a flash memory, etc., and is read and executed by a computer, thereby implementing an embodiment of the present invention. The computer program recording medium may include a magnetic recording medium, an optical recording medium, a carrier wave medium, and the like.

이상에서와 같이, 본 발명에 따른 딥러닝 기반 인식 시스템을 실시 예에 따라 설명하였지만, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위 내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.As described above, the deep learning-based recognition system according to the present invention has been described according to embodiments, but the scope of the present invention is not limited to specific embodiments, and is obvious to those of ordinary skill in the art. It can be implemented with various alternatives, modifications and changes within the scope.

따라서, 본 발명에 기재된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.Accordingly, the embodiments described in the present invention and the accompanying drawings are not intended to limit the technical idea of the present invention, but to explain, and the scope of the technical idea of the present invention is not limited by these embodiments and the accompanying drawings. . The scope of protection of the present invention should be interpreted by the claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

100 : 딥러닝 기반 인식 시스템 110 : 입력부
130 : 제어부 150, 200 : 딥러닝 계산부
170 : 출력부 210 : 입력 전달부
220 : 메모리부 221 : 메모리
230 : 프로세싱 유닛부 231 : 프로세싱 유닛
240 : 출력 전달부 250 : 제어부
260 : 인터커넥트 네트워크 270 : 프로세싱 유닛 집합체
100: deep learning-based recognition system 110: input unit
130: control unit 150, 200: deep learning calculation unit
170: output unit 210: input transmission unit
220: memory unit 221: memory
230: processing unit unit 231: processing unit
240: output transmission unit 250: control unit
260: interconnect network 270: processing unit assembly

Claims (12)

수신되는 입력에 대해 딥러닝 계산을 수행하여 출력값을 외부로 출력하는 딥러닝 계산부를 포함하는 딥러닝 기반 인식 시스템에 있어서, 상기 딥러닝 계산부는, 상기 입력을 수신하고, 수신한 입력을 분배하여 출력하는 입력 전달부; 상기 입력 전달부로부터의 데이터를 저장하는 한편, 상기 데이터를 분배하여 출력하는 적어도 하나 이상의 메모리를 포함하는 메모리부;상기 메모리부로부터의 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 적어도 하나 이상의 프로세싱 유닛을 포함하는 프로세싱 유닛부; 및 상기 프로세싱 유닛으로부터의 출력값을 상기 메모리부로부터 제공받아 외부로 출력하는 출력 전달부를 포함하는 딥러닝 기반 인식 시스템.
A deep learning-based recognition system comprising a deep learning calculation unit that performs deep learning calculations on a received input and outputs an output value to the outside, wherein the deep learning calculation unit receives the input, distributes the received input, and outputs An input transmission unit; A memory unit including at least one memory for storing data from the input transmission unit and distributing and outputting the data; at least one or more performing operations necessary for deep learning calculation based on the data from the memory unit A processing unit unit including a processing unit; And an output transmission unit receiving an output value from the processing unit from the memory unit and outputting the output value to the outside.
제 1 항에 있어서, 상기 딥러닝 계산부는 다수의 메모리부를 포함하고, 상기 입력 전달부는 수신한 입력을 분배하여 상기 다수의 메모리부 각각에 출력하는 딥러닝 기반 인식 시스템.
The deep learning-based recognition system of claim 1, wherein the deep learning calculation unit includes a plurality of memory units, and the input transmission unit distributes the received input to each of the plurality of memory units.
제 2 항에 있어서, 상기 다수의 메모리부는 서로 연결되고, 전단의 메모리부는 상기 입력 전달부로부터 수신한 데이터의 일부를 후단의 메모리부로 제공하는 딥러닝 기반 인식 시스템.
The deep learning-based recognition system of claim 2, wherein the plurality of memory units are connected to each other, and a front-end memory unit provides some of the data received from the input transfer unit to a rear-end memory unit.
제 3 항에 있어서, 상기 후단의 메모리부는 상기 전단의 메모리부로부터 제공되는 데이터와 상기 입력 전달부로부터의 데이터를 합한 데이터를 분배하여 자신과 연결된 프로세싱 유닛부로 출력하는 딥러닝 기반 인식 시스템
The deep learning-based recognition system of claim 3, wherein the rear-end memory unit distributes data obtained by combining data provided from the front-end memory unit and data from the input transmission unit and outputs the data to a processing unit connected thereto.
제 1 항에 있어서, 상기 메모리부는 다수의 메모리를 포함하고, 상기 프로세싱 유닛부는 다수의 프로세싱 유닛을 포함하며, 상기 다수의 메모리 각각은 상기 다수의 프로세싱 유닛과 서로 대응하여 연결되고, 서로 대응하는 메모리와 프로세싱 유닛 사이에 데이터 송수신이 이루어지는 딥러닝 기반 인식 시스템.
The memory of claim 1, wherein the memory unit includes a plurality of memories, the processing unit unit includes a plurality of processing units, and each of the plurality of memories is connected to correspond to the plurality of processing units and corresponds to each other. A deep learning-based recognition system that transmits and receives data between the and the processing unit.
제 5 항에 있어서, 상기 프로세싱 유닛부를 구성하는 다수의 프로세시 유닛은 3차원 구조로 배치되는 딥러닝 기반 인식 시스템.
The deep learning-based recognition system of claim 5, wherein a plurality of processing units constituting the processing unit unit are arranged in a three-dimensional structure.
제 1 항에 있어서, 상기 딥러닝 계산부는 상기 메모리부와 연결되는 다수의 프로세싱 유닛부를 포함하고, 상기 다수의 프로세싱 유닛부 각각에 포함되는 프로세싱 유닛은 자신이 포함된 프로세싱 유닛부와 인접하는 프로세싱 유닛부 내 같은 차원의 하나의 프로세싱 유닛과 데이터를 송수신하는 딥러닝 기반 인식 시스템.
The processing unit of claim 1, wherein the deep learning calculation unit includes a plurality of processing unit units connected to the memory unit, and a processing unit included in each of the plurality of processing unit units is adjacent to a processing unit unit including the processing unit unit. A deep learning-based recognition system that transmits and receives data to and from one processing unit of the same dimension within the department.
제 7 항에 있어서, 상기 다수의 프로세싱 유닛부 중 전단의 프로세싱 유닛부에 포함된 프로세싱 유닛은 후단의 프로세싱 유닛부에 포함되어 자신과 데이터를 송수신하는 프로세싱 유닛으로 상기 메모리부로부터 수신한 데이터의 일부를 제공하는 딥러닝 기반 인식 시스템.The processing unit of claim 7, wherein a processing unit included in a processing unit of a front end of the plurality of processing unit units is a processing unit included in a processing unit of a later stage to transmit/receive data to and from itself, and a part of the data received from the memory unit Deep learning-based recognition system that provides a. 제 8 항에 있어서, 상기 후단의 프로세싱 유닛부의 프로세싱 유닛은 상기 전단의 프로세싱 유닛부의 프로세싱 유닛으로부터의 데이터와 상기 메모리부로부터의 데이터를 합한 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 딥러닝 기반 인식 시스템.
The deep learning of claim 8, wherein the processing unit of the processing unit of the later stage performs an operation necessary for the deep learning calculation based on the sum of data from the processing unit of the processing unit of the front end and the data from the memory unit. Based recognition system.
제 1 항에 있어서, 상기 입력이 행렬 단위로 구획될 수 있는 이미지인 경우,
상기 입력 전달부는 상기 이미지의 첫 번째 행부터 순차적으로 임의의 개수의 행의 이미지를 첫 번째 메모리부 로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 이미지 중 첫 번째 열부터 순차적으로 임의의 개수의 열의
이미지를 첫 번째 프로세싱 유닛부로 제공하는 딥러닝 기반 인식 시스템.
The method of claim 1, wherein when the input is an image that can be partitioned in matrix units,
The input transfer unit sequentially provides an image of an arbitrary number of rows from the first row of the image to the first memory unit, and the first memory unit sequentially provides a random number of images from the first column of the images from the input transfer unit. Number of columns
A deep learning-based recognition system that provides an image to the first processing unit.
제 10 항에 있어서, 상기 첫 번째 메모리부는 상기 첫 번째 프로세싱 유닛부로 제공된 이미지 이후의 열의 이미지를 두 번째 프로세싱 유닛부로 제공하고, 상기 첫 번째 프로세싱 유닛부는 상기 첫 번째 메모리부로부터의 열의 이미지 중 일부 열의 이미지를 상기 두 번째 프로세싱 유닛부로 제공하는 딥러닝 기반 인식 시스템.
11. The method of claim 10, wherein the first memory unit provides an image of a row after the image provided to the first processing unit unit to a second processing unit unit, and the first processing unit unit A deep learning-based recognition system that provides an image to the second processing unit.
제 10 항에 있어서, 상기 입력 전달부는 상기 첫 번째 메모리부로 제공된 이미지 이후의 행의 이미지를 두 번째 메모리부로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 행의 이미지 중 일부의 행의 이미지를 상기 두 번째 메모리부로 제공하는 딥러닝 기반 인식 시스템.
11. The method of claim 10, wherein the input transfer unit provides an image of a row after the image provided to the first memory unit to a second memory unit, and the first memory unit provides an image of some of the row images from the input transfer unit. Deep learning-based recognition system that provides to the second memory unit.
KR1020190104005A 2019-08-23 2019-08-23 Recognition System based on Deep Learning KR20210023591A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190104005A KR20210023591A (en) 2019-08-23 2019-08-23 Recognition System based on Deep Learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190104005A KR20210023591A (en) 2019-08-23 2019-08-23 Recognition System based on Deep Learning

Publications (1)

Publication Number Publication Date
KR20210023591A true KR20210023591A (en) 2021-03-04

Family

ID=75174685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190104005A KR20210023591A (en) 2019-08-23 2019-08-23 Recognition System based on Deep Learning

Country Status (1)

Country Link
KR (1) KR20210023591A (en)

Similar Documents

Publication Publication Date Title
US20210117810A1 (en) On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system
CN109543832B (en) Computing device and board card
CN109522052B (en) Computing device and board card
CN112840356B (en) Operation accelerator, processing method and related equipment
EP3825841A1 (en) Method and device for parallel computation of a network model
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
US11579921B2 (en) Method and system for performing parallel computations to generate multiple output feature maps
WO2021115208A1 (en) Neural network processor, chip and electronic device
US11403104B2 (en) Neural network processor, chip and electronic device
US11138106B1 (en) Target port with distributed transactions
CN112905530B (en) On-chip architecture, pooled computing accelerator array, unit and control method
US11775808B2 (en) Neural network computation device and method
WO2022179075A1 (en) Data processing method and apparatus, computer device and storage medium
CN109711540B (en) Computing device and board card
CN114846478A (en) Neural network processing method, device and system
WO2021115149A1 (en) Neural network processor, chip and electronic device
CN111930681A (en) Computing device and related product
CN111079908A (en) Network-on-chip data processing method, storage medium, computer device and apparatus
US11467973B1 (en) Fine-grained access memory controller
KR20210023591A (en) Recognition System based on Deep Learning
US20200213217A1 (en) SYSTEM AND METHOD FOR COMPUTATIONAL TRANSPORT NETWORK-ON-CHIP (NoC)
KR20180067200A (en) Recognition system based on deep learning
CN210924662U (en) Device and system for neural network processing
CN111078624B (en) Network-on-chip processing system and network-on-chip data processing method
CN111078625B (en) Network-on-chip processing system and network-on-chip data processing method