KR20180067200A - 딥러닝 기반 인식 시스템 - Google Patents

딥러닝 기반 인식 시스템 Download PDF

Info

Publication number
KR20180067200A
KR20180067200A KR1020160168679A KR20160168679A KR20180067200A KR 20180067200 A KR20180067200 A KR 20180067200A KR 1020160168679 A KR1020160168679 A KR 1020160168679A KR 20160168679 A KR20160168679 A KR 20160168679A KR 20180067200 A KR20180067200 A KR 20180067200A
Authority
KR
South Korea
Prior art keywords
unit
processing unit
memory
deep learning
input
Prior art date
Application number
KR1020160168679A
Other languages
English (en)
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 KR1020160168679A priority Critical patent/KR20180067200A/ko
Publication of KR20180067200A publication Critical patent/KR20180067200A/ko

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/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/08Learning methods

Abstract

본 발명은 딥러닝 기반 인식 시스템에 관한 것으로, 상기 딥러닝 기반 인식 시스템은, 수신되는 입력에 대해 딥러닝 계산을 수행하여 출력값을 외부로 출력하는 딥러닝 계산부를 포함하는 딥러닝 기반 인식 시스템에 있어서, 상기 딥러닝 계산부는, 상기 입력을 수신하고, 수신한 입력을 분배하여 출력하는 입력 전달부; 상기 입력 전달부로부터의 데이터를 저장하는 한편, 상기 데이터를 분배하여 출력하는 적어도 하나 이상의 메모리를 포함하는 메모리부; 상기 메모리부로부터의 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 적어도 하나 이상의 프로세싱 유닛을 포함하는 프로세싱 유닛부; 및 상기 프로세싱 유닛으로부터의 출력값을 상기 메모리부로부터 제공받아 외부로 출력하는 출력 전달부를 포함한다.

Description

딥러닝 기반 인식 시스템{RECOGNITION SYSTEM BASED ON DEEP LEARNING}
본 발명은 딥러닝 기반 인식 시스템에 관한 것으로, 상세하게는 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 성능을 향상시킬 수 있도록 구현된 딥러닝 기반 인식 시스템에 관한 것이다.
인공지능 기술 중 하나인 딥러닝(Deep Learning)은 인간의 신경망을 모델링한 딥 뉴럴 네트워크(Deep Neural Network)에 기반을 둔 기계학습(Machine Learning) 방법론이다. 이러한 딥러닝은 현재 이미지 인식, 자연어 처리, 목소리 인식, 게임 등 다양한 분야에서 널리 사용되고 있다.
딥러닝은 기존 인공지능 기술보다 정확성이 높다는 장점이 있다. 하지만, 이러한 장점을 있는 반면, 계산과정에서 막대한 연산량을 필요로 하는 단점이 있다.
따라서, 계산과정에서 막대한 연산량이 필요하다는 단점을 보완하기 위하여, 다양한 하드웨어 기반의 딥러닝 가속기가 설계되고 있고, 이러한 하드웨어 기반 가속기는 딥러닝 계산에 특화되어 있어 빠른 연산을 가능하게 한다.
또한, 하드웨어 기반 가속기는 구조가 단순하여 일반적인 프로세서에 비해 크기 및 에너지 소비에서 우위를 가진다.
일반적으로, 딥러닝 가속기들은 작은 계산 단위인 프로세싱 유닛(Processing Unit)을 다수 포함하여 계산 성능을 높인다. 하지만, 프로세싱 유닛의 수가 증가할수록 메모리 대역폭(Memory Bandwidth), 메모리 접근 속도(Memory access Latency), 프로세싱 유닛 간 통신 속도 등이 병목지점이 된다. 이러한 병목지점으로 인해 가속기의 속도 향상에 한계를 보인다는 문제점이 있다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은, 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 성능을 향상시킬 수 있도록 구현된 딥러닝 기반 인식 시스템에 관한 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 딥러닝 기반 인식 시스템은, 수신되는 입력에 대해 딥러닝 계산을 수행하여 출력값을 외부로 출력하는 딥러닝 계산부를 포함하는 딥러닝 기반 인식 시스템에 있어서, 상기 딥러닝 계산부는, 상기 입력을 수신하고, 수신한 입력을 분배하여 출력하는 입력 전달부; 상기 입력 전달부로부터의 데이터를 저장하는 한편, 상기 데이터를 분배하여 출력하는 적어도 하나 이상의 메모리를 포함하는 메모리부; 상기 메모리부로부터의 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 적어도 하나 이상의 프로세싱 유닛을 포함하는 프로세싱 유닛부; 및 상기 프로세싱 유닛으로부터의 출력값을 상기 메모리부로부터 제공받아 외부로 출력하는 출력 전달부를 포함한다.
상기 딥러닝 계산부는 다수의 메모리부를 포함하고, 상기 입력 전달부는 수신한 입력을 분배하여 상기 다수의 메모리부 각각에 출력한다.
상기 다수의 메모리부는 서로 연결되고, 전단의 메모리부는 상기 입력 전달부로부터 수신한 데이터의 일부를 후단의 메모리부로 제공한다.
상기 후단의 메모리부는 상기 전단의 메모리부로부터 제공되는 데이터와 상기 입력 전달부로부터의 데이터를 합한 데이터를 분배하여 자신과 연결된 프로세싱 유닛부로 출력한다.
상기 메모리부는 다수의 메모리를 포함하고, 상기 프로세싱 유닛부는 다수의 프로세싱 유닛을 포함하며, 상기 다수의 메모리 각각은 상기 다수의 프로세싱 유닛과 서로 대응하여 연결되고, 서로 대응하는 메모리와 프로세싱 유닛 사이에 데이터 송수신이 이루어진다.
상기 프로세싱 유닛부를 구성하는 다수의 프로세시 유닛은 3차원 구조로 배치된다.
상기 딥러닝 계산부는 상기 메모리부와 연결되는 다수의 프로세싱 유닛부를 포함하고, 상기 다수의 프로세싱 유닛부 각각에 포함되는 프로세싱 유닛은 자신이 포함된 프로세싱 유닛부와 인접하는 프로세싱 유닛부 내 같은 차원의 하나의 프로세싱 유닛과 데이터를 송수신한다.
상기 다수의 프로세싱 유닛부 중 전단의 프로세싱 유닛부에 포함된 프로세싱 유닛은 후단의 프로세싱 유닛부에 포함되어 자신과 데이터를 송수신하는 프로세싱 유닛으로 상기 메모리부로부터 수신한 데이터의 일부를 제공한다.
상기 후단의 프로세싱 유닛부의 프로세싱 유닛은 상기 전단의 프로세싱 유닛부의 프로세싱 유닛으로부터의 데이터와 상기 메모리부로부터의 데이터를 합한 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행한다.
상기 입력이 행렬 단위로 구획될 수 있는 이미지인 경우, 상기 입력 전달부는 상기 이미지의 첫 번째 행부터 순차적으로 임의의 개수의 행의 이미지를 첫 번째 메모리부로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 이미지 중 첫 번째 열부터 순차적으로 임의의 개수의 열의 이미지를 첫 번째 프로세싱 유닛부로 제공하한다.
상기 첫 번째 메모리부는 상기 첫 번째 프로세싱 유닛부로 제공된 이미지 이후의 열의 이미지를 두 번째 프로세싱 유닛부로 제공하고, 상기 첫 번째 프로세싱 유닛부는 상기 첫 번째 메모리부로부터의 열의 이미지 중 일부 열의 이미지를 상기 두 번째 프로세싱 유닛부로 제공한다.
상기 입력 전달부는 상기 첫 번째 메모리부로 제공된 이미지 이후의 행의 이미지를 두 번째 메모리부로 제공하고, 상기 첫 번째 메모리부는 상기 입력 전달부로부터의 행의 이미지 중 일부의 행의 이미지를 상기 두 번째 메모리부로 제공한다.
이와 같은 본 발명의 실시 예에 따르면, 하드웨어 기반 딥러닝 가속기 장치 내의 프로세싱 유닛의 3차원 배치를 통해 컨벌루셔널 뉴럴 네트워크의 데이터 공유의 특성, 계산 특성을 활용할 수 있다.
또한, 적합한 메모리 배치와 프로세싱 유닛 간 통신 네트워크의 구성을 통해 프로세싱 유닛이 최대한의 성능을 발휘할 수 있도록 한다.
종래에는 프로세싱 유닛의 수가 증가하는 경우, 메모리 대역폭(Memory Bandwidth), 메모리 접근 속도(Memory access Latency), 프로세싱 유닛 간 통신 속도 등이 병목지점이 되어, 가속기의 속도 향상에 한계를 보였으나, 이러한 방법을 활용함으로써, 가속기 내부의 프로세싱 유닛의 개수를 증가에 따른 성능향상을 이끌어 낼 수 있다.
본 발명을 바탕으로 사용자는 하드웨어 기반 딥러닝 가속기 장치를 스마트폰, 고정/이동 카메라, 로봇 등에 장착하여 이미지 분류 속도를 향상시키고 전체적인 장치의 성능을 향상시킬 수 있는 이점이 있다.
도 1은 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 일례를 도시한 구성도이다.
도 2는 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 딥러닝 계산부의 구성을 도시한 도면이다.
도 3은 도 2의 딥러닝 계산부의 구성 중 메모리부와 프로세싱 유닛부의 입체 연결 구조를 도시한 도면이다.
도 4는 도 3의 A 영역의 메모리부과 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다.
도 5는 도 3의 B 영역의 메모리부와 프로세싱 유닛부의 연결 구조를 입체적으로 도시한 도면이다.
도 6은 도 5의 메모리부와 프로세싱 유닛부의 연결 구조를 평면적으로 도시한 도면이다.
도 7은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 입력의 하나의 행을 처리하는 과정에서의 메모리와 프로세싱 유닛 사이의 데이터 할당 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 이전 입력된 행 다음의 행을 처리하는 과정에서 메모리에 데이터를 할당하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 딥러닝 기반 인식 시스템의 딥러닝 연산에 이용되는 가중치를 할당하는 방법을 설명하기 위한 도면이다.
본문에 개시되어 있는 본 발명의 실시 예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시 예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시 예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 “~사이에”와 “바로 ~사이에” 또는 “~에 이웃하는”과 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “포함하다” 또는 “가지다” 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시 예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템에 대하여 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 일례를 도시한 구성도이다.
도 1을 참조하면, 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템(100)은 입력부(110), 제어부(130), 딥러닝 계산부(150) 및 출력부(170)로 구성될 수 있다.
상기 입력부(110)는 외부에서 분류의 대상이 되는 입력을 수신하는 구성으로서, 수신한 입력을 딥러닝 계산부(150)로 제공한다.
특히, 상기 입력부(110)는 분류의 대상이 되는 입력값의 매트릭스와 기 학습된 가중치 정보를 외부로부터 수신하여 딥러닝 계산부(150)로 제공한다.
예를 들어, 상기 입력부(110)는 카메라와 같은 외부 영상 기기, 통신장치나 파일시스템과 같은 데이터 전송장치 등일 수 있다.
상기 제어부(130)는 딥러닝 기반 인식 시스템(100)의 전반적인 제어를 수행하며, 특히, 데이터 전송, 계산 수행, 출력 전송 등과 같이 딥러닝 계산부(150)의 동작을 제어한다.
예를 들어, 상기 제어부(130)는 외부 컴퓨팅 시스템 혹은 임베디드 시스템 프로세싱 코어 등일 수 있다.
상기 딥러닝 계산부(150)는 입력부(110)로부터의 입력을 수신하여 딥러닝 분류 결과를 계산한다. 상기 딥러닝 계산부(150)에 대한 구체적인 설명은 후술하도록 한다.
상기 출력부(170)는 딥러닝 계산부(150)에 의해 계산된 결과로 나온 출력값를 외부로 전달한다. 상기 출력부(170)는 외부 컴퓨터 시스템, 혹은 LED 등과 같은 외부 디스플레이 시스템 등일 수 있다.
도 2는 본 발명의 바람직한 실시 예에 따른 딥러닝 기반 인식 시스템의 딥러닝 계산부의 구성을 도시한 도면이다.
도 2에 도시된 딥러닝 계산부(200)는 도 1의 딥러닝 계산부(150)에 적용될 수 있는 것으로서, 입력 전달부(210), 메모리부(220), 프로세싱 유닛부(230), 출력 전달부(240), 제어부(250)로 구성될 수 있다.
이때, 상기 딥러닝 계산부(200)는 다수의 메모리부(220) 및 다수의 프로세싱 유닛부(230)로 구성될 수 있다. 그리고, 상기 딥러닝 계산부(200) 내 구성들은 인터커넥트 네트워크(260)에 의해 연결된다.
상기 입력 전달부(210)는 도 1의 입력부(110)를 통해 제공되는 입력을 나누어 다수의 메모리부(220)로 분배하는 역할을 한다.
또한, 상기 입력 전달부(210)는 이전 단계의 딥러닝 계산부의 수행 결과로 출력되는 결과값을 출력 전달부(240)에서 전달받아 메모리부(220)로 제공할 수 있다.
상기 메모리부(220)는 입력 전달부(210)로부터 입력값에 대한 정보를 제공받아, 입력값의 일부를 저장한다.
이때, 상기 메모리부(220)는 다수의 메모리(221)로 구성될 수 있다.
그리고, 상기 메모리부(220) 내 메모리(221)는 제어부(250)의 명령에 따라, 저장하고 있는 값의 이루를 프로세싱 유닛부(230)의 프로세싱 유닛(231)의 내부 저장소에 전송한다.
또한, 상기 메모리부(220)는 프로세싱 유닛부(230)에 의해 계산된 결과를 받아, 출력 전달부(240)로 제공한다.
상기 메모리부(220)의 내부 구조 및 프로세싱 유닛부(230)와의 연결 구조는 후술하도록 한다.
상기 프로세싱 유닛부(230)는 메모리부(220)로부터 입력값의 일부를 제공받고, 이를 바탕으로 딥러닝 계산에 필요한 연산을 수행한다.
이때, 상기 프로세싱 유닛부(230)는 다수의 프로세싱 유닛(231)으로 구성될 수 있다.
그리고, 상기 프로세싱 유닛부(230)는 인터커넥트 네트워크(260)를 통해 다른 프로세싱 유닛부로 자신의 저장소에 저장된 값의 일부를 전송한다.
상기 프로세싱 유닛부(230)의 내부 구조 및 메모리부(220)와의 연결 구조는 후술하도록 한다.
상기 출력 전달부(240)는 프로세싱 유닛부(230)로부터의 출력값을 메모리부(220)를 통해 전달받아, 도 1의 출력부(170)로 전송한다.
또한, 상기 출력 전달부(240)는, 딥러닝 계산부(200)의 구조에 따라, 결과값을 메모리부(220)로 전송할 수도 있다.
상기 제어부(250)는 딥러닝 계산부(200)의 데이터 전송, 계산의 시작과 종료에 대한 명령을 출력한다.
또한, 상기 제어부(250)는 프로세싱 유닛부(230)의 계산 완료 여부를 기초로 하여 데이터 값의 동기화를 맞춰주는 역할도 수행한다.
상기 인터커넥트 네트워크(260)는 데이터 소스에 해당하는 부분의 저장소에서 데이터를 전송하면, 목적지에 해당하는 부분의 저장소에 데이터를 저장한다.
도 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)과 데이터를 송수신한다.
특히, 상기 프로세싱 유닛(230)은 자신이 포함된 프로세싱 유닛 집합(270)과 인접한 프로세싱 유닛 집합 내 프로세싱 유닛 중 자신과 동일한 차원에 위치하는 프로세싱 유닛과 데이터를 송수신한다.
도 3 및 4에 도시된 바와 같이, 상기 메모리부(220)는 프로세싱 유닛부(230)와 데이터를 송수신하도록 구성된다.
이때, 상기 메모리부(220)는 다수의 메모리(221)로 구성될 수 있는데, 메모리부(220)를 구성하는 메모리(221)의 수는 프로세싱 유닛부(230)를 구성하는 프로세싱 유닛(231)의 개수와 대응한다.
즉, 상기 메모리부(220)의 구성은 프로세싱 유닛부(270) 내 프로세싱 유닛(231)의 개수와 관련된다.
또한, 상기 메모리부(220) 내 메모리(221)는 인접한 메모리와 데이터를 송수수한다.
그리고, 상기 메모리부(220) 내 메모리들 중 하나는 적어도 하나, 예를 들면 메모리 1은 도 2의 입력 전달부(210) 및 출력 전달부(240)와 연결되어, 데이터를 송수신한다.
따라서, 도 4에 도시된 바와 같이, 메모리부(220)를 구성하는 다수의 메모리(221)는 메모리부(220) 내 인접한 메모리와 데이터를 송수신하며, 프로세싱 유닛부(230)를 구성하는 다수의 프로세싱 유닛(231)은 대응하는 메모리(221)와 데이터를 송수신한다.
이와 같은 구성에 따라, 상기 메모리부(220)는 입력 전달부(210)로부터 입력값에 대한 정보를 제공받아 저장하고, 저장한 입력값을 대응하는 프로세싱 유닛 집합체(270)로 제공한다.
구체적으로, 상기 메모리부(220)를 구성하는 다수의 메모리(221)가 입력 전달부(210)로부터의 입력값을 저장하고, 저장한 입력값을 대응하는 프로세싱 유닛(212)으로 제공한다.
그리고, 상기 프로세싱 유닛(231)은 대응하는 메모리(221)로부터 제공되는 입력값을 바탕으로 연산 수행한 결과값을 대응하는 메모리(221)로 제공한다.
이후, 상기 프로세싱 유닛(231)로부터 제공된 결과값은 하나의 메모리(221), 예를 들면 메모리 1로 통합되고, 메모리 1은 통합된 결과값을 출력 전달부(240)로 제공된다.
도 5는 도 3의 B 영역의 메모리부와 프로세싱 유닛부의 연결 구조를 입체적으로 도시한 도면이고, 도 6은 도 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)과 연결된다.
그리고, 제 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)를 공유한다.
본 발명에 있어서 한 쌍의 이루는 메모리부(220)와 프로세싱 유닛 집합체(270)는 모두 상술한 바와 같은 구조로 이루어진다.
이하에서는 도 7 내지 9를 참조하여, 본 발명의 딥러닝 기반 인식 시스템이 딥러닝 연산을 수행하는 경우의 메모리 및 프로세싱 유닛 사이의 데이터 할당 방법에 대해서 좀 더 살펴보기로 한다.
도 7은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 입력의 하나의 행을 처리하는 과정에서의 메모리와 프로세싱 유닛 사이의 데이터 할당 방법을 설명하기 위한 도면이다.
도 7에 도시된 바와 같이, 입력 이미지가 입력 전달부(210)로 입력되면, 입력 전달부(210)는 입력 이미지의 첫 행부터 순차적으로 임의의 개수의 행(영역 ①)을 첫 번째 메모리부(220a)로 전달한다.
이때, 입력 전달부(210)로부터 메모리부(220a)로 전달되는 행의 개수는 컨벌루션 연산을 적용할 가중치의 크기에 의해 결정된다.
그리고, 메모리부(220a)는 전달받은 데이터 중 첫 열을 가중치의 크기에 맞게 분할하여 일정 영역(영역 ②)을 첫 번째 프로세싱 유닛(예를 들면, 도 5의 제 1 프로세싱 유닛(231a-1))으로 전달한다.
딥러닝의 컨벌루션 연산의 특성 상, 다음 연산은 이전 연산의 입력 데이터 일부분이 중복하여 입력값으로 사용된다.
따라서, 첫 번째 프로세싱 유닛은 다음 프로세싱 유닛으로 입력값의 일부분(영역 ③)을 전달하고, 메모리부(220a)는 다음 프로세싱 유닛으로 첫 번째 프로세싱 유닛으로 전달된 데이터 이후의 데이터(영역 ④)를 전달한다.
도 8은 본 발명의 딥러닝 기반 인식 시스템이 입력에 대해 딥러닝 연산을 수행하는 경우에 있어서 이전 입력된 행 다음의 행을 처리하는 과정에서 메모리에 데이터를 할당하는 방법을 설명하기 위한 도면이다.
도 7에서와 같이 입력 이미지 중 임의의 개수의 행이 첫 번째 메모리부(220a)에 입력된 경우, 두 번째 메모리부(220b)는 첫 번째 메모리부(220a)에 입력된 행 다음의 행의 데이터(영역 ⑤)를 입력 전달부(210)로부터 전달받고, 첫 번째 메모리(220a)로부터 복수 개의 행의 데이터(영역 ⑥)를 전달받는다.
도 9는 본 발명의 딥러닝 기반 인식 시스템의 딥러닝 연산에 이용되는 가중치를 할당하는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 본 발명에서 이용되는 가중치 값은 모든 프로세싱 유닛 행렬에서 공통적이며, 다만, 프로세싱 유닛부 내 차원에 의해 다른 값을 갖는다.
이때, 가중치 값은 외부로부터 도 1의 입력부(110)로 입력되고, 입력부(110)는 도 2의 입력 전달부(210)로 가중치 값을 전달하며, 입력 전달부(210)는 가중치 값을 메모리부(220)로 전달하고, 메모리부(220)가 최종적으로 프로세싱 유닛(231)으로 가중치 값을 전달한다.
따라서, 가중치 값은 같은 차원에 있는 모든 프로세싱 유닛으로 전달된다.
이상에서 설명한 본 발명의 실시 예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 기능 혹은 모든 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 기록매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.
이상에서와 같이, 본 발명에 따른 딥러닝 기반 인식 시스템을 실시 예에 따라 설명하였지만, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위 내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
따라서, 본 발명에 기재된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 딥러닝 기반 인식 시스템 110 : 입력부
130 : 제어부 150, 200 : 딥러닝 계산부
170 : 출력부 210 : 입력 전달부
220 : 메모리부 221 : 메모리
230 : 프로세싱 유닛부 231 : 프로세싱 유닛
240 : 출력 전달부 250 : 제어부
260 : 인터커넥트 네트워크 270 : 프로세싱 유닛 집합체

Claims (12)

  1. 수신되는 입력에 대해 딥러닝 계산을 수행하여 출력값을 외부로 출력하는 딥러닝 계산부를 포함하는 딥러닝 기반 인식 시스템에 있어서,
    상기 딥러닝 계산부는,
    상기 입력을 수신하고, 수신한 입력을 분배하여 출력하는 입력 전달부;
    상기 입력 전달부로부터의 데이터를 저장하는 한편, 상기 데이터를 분배하여 출력하는 적어도 하나 이상의 메모리를 포함하는 메모리부;
    상기 메모리부로부터의 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는 적어도 하나 이상의 프로세싱 유닛을 포함하는 프로세싱 유닛부; 및
    상기 프로세싱 유닛으로부터의 출력값을 상기 메모리부로부터 제공받아 외부로 출력하는 출력 전달부를 포함하는
    딥러닝 기반 인식 시스템.
  2. 제 1 항에 있어서,
    상기 딥러닝 계산부는 다수의 메모리부를 포함하고,
    상기 입력 전달부는 수신한 입력을 분배하여 상기 다수의 메모리부 각각에 출력하는
    딥러닝 기반 인식 시스템.
  3. 제 2 항에 있어서,
    상기 다수의 메모리부는 서로 연결되고, 전단의 메모리부는 상기 입력 전달부로부터 수신한 데이터의 일부를 후단의 메모리부로 제공하는
    딥러닝 기반 인식 시스템.
  4. 제 3 항에 있어서,
    상기 후단의 메모리부는 상기 전단의 메모리부로부터 제공되는 데이터와 상기 입력 전달부로부터의 데이터를 합한 데이터를 분배하여 자신과 연결된 프로세싱 유닛부로 출력하는
    딥러닝 기반 인식 시스템.
  5. 제 1 항에 있어서,
    상기 메모리부는 다수의 메모리를 포함하고,
    상기 프로세싱 유닛부는 다수의 프로세싱 유닛을 포함하며,
    상기 다수의 메모리 각각은 상기 다수의 프로세싱 유닛과 서로 대응하여 연결되고,
    서로 대응하는 메모리와 프로세싱 유닛 사이에 데이터 송수신이 이루어지는
    딥러닝 기반 인식 시스템.
  6. 제 5 항에 있어서,
    상기 프로세싱 유닛부를 구성하는 다수의 프로세시 유닛은 3차원 구조로 배치되는
    딥러닝 기반 인식 시스템.
  7. 제 1 항에 있어서,
    상기 딥러닝 계산부는 상기 메모리부와 연결되는 다수의 프로세싱 유닛부를 포함하고,
    상기 다수의 프로세싱 유닛부 각각에 포함되는 프로세싱 유닛은 자신이 포함된 프로세싱 유닛부와 인접하는 프로세싱 유닛부 내 같은 차원의 하나의 프로세싱 유닛과 데이터를 송수신하는
    딥러닝 기반 인식 시스템.
  8. 제 7 항에 있어서,
    상기 다수의 프로세싱 유닛부 중 전단의 프로세싱 유닛부에 포함된 프로세싱 유닛은 후단의 프로세싱 유닛부에 포함되어 자신과 데이터를 송수신하는 프로세싱 유닛으로 상기 메모리부로부터 수신한 데이터의 일부를 제공하는
    딥러닝 기반 인식 시스템.
  9. 제 8 항에 있어서,
    상기 후단의 프로세싱 유닛부의 프로세싱 유닛은 상기 전단의 프로세싱 유닛부의 프로세싱 유닛으로부터의 데이터와 상기 메모리부로부터의 데이터를 합한 데이터를 바탕으로 딥러닝 계산에 필요한 연산을 수행하는
    딥러닝 기반 인식 시스템.
  10. 제 1 항에 있어서,
    상기 입력이 행렬 단위로 구획될 수 있는 이미지인 경우,
    상기 입력 전달부는 상기 이미지의 첫 번째 행부터 순차적으로 임의의 개수의 행의 이미지를 첫 번째 메모리부로 제공하고,
    상기 첫 번째 메모리부는 상기 입력 전달부로부터의 이미지 중 첫 번째 열부터 순차적으로 임의의 개수의 열의 이미지를 첫 번째 프로세싱 유닛부로 제공하는
    딥러닝 기반 인식 시스템.
  11. 제 10 항에 있어서,
    상기 첫 번째 메모리부는 상기 첫 번째 프로세싱 유닛부로 제공된 이미지 이후의 열의 이미지를 두 번째 프로세싱 유닛부로 제공하고,
    상기 첫 번째 프로세싱 유닛부는 상기 첫 번째 메모리부로부터의 열의 이미지 중 일부 열의 이미지를 상기 두 번째 프로세싱 유닛부로 제공하는
    딥러닝 기반 인식 시스템.
  12. 제 10 항에 있어서,
    상기 입력 전달부는 상기 첫 번째 메모리부로 제공된 이미지 이후의 행의 이미지를 두 번째 메모리부로 제공하고,
    상기 첫 번째 메모리부는 상기 입력 전달부로부터의 행의 이미지 중 일부의 행의 이미지를 상기 두 번째 메모리부로 제공하는
    딥러닝 기반 인식 시스템.
KR1020160168679A 2016-12-12 2016-12-12 딥러닝 기반 인식 시스템 KR20180067200A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160168679A KR20180067200A (ko) 2016-12-12 2016-12-12 딥러닝 기반 인식 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160168679A KR20180067200A (ko) 2016-12-12 2016-12-12 딥러닝 기반 인식 시스템

Publications (1)

Publication Number Publication Date
KR20180067200A true KR20180067200A (ko) 2018-06-20

Family

ID=62769848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160168679A KR20180067200A (ko) 2016-12-12 2016-12-12 딥러닝 기반 인식 시스템

Country Status (1)

Country Link
KR (1) KR20180067200A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963711B2 (en) 2018-11-20 2021-03-30 Hyundai Motor Company Apparatus, system and method for recognizing object of vehicle

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963711B2 (en) 2018-11-20 2021-03-30 Hyundai Motor Company Apparatus, system and method for recognizing object of vehicle

Similar Documents

Publication Publication Date Title
US10902315B2 (en) Device for implementing artificial neural network with separate computation units
US10282659B2 (en) Device for implementing artificial neural network with multiple instruction units
CN110582785B (zh) 配置用于执行层描述符列表的具有功率效率的深度神经网络模块
US10824939B2 (en) Device for implementing artificial neural network with flexible buffer pool structure
US20200285949A1 (en) Structured Activation Based Sparsity In An Artificial Neural Network
US20210117810A1 (en) On-chip code breakpoint debugging method, on-chip processor, and chip breakpoint debugging system
US11615297B2 (en) Structured weight based sparsity in an artificial neural network compiler
CN108564168B (zh) 一种对支持多精度卷积神经网络处理器的设计方法
EP3825841A1 (en) Method and device for parallel computation of a network model
US11551028B2 (en) Structured weight based sparsity in an artificial neural network
CN116541647A (zh) 运算加速器、处理方法及相关设备
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
US20200279133A1 (en) Structured Sparsity Guided Training In An Artificial Neural Network
US11663491B2 (en) Allocation system, method and apparatus for machine learning, and computer device
WO2021115208A1 (zh) 神经网络处理器、芯片和电子设备
US11579921B2 (en) Method and system for performing parallel computations to generate multiple output feature maps
CN110991619A (zh) 神经网络处理器、芯片和电子设备
US11775808B2 (en) Neural network computation device and method
US11948352B2 (en) Speculative training using partial gradients update
US20200242468A1 (en) Neural network computation device, neural network computation method and related products
WO2021115149A1 (zh) 神经网络处理器、芯片和电子设备
KR20180067200A (ko) 딥러닝 기반 인식 시스템
US11082327B2 (en) System and method for computational transport network-on-chip (NoC)
Gonçalves et al. Exploring data size to run convolutional neural networks in low density fpgas
US20200301704A1 (en) Operation method, apparatus and related product