KR20190091858A - Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 - Google Patents
Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 Download PDFInfo
- Publication number
- KR20190091858A KR20190091858A KR1020180010945A KR20180010945A KR20190091858A KR 20190091858 A KR20190091858 A KR 20190091858A KR 1020180010945 A KR1020180010945 A KR 1020180010945A KR 20180010945 A KR20180010945 A KR 20180010945A KR 20190091858 A KR20190091858 A KR 20190091858A
- Authority
- KR
- South Korea
- Prior art keywords
- cnn
- rnn
- unit
- processor structure
- heterogeneous processor
- Prior art date
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 78
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 13
- 238000000638 solvent extraction Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 6
- 230000007423 decrease Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000004913 activation Effects 0.000 abstract description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
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)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
본 발명의 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조에 따르면, CNN의 activation에 요구되는 data bit수를 줄임과 동시에, 외부 메모리 접근을 최소화할 수 있도록 입력 분할 형태가 조절되며, 군집화 테이블 기반의 곱셈기를 이용함으로써 RNN 가중치 파라미터에 대한 외부 메모리 접근을 최소화하고, 연산기의 전력 효율과 면적 효율을 극대화하여 하나의 프로세서 칩에서 CNN과 RNN을 모두 고에너지 효율로 처리할 수 있으며, 제어부, 메모리부, 데이터버스, 외부 인터페이스를 공유하여 단일 아키텍처 형태의 뉴럴 네트워크 프로세서 또는 단순한 CNN과 RNN의 집적된 구조의 프로세서보다 면적과 전력 소모를 감소시킬 수 있는 효과가 있다.
Description
본 발명은 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조에 관한 것으로, 더욱 상세하게는 뉴럴 네트워크 프로세서에서 CNN과 RNN의 연산에서의 에너지 효율을 극대화하기 위하여 CNN 연산부와 RNN 연산부를 하나의 고성능 저전력 칩으로 집적한 이기종 프로세서 구조에 관한 것이다.
최근 딥러닝(deep learning) 이라고 통칭되는 분야의 발전과 함께 다양한 분양에서 뉴럴 네트워크(neural network)의 수요가 급증하고 있다.
뉴럴 네트워크(neural network)의 일종인 CNN(convolutional neural network)은 영상의 특징 추출 및 분류에 강점이 있어 물체 인식, 얼굴 인식 등에 사용되며, 또 다른 종류인 RNN(recurrent neural network)은 음성이나 문자열 등 순차적인 정보 처리에 강점이 있어 음성 인식, 번역 등에 사용된다.
또한, CNN과 RNN을 함께 사용함으로써 행동 인식이나 이미지 캡셔닝 등 보다 복잡한 적용도 가능하다.
뉴럴 네트워크의 성능을 향상시키기 위해, 보다 크고 복잡한 뉴럴 네트워크가 사용되고 있으며, 이와 함께 뉴럴 네트워크 프로세싱에 필요한 연산과 데이터 요구량이 기하급수적으로 증대되고 있다.
따라서 이를 효과적으로 처리하기 위한 뉴럴 네트워크 전용 프로세서 칩이 개발되고 있다.
하지만, 기존의 뉴럴 네트워크 전용 프로세서에서는 하나의 프로세서 내의 동일한 아키텍처를 갖는 연산부에서 뉴럴 네트워크 연산을 처리하였으며, 이러한 프로세서에서는 CNN과 RNN은 그 연산이 크게 달라서 동시에 최적화되어 처리될 수 없었고, CNN과 RNN 각각에 성능이 단독 칩일 경우보다 저하되어 전반적으로 연산 효율성이 감소되는 문제점이 있었다.
아울러, CNN과 RNN이 하나의 칩으로 제대로 설계되지 않으면 CNN과 RNN 각각에 성능이 단독 칩일 경우보다 저하되어 전반적으로 연산 효율성이 감소되는 문제점이 있었다.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, CNN의 activation에 요구되는 data bit수를 줄임과 동시에, 외부 메모리 접근을 최소화할 수 있도록 입력 분할 형태가 조절되며, 군집화 테이블 기반의 곱셈기를 이용함으로써 RNN 가중치 파라미터에 대한 외부 메모리 접근을 최소화하고, 연산기의 전력 효율과 면적 효율을 극대화하여 하나의 프로세서 칩에서 CNN과 RNN을 모두 고에너지 효율로 처리할 수 있으며, 제어부, 메모리부, 데이터버스부, 외부 인터페이스를 공유하여 단일 아키텍처 형태의 뉴럴 네트워크 프로세서 또는 단순한 CNN과 RNN의 집적된 구조의 프로세서보다 면적과 전력 소모를 감소시킬 수 있는 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조를 제공하는 것이다.
상술한 목적을 달성하기 위한 본 발명의 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조는, 뉴럴 네트워크 프로세서 구조에 있어서, CNN을 수행하여 처리하는 CNN 연산부와, RNN을 수행하여 처리하는 RNN 연산부와, 제어를 수행하는 연산제어부와, 상기 연산부에서 사용될 데이터가 저장된 메모리부와, 외부와 데이터를 주고 받기위한 인터페이스부와, 구성 요소 간 데이터 이동이 수행되도록 하는 데이터버스부가 포함되어 온 칩 형태의 집적회로로 구성되며; 상기 CNN 연산부는 입력 데이터를 이미지 분할 방식과 채널 분할 방식을 혼합한 혼합 분할 방식을 통해 데이터 처리가 이루어지고; 상기 CNN을 이루는 fully-connected 레이어는 RNN 연산부를 공유하여 데이터 처리가 이루어지는 것을 특징으로 한다.
상기 CNN 연산부에서 정수부 길이 및 소수부 길이는 동일한 레이어에서 고정되고, 상이한 레이어에 걸쳐 동적으로 변화될 수 있다.
상기 CNN 연산부는 오버플로우 계수 및 언더플로우 계수를 검출하여 정수부와 소수부의 길이를 자동으로 변경할 수 있다.
상기 CNN 연산부는 오버플로우 계수가 임계 값 보다 크면, 소수부 길이를 감소시키고 정수부 길이를 증가시키며, 언더플로우 계수가 임계 값 보다 크면, 정수부의 길이를 감소시키고, 소수부의 길이를 증가시킬 수 있다.
RNN 연산부는 가중치 군집화가 적용되어, 곱셈 연산을 군집화 테이블 곱셈기를 통하여 처리될 수 있다.
상기 CNN 연산부와 RNN 연산부는 메모리부, 연산제어부, 데이터버스부 및 인터페이스부를 공유할 수 있다.
이상에서 설명한 바와 같은 본 발명의 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조에 따르면, CNN의 activation에 요구되는 data bit수를 줄임과 동시에, 외부 메모리 접근을 최소화할 수 있도록 입력 분할 형태가 조절되며, 군집화 테이블 기반의 곱셈기를 이용함으로써 RNN 가중치 파라미터에 대한 외부 메모리 접근을 최소화하고, 연산기의 전력 효율과 면적 효율을 극대화하여 하나의 프로세서 칩에서 CNN과 RNN을 모두 고에너지 효율로 처리할 수 있으며, 제어부, 메모리부, 데이터버스부 및 외부 인터페이스부를 공유하여 단일 아키텍처 형태의 뉴럴 네트워크 프로세서 또는 단순한 CNN과 RNN의 집적된 구조의 프로세서보다 면적과 전력 소모를 감소시킬 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 이기종 아키텍처를 갖는 뉴럴 네트워크 프로세서의 구성 블록도이며,
도 2는 본 발명의 일실시예에 따른 이미지 입력 분할 방식을 설명하기 위한 도면이며,
도 3은 본 발명의 일실시예에 따른 채널 입력 분할 방식을 설명하기 위한 도면이며,
도 4는 본 발명의 일실시예에 따른 혼합 입력 분할 방식의 효과를 설명하기 위한 그래프이며,
도 5는 본 발명의 일실시예에 따른 오버플로우 검출기를 나타낸 예시도이며,
도 6은 본 발명의 일실시예에 따른 실시간 자체 조정 레이어 별 동적 고정 소수점의 효과를 설명하기 위한 그래프이며,
도 7은 본 발명의 일실시예에 따른 군집화 곱셈 테이블 생성 과정을 설명하기 위한 예시도이며,
도 8은 본 발명의 일실시예에 따른 생성된 군집화 곱셈 테이블을 통한 곱셈 과정을 설명하기 위한 예시도이며,
도 9는 본 발명의 일실시예에 따른 군집화 곱셈 테이블을 통한 연산기의 효과를 나타내는 도면이며,
도 10은 본 발명의 일실시예에 따른 CNN의 fully-connected layer와 RNN이 동일한 형태의 매트릭스 곱으로 나타나는 것을 설명하기 위한 예시도이다.
도 2는 본 발명의 일실시예에 따른 이미지 입력 분할 방식을 설명하기 위한 도면이며,
도 3은 본 발명의 일실시예에 따른 채널 입력 분할 방식을 설명하기 위한 도면이며,
도 4는 본 발명의 일실시예에 따른 혼합 입력 분할 방식의 효과를 설명하기 위한 그래프이며,
도 5는 본 발명의 일실시예에 따른 오버플로우 검출기를 나타낸 예시도이며,
도 6은 본 발명의 일실시예에 따른 실시간 자체 조정 레이어 별 동적 고정 소수점의 효과를 설명하기 위한 그래프이며,
도 7은 본 발명의 일실시예에 따른 군집화 곱셈 테이블 생성 과정을 설명하기 위한 예시도이며,
도 8은 본 발명의 일실시예에 따른 생성된 군집화 곱셈 테이블을 통한 곱셈 과정을 설명하기 위한 예시도이며,
도 9는 본 발명의 일실시예에 따른 군집화 곱셈 테이블을 통한 연산기의 효과를 나타내는 도면이며,
도 10은 본 발명의 일실시예에 따른 CNN의 fully-connected layer와 RNN이 동일한 형태의 매트릭스 곱으로 나타나는 것을 설명하기 위한 예시도이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다.
기존의 뉴럴 네트워크(neural network) 프로세서에서는 하나의 프로세서 내의 동일한 아키텍처를 갖는 연산부에서 뉴럴 네트워크 연산을 처리하였으며, CNN(convolutional neural network)과 RNN(recurrent neural network)을 동시에 최적화하여 처리할 수 있는 뉴럴 네트워크 프로세서는 보고된 바 없다.
CNN은 네트워크의 convolution filter가 한 번의 추론(inference)에도 여러 번 재사용 되는 특성이 있어 가중치 파라미터 값 수가 비교적 적지만, RNN의 경우 네트워크의 각 connection들이 서로 다른 가중치 파라미터 값을 갖고 있으므로 파라미터 수가 CNN에 비해 굉장히 많다.
또한, RNN의 경우 네트워크 입력이 1차원(1D) vector인 반면, CNN의 경우 네트워크 입력이 2차원(2D) image이므로, 네트워크를 구성하는 뉴런(activation)의 수가 CNN이 RNN에 비해 보통 제곱 배에 달한다.
이처럼 상이한 특성을 갖는 CNN과 RNN을 동일 아키텍처를 갖는 연산부에서 처리할 시, 메모리 접근이 불필요하게 많아지고 연산 효율이 감소되어, 시스템 전체의 전력 소모를 낮추는 데에 한계가 있었다.
이에, 본 발명에서는 CNN과 RNN에 최적화된 에너지 효율을 갖도록 이기종 아키텍처로 CNN 연산부(10)와 RNN 연산부(30)를 구성하였으며, 이를 하나의 칩으로 집적하여 구성한다.
본 발명의 일실시예에 따른 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조(100)는, 뉴럴 네트워크(neural network) 프로세서 구조에 있어서, CNN(convolutional neural network)을 수행하여 처리하는 CNN 연산부(10)와, RNN(recurrent neural network)을 수행하여 처리하는 RNN 연산부(30)와, 제어를 수행하는 연산제어부(70)와, 상기 연산부에서 사용될 데이터가 저장된 메모리부(90)와, 외부와 데이터를 주고 받기위한 인터페이스부(50)와, 구성 요소 간 데이터 이동이 수행되도록 하는 데이터버스부가 포함되어 온 칩 형태의 집적회로로 구성된다.
CNN 연산부(10)는 CNN의 뉴런(activation)에 요구되는 데이터 비트(data bit)수를 줄임과 동시에, 외부 메모리 접근을 최소화할 수 있도록 연산 순서가 조절되도록 구성되었으며, RNN 연산부(30)는 가중치(weight)에 대한 외부 메모리 접근을 최소화하고, 연산부의 연산 효율, 전력 효율 및 면적 효율을 극대화할 수 있다.
CNN은 크게 convolutional layer와 fully-connected layer로 구성되는데, fully-connected layer는 네트워크의 각 connection들이 서로 다른 가중치 파라미터 값을 갖고 있으므로 RNN과 특성이 동일하다.
또한, CNN 연산부(10)와 RNN 연산부(30)를 하나의 칩으로 집적함에 있어, Fully-connected layer와 RNN 모두 같은 형태의 매트릭스 곱으로 나타내질 수 있으므로, CNN의 fully-connected 레이어(layer)는 RNN 연산부(30)를 공유하여 데이터 처리를 수행함으로써 에너지효율과 면적효율을 높인다.
CNN 연산부(10)와 RNN 연산부(30)는 연산제어부(70), 메모리부(90), 데이터버스, 인터페이스(50)를 공유할 수 있도록 함으로써 온 칩의 면적 효율을 크게 높이고, 다양한 네트워크 할당 형태에 대해 모두 효과적으로 대응하도록 동작 효율을 높였다.
한편, 데이터버스부와 인터페이스부(50)는 연산제어부(70), 메모리부(90), CNN 연산부(10) 및 RNN 연산부(30)간의 연결에 따라 구성됨으로 데이터버스부와 인터페이스부(50)를 공유함에 있어, 연산제어부(70)와 메모리부(90)의 공유가 선행되어야 한다.
연산제어부(70)는 CNN 연산부(10)와 RNN 연산부(30)의 configuration 레지스터를 네트워크 크기와 형태에 맞추어 설정한 후, 연산에 필요되는 데이터를 넣어주고, 동작 레지스터를 설정해 줌으로써 동작시킨다.
CNN 연산부(10)와 RNN 연산부(30)에 각각 독립적인 메모리부를 갖도록 하면, CNN과 RNN의 처리 양에 따라서, 각 메모리부의 사용률이 달라지고, CNN이나 RNN 중 하나만 처리하는 경우에는 하나의 메모리부는 전혀 사용되지 못한다.
따라서 본 발명에서는 CNN 연산부(10)와 RNN 연산부(30)가 하나의 메모리부(90)를 공유하도록 하여 메모리부(90) 사용률이 최대화 되도록 한다.
상술한 바와 같이, CNN 연산부(10)와 RNN 연산부(30)의 configuration 및 동작 레지스터와 데이터 입출력을 제어하는 연산제어부(70)를 하나로 공유함으로써 연산제어부(70)에 소요되는 면적을 줄임과 동시에, 데이터버스부, 메모리부(90), 인터페이스부(50)가 각 연산부에 알맞게 할당될 수 있도록 한다.
본 발명에서는 CNN의 외부 메모리 접근을 최소화하기 위해 혼합 입력 분할 방법이 제안된다.
CNN 연산에서 입력 레이어 및 출력 레이어 이미지와 convolution filter의 가중치 파라미터 값은 각각 약 10MB ~ 100MB에 이른다.
그러나 온 칩 메모리인 메모리부(90)의 크기는 수백 KB 또는 수 MB로 제한된다.
따라서 CNN의 입력이 분할되어야 하며, CNN 연산부(10)는 제한된 온 칩 메모리부(90)를 통해 효과적인 입력처리가 가능하도록, 이미지 분할 방식과, 채널 분할 방식을 혼합하여 사용하는 혼합 분할 방식으로 구동 된다.
이미지 분할의 경우, 도 2에 나타낸 바와 같이, 입력 이미지의 폭(W)과 높이(H)는 분할 수에 비례하여 값이 감소한다.
분할된 이미지 그룹 각각은 독립적으로 처리되며, 이 경우 분할된 각 이미지 그룹에 대해 가중치 파라미터 값을 여러 번 가져와야 하므로, 가중치 파라미터 값에 대한 외부 메모리 접근이 증가한다.
반면에 채널 분할에서는 도 3에 나타낸 바와 같이, 입력 이미지의 폭(W)과 높이(H)가 원래 입력 이미지의 폭(W)과 높이(H)가 동일하지만, 여러 개의 감소된 채널을 갖는다.
이 경우 가져온 가중치 파라미터 값을 전체 이미지에 사용할 수 있으므로, 가중치 파라미터 값에 대한 다중 외부 메모리 접근은 필요하지 않다.
그러나 이 경우 부분 출력 결과를 누적하여 최종 출력을 생성해야하며, 이에 대한 추가 외부 메모리 접근이 필요하다.
이미지 분할은 가중치 파라미터 값의 크기가 이미지 크기보다 상대적으로 작을 때 장점이 있는 반면에, 채널 분할은 이미지 크기가 가중치 파라미터 값의 크기보다 상대적으로 작을 때 장점이 있다.
따라서 본 발명은 이 두 가지 방법을 혼합한 혼합 분할 방법을 이용하며, CNN의 각 레이어에 최적화된 혼합 분할 방법을 할당하면, 도 4에 나타낸 바와 같이, 다양한 레이어 형태에서도 최소화된 외부 메모리 접근으로 처리가 가능하다.
CNN의 각 레이어 이미지의 데이터 분포와 데이터 범위는 레이어에 따라 변화가 크다.
이렇게 넓은 범위의 데이터를 지원하려면 부동 소수점 형식을 사용하는 것이 효과적이지만, 부동 소수점 연산의 하드웨어 비용은 고정 소수점 연산의 하드웨어 비용보다 훨씬 높다.
본 발명에서는 부동 소수점 연산의 넓은 표현 범위와, 고정 소수점 연산의 에너지 효율 장점을 취하기 위해 실시간 자체 조정 레이어 별 동적 고정 소수점이 제시된다.
CNN 연산부(10)에서 정수부 길이 및 소수부 길이는 동일한 레이어에서 고정되지만, 상이한 층에 걸쳐 동적으로 변화한다.
따라서 네트워크 전반에 걸쳐 부동 소수점 특성을 가질 수 있으면서, 정수부 길이와 소수부 길이가 같은 레이어에 고정되어 있기 때문에 고정 소수점 연산이 가능하다.
각 레이어의 정수부와 소수부의 길이를 선택하기 위해 이전에는 오프라인 학습을 사용했다.
이 경우, 정수부와 소수부의 길이는 학습이미지 전체에 대한 오차의 합이 최소가 되도록 학습된다.
이렇게 결정된 정수부와 소수부의 길이는 런타임에 모든 이미지에 대해 동일하게 사용된다.
이러한 접근법에서, 추가적인 오프라인 학습이 필요하게 되며, 모든 이미지에 대해 공통된 정수부와 소수부 길이를 갖게 된다.
본 발명에서의 실시간 자체 조정 방법에서, 도 5에 나타낸 바와 같이 정수부와 소수부의 길이는 오버플로우 모니터링에 의해 현재의 입력 이미지에 동적으로 최적화 된다.
현재의 표현 최대값이 표현하지 못하는 값이 발생할 시 오버플로우 계수가 증가된다.
오버플로우 계수가 임계 값 보다 크면, 오버플로우를 줄이기 위해 소수부 길이가 감소되고, 정수부 길이가 증가된다.
반대로 현재의 표현 최대값이 요구되는 최대값보다 2배 이상 큰 언더플로우 계수가 임계 값 이상 발생시, 정수부의 길이가 감소되고, 소수부의 길이가 증가된다.
이 방법에서는 오프라인 칩 사전 학습이 필요하지 않으며, 정수부와 소수부의 길이가 현재 처리 데이터에 맞춰 자체 조정되므로 더 적은 비트(bit)수로도 동일한 성능을 기대할 수 있다.
즉, 이러한 실시간 자체 조정 레이어 별 동적 고정 소수점의 효과는 도 6에 나타낸 바와 같이, 4-bit의 activation으로도 32-bit와 거의 유사한 성능을 보여준다.
이 방법의 구현에 있어 오버플로우와 언더플로우를 모니터링하기 위한 추가 카운터만이 필요하며, 카운터는 결과 값이 최종 집계되는 코어에 있다.
다층 퍼셉트론(MLP; Multi-Layer Perceptron) 및 RNN에서 가중치는 더 적은 레벨 수로 군집화 될 수 있다.
원래 가중치가 16비트 고정 소수점 데이터 유형인 경우 가중치는 256개의 다른 값을 가질 수 있다.
그러나 가중치가 4비트 인덱스로 군집화되면 가중치는 16개의 다른 값을 가질 수 있다.
이 경우 가중치 자체가 4비트임을 의미하지는 않는다.
4비트 가중치 군집화를 통해 MLP와 RNN에서 16비트와 동일한 성능을 기대할 수 있다.
본 발명에서는 RNN 연산부에 가중치 군집화를 적용하고, 곱셈 연산을 군집화 테이블 조회로 대체하는 방법을 제시한다.
군집화 테이블의 구성은 입력과 16개로 군집화된 가중치 간의 곱셈 또한 16 개의 값으로 군집화 된다.
따라서 군집화 테이블의 각 엔트리는 16비트 고정 소수점 입력과 16비트 고정 소수점 가중치 간의 사전 계산 된 곱셈 결과를 포함한다.
구성된 군집화 테이블을 사용한 곱셈은, 군집화된 인덱스만 디코딩되어 사전 계산된 엔트리에서 결과를 가져온다.
16비트가 아닌 4비트 인덱스만 로드하면 되므로 외부 메모리 접근을 75%를 줄일 수 있다.
또한 제로 스킵 방식을 사용함으로써 제로 입력 시 가중치 로드를 건너뛸 수 있으므로 평균적으로 92% 외부 메모리 접근을 줄일 수 있다.
이러한 방법으로 기존의 고정 소수점 곱셈기와 비교해 면적, 전력 및 연산 시간에서 모두 향상된 성능을 갖는다.
도 7에 나타난 군집화 테이블은 입력과 군집화된 가중치 간의 사전 계산된 곱셈 결과를 포함한다.
구성된 군집화 테이블을 사용한 곱셈은 도 8에 나타난 바와 같이, 군집화 인덱스만 디코딩되어 사전 계산된 엔트리에서 결과를 가져온다.
이러한 방법으로 기존의 고정 소수점 곱셈기와 비교해 도 9에 나타난 바와 같이 면적, 전력 및 연산 시간에서 모두 향상된 성능을 갖는다.
도 10에 나타낸 바와 같이, CNN의 fully-connected layer와 RNN이 동일한 형태의 매트릭스 곱으로 나타내질 수 있어, RNN 연산부를 공유하여 처리되도록 함으로써 에너지효율과 면적효율을 높인다.
이상에서 설명한 바와 같은 본 발명에 따르면, CNN의 activation에 요구되는 data bit수를 줄임과 동시에, 외부 메모리 접근을 최소화할 수 있도록 입력 분할 형태가 조절되며, 군집화 테이블 기반의 곱셈기를 이용함으로써 RNN 가중치 파라미터에 대한 외부 메모리 접근을 최소화하고, 연산기의 전력 효율과 면적 효율을 극대화하여 하나의 프로세서 칩에서 CNN과 RNN을 모두 고에너지 효율로 처리할 수 있으며, 제어부, 메모리부, 데이터버스부, 외부 인터페이스부를 공유하여 단일 아키텍처 형태의 뉴럴 네트워크 프로세서 또는 단순한 CNN과 RNN의 집적된 구조의 프로세서보다 면적과 전력 소모를 감소시킬 수 있는 효과가 있다.
이상의 설명에서는 본 발명의 바람직한 실시예를 제시하여 설명하였으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있음을 쉽게 알 수 있을 것이다.
10: CNN 연산부 30: RNN 연산부
50: 인터페이스부 70: 연산제어부
90: 메모리부 100: 온칩
50: 인터페이스부 70: 연산제어부
90: 메모리부 100: 온칩
Claims (7)
- 뉴럴 네트워크 프로세서 구조에 있어서, CNN을 수행하여 처리하는 CNN 연산부와, RNN을 수행하여 처리하는 RNN 연산부와, 제어를 수행하는 연산제어부와, 상기 연산부에서 사용될 데이터가 저장된 메모리부와, 외부와 데이터를 주고 받기위한 인터페이스부와, 구성 요소 간 데이터 이동이 수행되도록 하는 데이터버스부가 포함되어 온 칩 형태의 집적회로로 구성되며;
상기 CNN을 이루는 fully-connected 레이어는 RNN 연산부를 공유하여 데이터 처리가 이루어지는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조. - 청구항 1에 있어서, 상기 CNN 연산부에서 입력 데이터를 이미지 분할 방식과 채널 분할 방식을 혼합한 혼합 분할 방식을 통해 데이터 처리가 이루어지는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
- 청구항 1에 있어서, 상기 CNN 연산부에서 정수부 길이 및 소수부 길이는 동일한 레이어에서 고정되고, 상이한 레이어에 걸쳐 동적으로 변화되는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
- 청구항 1에 있어서, 상기 CNN 연산부는 오버플로우 계수 및 언더플로우 계수를 검출하여 정수부와 소수부의 길이를 자동으로 변경하는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
- 청구항 3에 있어서, 상기 CNN 연산부는 오버플로우 계수가 임계 값 보다 크면, 소수부 길이를 감소시키고 정수부 길이를 증가시키며, 언더플로우 계수가 임계 값 보다 크면, 정수부의 길이를 감소시키고, 소수부의 길이를 증가시키는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
- 청구항 1에 있어서, RNN 연산부는 가중치 군집화가 적용되어, 곱셈 연산을 군집화 테이블 곱셈기를 통하여 처리되는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
- 청구항 1에 있어서, 상기 CNN 연산부와 RNN 연산부는 메모리부 및 연산제어부를 공유하는 것을 특징으로 한 CNN과 RNN이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180010945A KR102098713B1 (ko) | 2018-01-29 | 2018-01-29 | Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 |
US15/888,102 US11263515B2 (en) | 2018-01-29 | 2018-02-05 | Heterogeneous processor architecture for integrating CNN and RNN into single high-performance, low-power chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180010945A KR102098713B1 (ko) | 2018-01-29 | 2018-01-29 | Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190091858A true KR20190091858A (ko) | 2019-08-07 |
KR102098713B1 KR102098713B1 (ko) | 2020-04-08 |
Family
ID=67392269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180010945A KR102098713B1 (ko) | 2018-01-29 | 2018-01-29 | Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11263515B2 (ko) |
KR (1) | KR102098713B1 (ko) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110689115A (zh) * | 2019-09-24 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN111091005A (zh) * | 2019-12-20 | 2020-05-01 | 北京邮电大学 | 一种基于元结构的无监督异质网络表示学习方法 |
KR20210030654A (ko) * | 2019-09-10 | 2021-03-18 | 주식회사 모빌린트 | 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 |
KR20210058404A (ko) | 2019-11-14 | 2021-05-24 | 엘지전자 주식회사 | 이미지 처리방법 및 처리장치 |
KR20210127538A (ko) * | 2020-04-14 | 2021-10-22 | 주식회사 모레 | 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템 |
KR20210128616A (ko) * | 2020-04-17 | 2021-10-27 | 인천대학교 산학협력단 | 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
JP7056225B2 (ja) * | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
US10740434B1 (en) | 2018-04-20 | 2020-08-11 | Perceive Corporation | Reduced dot product computation circuit |
US11783167B1 (en) | 2018-04-20 | 2023-10-10 | Perceive Corporation | Data transfer for non-dot product computations on neural network inference circuit |
US11468145B1 (en) | 2018-04-20 | 2022-10-11 | Perceive Corporation | Storage of input values within core of neural network inference circuit |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
EP3864573A1 (en) | 2018-10-11 | 2021-08-18 | Tesla, Inc. | Systems and methods for training machine models with augmented data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11995533B1 (en) | 2018-12-05 | 2024-05-28 | Perceive Corporation | Executing replicated neural network layers on inference circuit |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US11347297B1 (en) | 2019-01-23 | 2022-05-31 | Perceive Corporation | Neural network inference circuit employing dynamic memory sleep |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
FR3094118A1 (fr) * | 2019-03-20 | 2020-09-25 | Stmicroelectronics (Rousset) Sas | Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’un ajustement de zones allouées auxdits paramètres. |
US11625585B1 (en) | 2019-05-21 | 2023-04-11 | Perceive Corporation | Compiler for optimizing filter sparsity for neural network implementation configuration |
WO2021045676A1 (en) * | 2019-09-03 | 2021-03-11 | Agency For Science, Technology And Research | Neural network processor system and methods of operating and forming thereof |
WO2021153969A1 (en) * | 2020-01-27 | 2021-08-05 | Samsung Electronics Co., Ltd. | Methods and systems for managing processing of neural network across heterogeneous processors |
WO2024076399A1 (en) * | 2022-10-06 | 2024-04-11 | Vishnikin Konstantin | Methods, systems, apparatuses, and devices for personalizing menus of restaurants based on preferences |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017151757A1 (en) * | 2016-03-01 | 2017-09-08 | The United States Of America, As Represented By The Secretary, Department Of Health And Human Services | Recurrent neural feedback model for automated image annotation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2944829C (en) * | 2014-05-23 | 2022-10-25 | Ting Chen | Systems and methods for detection of biological structures and/or patterns in images |
US10140572B2 (en) * | 2015-06-25 | 2018-11-27 | Microsoft Technology Licensing, Llc | Memory bandwidth management for deep learning applications |
US10353861B2 (en) * | 2015-10-08 | 2019-07-16 | Via Alliance Semiconductor Co., Ltd. | Mechanism for communication between architectural program running on processor and non-architectural program running on execution unit of the processor regarding shared resource |
KR102637735B1 (ko) * | 2018-01-09 | 2024-02-19 | 삼성전자주식회사 | 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩 |
-
2018
- 2018-01-29 KR KR1020180010945A patent/KR102098713B1/ko active IP Right Grant
- 2018-02-05 US US15/888,102 patent/US11263515B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017151757A1 (en) * | 2016-03-01 | 2017-09-08 | The United States Of America, As Represented By The Secretary, Department Of Health And Human Services | Recurrent neural feedback model for automated image annotation |
Non-Patent Citations (2)
Title |
---|
Dongjoo Shin 외 4명. DNPU: An Energy-Efficient Deep Neural Network Processor with On-Chip Stereo Matching. 2017.08.22. * |
Hoi-Jun Yoo. Mobile/Embedded DNN and AI SoCs. 2017.09.14. * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210030654A (ko) * | 2019-09-10 | 2021-03-18 | 주식회사 모빌린트 | 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체 |
CN110689115A (zh) * | 2019-09-24 | 2020-01-14 | 上海寒武纪信息科技有限公司 | 神经网络模型处理方法、装置、计算机设备及存储介质 |
CN110826708A (zh) * | 2019-09-24 | 2020-02-21 | 上海寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
CN110826708B (zh) * | 2019-09-24 | 2022-05-31 | 安徽寒武纪信息科技有限公司 | 一种用多核处理器实现神经网络模型拆分方法及相关产品 |
KR20210058404A (ko) | 2019-11-14 | 2021-05-24 | 엘지전자 주식회사 | 이미지 처리방법 및 처리장치 |
US11468540B2 (en) | 2019-11-14 | 2022-10-11 | Lg Electronics Inc. | Method and device for image processing |
CN111091005A (zh) * | 2019-12-20 | 2020-05-01 | 北京邮电大学 | 一种基于元结构的无监督异质网络表示学习方法 |
CN111091005B (zh) * | 2019-12-20 | 2022-05-13 | 北京邮电大学 | 一种基于元结构的无监督异质网络表示学习方法 |
KR20210127538A (ko) * | 2020-04-14 | 2021-10-22 | 주식회사 모레 | 딥러닝 작업을 이기종 가속기에서 처리하는 방법 및 이러한 방법을 수행하는 클러스터 시스템 |
KR20210128616A (ko) * | 2020-04-17 | 2021-10-27 | 인천대학교 산학협력단 | 합성곱 신경망 모델에 포함된 합성곱 필터의 개수 조정을 통해 합성곱 연산의 효율을 향상시키기 위한 컴퓨팅 장치 및 그 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20190236437A1 (en) | 2019-08-01 |
US11263515B2 (en) | 2022-03-01 |
KR102098713B1 (ko) | 2020-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190091858A (ko) | Cnn과 rnn이 하나의 고성능 저전력 칩으로 집적된 이기종 프로세서 구조 | |
WO2021036905A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021036904A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021036890A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021036908A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20220351019A1 (en) | Adaptive Search Method and Apparatus for Neural Network | |
Nabavinejad et al. | Coordinated batching and DVFS for DNN inference on GPU accelerators | |
Du et al. | Efficient softmax hardware architecture for deep neural networks | |
CN113515351B (zh) | 一种基于能耗与QoS协同优化的资源调度实现方法 | |
TW201807621A (zh) | 人造神經網路、人造神經元及其控制方法 | |
US20230017808A1 (en) | Systems and Methods for Progressive Learning for Machine-Learned Models to Optimize Training Speed | |
CN110874627B (zh) | 数据处理方法、数据处理装置及计算机可读介质 | |
CN113778691B (zh) | 一种任务迁移决策的方法、装置及系统 | |
WO2022088063A1 (zh) | 神经网络模型的量化方法和装置、数据处理的方法和装置 | |
CN112766467B (zh) | 基于卷积神经网络模型的图像识别方法 | |
CN112085175B (zh) | 基于神经网络计算的数据处理方法和装置 | |
Peroni et al. | ARGA: Approximate reuse for GPGPU acceleration | |
Li et al. | Unified accelerator for attention and convolution in inference based on FPGA | |
WO2021244045A1 (zh) | 一种神经网络的数据处理方法及装置 | |
CN117725963A (zh) | 一种用于Transformer模型推理计算的方法、系统及装置 | |
CN111629216B (zh) | 边缘网络环境下基于随机森林算法的vod业务缓存替换方法 | |
Zhang et al. | DVFO: Learning-Based DVFS for Energy-Efficient Edge-Cloud Collaborative Inference | |
WO2020041934A1 (zh) | 一种数据处理设备以及一种数据处理方法 | |
CN111783446B (zh) | 序列处理的方法与装置 | |
WO2021036412A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |