KR102474787B1 - 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법 - Google Patents

일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법 Download PDF

Info

Publication number
KR102474787B1
KR102474787B1 KR1020200038359A KR20200038359A KR102474787B1 KR 102474787 B1 KR102474787 B1 KR 102474787B1 KR 1020200038359 A KR1020200038359 A KR 1020200038359A KR 20200038359 A KR20200038359 A KR 20200038359A KR 102474787 B1 KR102474787 B1 KR 102474787B1
Authority
KR
South Korea
Prior art keywords
weight
weights
buffer memory
matched
imu
Prior art date
Application number
KR1020200038359A
Other languages
English (en)
Other versions
KR20210121533A (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 KR1020200038359A priority Critical patent/KR102474787B1/ko
Priority to CN202011353674.1A priority patent/CN113469323A/zh
Priority to US17/108,927 priority patent/US11928578B2/en
Publication of KR20210121533A publication Critical patent/KR20210121533A/ko
Application granted granted Critical
Publication of KR102474787B1 publication Critical patent/KR102474787B1/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
    • G06N3/045Combinations of networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • 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
    • G06N7/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 IA 및 가중치의 밀도와 상관없이 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 그 처리 방법에 관한 것으로, 본 발명의 실시예에 따르면, 희소성 인식 신경 처리 방법은 복수의 입력 활성화(Input Activation, IA)를 수신하는 단계; 각 가중치 아웃풋 채널에서 넌제로 값을 가지는 가중치(Weight)를 획득하는 단계; 상기 가중치 및 IA를 메모리에 저장하며, 상기 가중치 및 IA 가 저장된 메모리 어드레스 위치를 포함하는 인풋 채널 인덱스를 획득하는 단계; 상기 인풋 채널 인덱스를 저장하는 버퍼 메모리를 포함하는 IMU(Index Matching Unit)에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치를 상기 IMU 의 행(row) 사이즈에 맞춰 배열하며, 상기 가중치 및 IA를 매칭시키는 단계; 를 포함할 수 있으며, 이를 통해 가중치 밀도가 낮아 IA 및 가중치간 매칭 확률이 떨어지거나 가중치 밀도가 높아 IA 및 가중치간 매칭이 너무 많아져서 병목 현상이 일어나 곱셈기의 효율이 급감하는 것을 방지하고, 곱셈기의 효율을 일정하게 유지할 수 있다.

Description

일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법{SPARSITY-AWARE NEURAL PROCESSING UNIT FOR PERFORMING CONSTANT PROBABILITY INDEX MATCHING AND PROCESSING METHOD OF THE SAME}
본 발명은 IA 및 가중치의 밀도와 상관없이 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 그 처리 방법에 관한 것이다.
도 1 에 도시된 선행 문헌에서, 컨벌루션 뉴럴 네트워크(Convolution Neural Network)는 가중치(Weight) 필터를 적용하여 출력한 입력 활성화(Input Activation)를 출력 계층에 대한 입력으로 사용하는 것으로 큰 차원의 공간에서 다수의 행렬 곱셈을 필요로 한다. 그 중에서도 희소 컨벌루션 뉴럴 네트워크(Sparse Convolution Neural Network)는 IA가 제로 값일 경우 가지치기를 진행하여 넌제로 값만으로 다수의 행렬 곱셈을 진행하는 계산 방식을 사용한다.
즉, 희소 컨벌루션 뉴럴 네트워크는 IA 및 가중치 중 0 에 가까운 값들을 0으로 근사화하여 제로 값(0)들을 제거하며, 넌제로 값만을 남겨 넌제로 값들이 있는 인덱스를 찾아 해당 인덱스에 있는 값들을 처리 소자(Processing Element)로 불러온 후 곱셈축적 연산하는 계산 방식을 사용한다. 이를 통해 뉴럴 네트워크 알고리즘을 위한 메모리 통신 횟수 및 곱셈 연산 횟수를 상당히 줄일 수 있어 IA 및 가중치간 행렬 곱셈을 효과적으로 수행할 수 있다.
그러나, 선행 문헌에 따르면 각 레이어 별로 IA 및 가중치 매트릭스의 밀도가 서로 다르게 나타나며, 이러한 희소행렬을 이용하여 IA 및 가중치간 행렬 곱셈을 효과적으로 수행하기 위해서는 상기 곱셈 연산이 각 레이어 별 IA 및 가중치 매트릭스의 밀도 변화에 구애받지 않고 일정한 확률을 유지하도록 해야 할 필요성이 존재한다.
즉, 희소(sparse)한 변수를 가진 모델의 성능을 일정하게 유지하기 위한 발명의 필요성이 대두된다.
IA 및 가중치 매트릭스의 밀도에 따른 곱셈기의 이용률(Utilization)이 급격하게 변화하는 바, IA 및 가중치 매트릭스 밀도 변화와 상관없이 곱셈기의 이용률이 일정한 확률로 유지되도록 가중치 인풋 및 아웃풋 채널을 매트릭스에 정렬하는 희소성 인식 신경 처리 유닛 및 처리 방법에 관한 것이다.
본 발명의 일 실시예에 따르면, 복수의 입력 활성화(Input Activation, IA)를 수신하는 단계; 각 가중치 아웃풋 채널에서 넌제로 값을 가지는 가중치(Weight)를 획득하는 단계; 상기 가중치 및 IA를 메모리에 저장하며, 상기 가중치 및 IA 가 저장된 메모리 어드레스 위치를 포함하는 인풋 채널 인덱스를 획득하는 단계; 상기 인풋 채널 인덱스를 저장하는 버퍼 메모리를 포함하는 IMU(Index Matching Unit)에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치를 상기 IMU 의 행(row) 사이즈에 맞춰 배열하며, 상기 가중치 및 IA를 매칭시키는 단계; 를 포함하는 희소성 인식 신경 처리 유닛 처리 방법을 제공한다.
또한, 상기 IMU는 비교기 어레이, 가중치 버퍼 메모리 및 IA 버퍼 메모리를 포함하며, 상기 비교기 어레이의 바운더리에, IA 인풋 채널 인덱스를 저장하는 상기 IA 버퍼 메모리를 열(Column) 방향으로 배열하고, 넌제로 값 가중치 인풋 채널 인덱스를 저장하는 상기 가중치 버퍼 메모리를 행(Row) 방향으로 배열하여 상기 가중치 및 IA를 매칭시킬 수 있다.
이때, 상기 가중치 버퍼 메모리에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치가 오름차순으로 배치되며, 상기 가중치의 아웃풋 채널의 인풋 채널 사이즈 및 넌제로 값 가중치의 개수 중 적어도 하나를 초과하면 상기 가중치의 다음 아웃풋 채널로 넘어가도록 배열되거나, 상기 IA 버퍼 메모리는 IA의 각 인풋 채널 인덱스를 픽셀 디멘젼(Pixel-Dimension)과 일대일 매칭시키며, 각 픽셀 디멘젼을 오름차순으로 배열할 수 있다.
본 발명의 일 실시예에 따르면, 상기 가중치 버퍼 메모리에서, 상기 가중치 및 IA 간 밀도(d)에 따라 각 가중치 아웃풋 채널의 인풋 채널 인덱스의 평균 개수 n이 결정되는 단계; 상기 인풋 채널 인덱스의 평균 개수 n에 따라 상기 가중치 버퍼 메모리의 가중치 아웃풋 채널 평균 개수 m이 결정되는 단계; 를 더 포함하며, 상기 n 및 m은 다음과 같은 식으로 결정되며, n=s*d, 이때 s는 IMU의 열 사이즈, m=s/n 일 수 있고, 각 CLK 사이클 마다 상기 가중치 버퍼 메모리 중 적어도 하나에 위치한 가중치 인풋 채널 인덱스가 각 IA 인풋 채널 인덱스와 매칭될 확률(Pm)은 Pm=d*m으로 유지될 수 있다.
본 발명의 다른 일 실시예에 따르면, 상기 IA 및 상기 가중치의 매칭된 인덱스에 플래그 신호를 표시하고, 최대 p개의 매칭된 인덱스를 p-way 우선순위 인코더로 전송하는 단계; 및 최대 p 개의 매칭된 IA 및 가중치 페어를 전달받은 상기 p-way 우선순위 인코더는 상기 매칭된 IA 및 가중치 페어를 한 개씩 순차적으로 FIFO에 전달하는 단계; 를 더 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 상기 FIFO에 저장된 매칭된 IA 및 가중치 페어를 곱셈기로 보낸 후에, 가중치 버퍼 메모리에 저장된 가중치 중 p-way 우선순위 인코더에 의해 FIFO로 보낸 가중치 값은 삭제하고, 가중치 버퍼 메모리에 저장된 가중치 중 우선순위 인코더에 의해 FIFO로 보내지지 않은 가중치는 재배열하는 단계를 더 포함할 수 있다.
본 발명의 다른 양태로서 처리 요소(Processing Element)에 있어서, 가중치 및 IA 의 넌제로 값을 저장하는 가중치 버퍼 메모리 및 IA 버퍼 메모리를 포함하는 버퍼 메모리 및 상기 가중치 및 상기 IA의 인덱스를 매칭시키는 비교기 어레이를 포함하는 IMU; 상기 비교기 어레이에서 최대 p개의 매칭된 가중치 및 IA 페어를 전달받는 p-way 우선순위 인코더; 상기 p-way 우선순위 인코더에서 매칭된 가중치 및 IA 페어를 하나씩 전달받아 곱셈기로 하나씩 전달하는 FIFO; 를 포함할 수 있다.
본 발명에 따른 가중치 아웃풋 채널 정렬을 통해 IA 및 가중치간 매트릭스 밀도가 낮을 때는 매칭된 IA 및 가중치 페어를 충분히 IMU에 공급할 수 없어 곱셈기의 이용률이 감소하고, 밀도가 높을 때는 곱셈기가 매칭된 IA 및 가중치 페어 에 대한 연산을 모두 수행하지 못해 메모리에 병목 현상이 일어나는 것을 방지하고, 곱셈기 이용률을 일정하게 유지할 수 있다.
도 1a 및 도 1b는, 종래의 희소 인식 신경 처리 유닛 및 IA/가중치 밀도에 따른 곱셈기 이용률 변화 그래프를 도시한 것이다.
도 2는, 본 발명의 일 실시예에 따른 IMU(Index Matching Unit) 및 p-way 우선순위 인코더를 도시한 것이다.
도 3은, 본 발명의 일 실시예에 따른 IMU가 IA 및 가중치 밀도에 따라 매칭된 IA 및 가중치 페어를 출력하는 처리 과정을 도시한 것이다.
도 4는, 본 발명의 다른 일 실시예에 따른 IMU가 IA 및 가중치 밀도에 따라 매칭된 IA 및 가중치 페어를 출력하는 처리 과정을 도시한 것이다.
도 5는, 본 발명의 또 다른 일 실시예에 따른 IMU가 IA 및 가중치 밀도에 따라 매칭된 IA 및 가중치 페어를 출력하는 처리 과정을 도시한 것이다.
도 6은, 본 발명의 일 실시예에 따른 IMU를 포함하는 처리 소자(Processing Element) 및 처리 소자의 매칭된 IA 및 가중치 페어의 처리 과정을 도시한 것이다.
도 7은, 본 발명의 일 실시예에 따른 처리 과정을 수행하는 처리 소자의 블록도를 도시한 것이다.
도 1a를 참조하면, 종래 IMU(Index Matching Unit)(10)는 활성화 입력(IA) 및 가중치(Weight)에 대해서 IA는 (1xN), 가중치(W)는 (Nx1) 로 매트릭스 배열하여 IA 및 가중치의 인덱스를 매칭시켰으며, IA의 (1xN) 매트릭스에 대해서 0(W1), 2(W2), 12(W3), … , WN 순서대로 매칭을 수행하여 매칭된 IA 및 가중치 페어의 매칭된 인덱스를 우선순위 인코더에 최대 한 개씩 전달하였다. 곱셈기는 우선순위 인코더로부터 매칭된 IA 및 가중치 페어의 매칭된 인덱스를 하나씩 전달 받아 연산을 수행하였다.
(Nx1) 매트릭스 배열된 가중치에서 가중치 밀도에 따라 넌제로 값의 가중치 개수가 달라지며, 가중치 밀도가 낮을수록 넌제로 값의 가중치 개수는 N보다 현저히 작아지게 된다.
가중치에서 제로 값을 삭제하고 넌제로 값만 남긴 상태 그대로 IA와 인덱스 매칭을 수행한다면, IA와 가중치의 매트릭스가 낮은 밀도를 가질 경우, 매칭된 IA 및 가중치 페어의 숫자가 적어, IMU로부터 곱셈기로 공급되는 IA 및 가중치 페어 역시 적어지며, 곱셈기의 효율이 떨어지게 된다. 반대로, IA와 가중치의 매트릭스가 높은 밀도를 갖는 경우 매칭된 IA 및 가중치 페어의 숫자가 곱셈기의 수용량을 초과하여 매 CLOCK 사이클마다 매칭된 IA 및 가중치 페어가 곱셈기에 전달되지 못하고 IMU에 누적되게 되며, 곱셈기가 이를 모두 한꺼번에 처리할 수 없어 병목현상이 발생하게 된다.
도 1b를 살펴보면, IA/가중치 밀도가 1.0/1.0이면, 비교기 어레이의 사이즈가 64x64, 32x32, 16x16인 경우 모두, 곱셈기를 100% 가까이 이용할 수 있음을 알 수 있다. 그러나 이보다 더 가중치 밀도가 높아질 경우, 곱셈기 성능은 이미 전부 사용하고 있는데 매칭된 IA 및 가중치 페어는 계속 누적되게 되어, IMU가 우선순위 인코더로 전달하는 매칭된 페어가 계속 쌓여 IMU가 스톨될 수 있다.
반대로 IA/가중치 밀도가 0.1/0.1이면, 비교기 어레이 사이즈가 작을수록 곱셈기의 성능에 10% 밖에 활용하지 못해 계산 효율이 극도로 떨어지게 된다.
또한, IA 및 가중치의 매트릭스 밀도에 따라 하나의 IA에 대해 복수의 가중치간 매칭이 발생할 수 있는데, 우선순위 인코더를 사용할 경우 IMU는 하나의 사이클마다 하나의 매칭된 IA 및 가중치 페어만 전달할 수 있어, 복수의 매칭된 IA 및 가중치 페어를 모두 곱셈기로 전달할 때까지 매칭되지 않은 IA 및 가중치 인덱스들은 복수의 사이클동안 IMU에 대기 해야 하여 전체 처리 유닛의 효율이 떨어지게 된다.
이하에서 본 발명에 따른 실시예를 구체적으로 설명하며, 본 발명의 일 실시예에 따르면 IA 및 가중치 매트릭스 밀도에 따라 곱셈기의 효율이 크게 변동되지 않고 일정한 효율을 유지할 수 있도록 IA 및 가중치간 매칭 확률을 일정하게 유지할 수 있다.
도 2 는 본 발명의 일 실시예에 따른 IMU(100)를 도시한 것으로, IA 및 가중치 매트릭스 배열을 도시한 것이다.
도 2 에 도시된 바와 같이, IMU(100)는 IA 및 가중치를 저장할 IA 버퍼 메모리(104) 및 가중치 버퍼 메모리(103)를 포함하며, IA 및 가중치간 인덱스를 비교하여 매칭하는 비교기 어레이(Comparator array)(101)를 포함할 수 있다.
비교기 어레이(101) 사이즈는 사용자 설정에 따라 변동될 수 있으며, 이하 본 발명의 실시예에서는 32x32 사이즈를 가정하고 설명하도록 한다. 이는 예시적인 실시예일뿐이며 청구범위는 실시예로 제한되지 않는다.
도 2에 도시된 바와 같이, IA 버퍼 메모리(104)에 (32x1) 행렬로 나열된 1, 12, 3, 4, 10, …,12의 데이터 요소는 입력 활성화(IA) 의 인풋 채널 인덱스(input channel index) 값을 의미하며, 각 행은 IA가 신경망 계층에 위치한 입력의 깊이에 대응되는 것으로, IA#n 에서 n은 각 IA가 위치한 픽셀 디멘젼 위치(Pixel-dimension position)를 의미하며, n은 0~31의 값을 가질 수 있다.
더하여, 가중치 버퍼 메모리(103)에 (1x32) 행렬로 나열된 0, 2, 12, 1, 3, 10, 14, …, 4, 6의 데이터 요소는 제로 값을 0으로 근사화하여 제거하고 남은 넌제로 값을 나열한 가중치의 인풋 채널 인덱스(input channel index) 값으로, 넌제로 값의 가중치를 행렬 구조로 표현한 것이다. W#m에서 m은 가중치 아웃풋 채널의 인덱스를 의미하며, m은 가중치의 밀도에 따라 값이 결정될 수 있다. 가중치 밀도에 따른 m 의 값 결정 과정을 도 3 내지 5와 함께 설명하기로 한다.
가중치 행렬은 각 가중치의 아웃풋 채널마다 넌제로 값을 낮은 값부터 높은 값으로 배열하며, IA 및 가중치 매트릭스 행렬에서 인풋 채널의 인덱스를 비교하여 일치하는 값을 매칭시킬 수 있다.
상기 IA 및 가중치가 매칭된 경우, 매칭된 IA 및 가중치 페어는 p-way 우선순위 인코더(102)로 전달되며, 상기 매칭된 IA 및 가중치 페어는 한 개일 수 있으며 또는 복수 개일 수 있다. 매칭된 IA 및 가중치 페어는 한 개면 한 개가 p-way 우선순위 인코더(102)로 전달되며, 매칭된 IA 및 가중치 페어가 복수 개이면 최대 p개까지 복수 개의 페어가 한꺼번에 p-way 우선순위 인코더(102)로 전달될 수 있다.
따라서, 본 발명의 일 실시예에 따르면, 복수의 입력 활성화(Input Activation, IA)를 수신하는 단계, 각 가중치 아웃풋 채널에서 넌제로 값을 가지는 가중치(Weight)를 획득하는 단계, 가중치 및 IA를 메모리에 저장하며, 상기 가중치 및 IA 가 저장된 메모리 어드레스 위치를 포함하는 인풋 채널 인덱스를 획득하는 단계, 인풋 채널 인덱스를 저장하는 버퍼 메모리를 포함하는 IMU(Index Matching Unit)에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치를 상기 IMU 의 행(row) 사이즈에 맞춰 배열하며, 상기 가중치 및 IA를 매칭시키는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따르면, IMU는 비교기 어레이, 가중치 버퍼 메모리(103) 및 IA 버퍼 메모리(104)를 포함하며, 비교기 어레이의 바운더리에, IA 인풋 채널 인덱스를 저장하는 상기 IA 버퍼 메모리(104)를 열(Column) 방향으로 배열하고, 넌제로 값 가중치 인풋 채널 인덱스를 저장하는 상기 가중치 버퍼 메모리(103)를 행(Row) 방향으로 배열하여 상기 가중치 및 IA를 매칭시킬 수 있다.
구체적으로, 가중치 버퍼 메모리(103)에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치가 오름차순으로 배치되며, 상기 가중치의 아웃풋 채널의 인풋채널 사이즈 및 넌제로 값 가중치의 개수 중 적어도 하나를 초과하면 상기 가중치의 다음 아웃풋 채널로 넘어가도록 배열될 수 있으며, 상기 IA 버퍼 메모리(104)는 IA의 각 인풋 채널 인덱스를 픽셀 디멘젼(Pixel-Dimension)과 일대일 매칭시키며, 각 픽셀 디멘젼을 오름차순으로 배열할 수 있다.
도 3 내지 5는, 도 2에 따라 IA 및 가중치를 매트릭스 행렬로 배열할 경우, IA 및 가중치 밀도에 따라 IMU(100)가 매칭된 IA 및 가중치 페어를 출력할 확률을 도시한 것이다. 또한, 도 3 내지 5 는 설명의 편의를 위해 IA 는 0 내지 31 개의 인풋 인덱스 채널 중 하나의 인풋 인덱스 채널만 표시하기로 한다.
도 3은 가중치 밀도가 0.1로(d=0.1), 가중치 밀도가 0.1이라는 것은 가중치의 인풋 채널 인덱스 0~31 중에서 넌제로 값이 존재할 확률이 10개 중 1개 라는 것이다. 즉, 사이즈가 32인 가중치 인풋 채널에서 넌제로 값의 밀도가 0.1인 경우, 가중치 넌제로 값은 32*0.1=3.2 개가 존재할 수 있다. 다만, 이는 평균적인 확률로 반드시 3.2개가 존재해야 하는 것은 아니다. 도 3 에 도시된 바와 같이, W#0의 넌제로 값은 0, 2, 12로 세 개가 존재하며, W#1은 1, 3, 10, 14로 네 개의 인풋 채널 인덱스가 존재하며, W#9의 경우 4, 6으로 두 개의 채널 인풋 인덱스가 존재한다.
또한, 본 발명의 일 실시예에 따르면 IA 및 가중치간 32x32 매트릭스에서, 매트릭스의 열을 32개의 가중치 넌제로 값으로 채울 수 있다. [0:31] 사이즈의 가중치 중 근사화 기법을 통해 남은 넌제로 값만을 배열하며, 낮은 아웃풋 채널 인덱스 순서대로 W#0, W#1,…,W#9 매트릭스의 열을 채우며, 매트릭스의 사이즈인 32개의 가중치 채널 인풋 인덱스를 채울 수 있다.
그 결과, 평균 3.2개의 넌제로 값이 존재하는 가중치 W#m 의 넌제로 인풋 채널 인덱스 값을 매트릭스 사이즈에 맞춰 배열하여 가중치 아웃풋 채널이 0~9까지 총 10개 배열될 수 있다.
다만, 상술한 바와 같이 이는 확률에 해당하여, 평균 10개의 가중치 아웃풋 채널이 배열될 수 있으며, 반드시 10개의 가중치 아웃풋 채널이 배열되는 것은 아니다. 따라서 청구범위는 이에 제한되지 않는다.
따라서, 도 3 에 도시된 바와 같이, W#0~W#9 로 총 10개의 가중치 아웃풋 채널이 배열된 상태에서 IA#1의 인풋 채널 인덱스 12 와 매칭될 확률이 0.1 인 가중치 아웃풋 채널(W#m)이 10개가 존재하며, 0.1*10=1 로 상기 IA 및 가중치 매트릭스(1x32)에서는 1의 확률로 IA 및 가중치간 매칭이 수행될 수 있다.
가중치 밀도가 낮아 IA 및 가중치간 매칭 확률이 떨어지고 곱셈기의 효율이 급감하는 것을 방지하기 위해 넌제로 값의 가중치를 매트릭스의 사이즈만큼 가중치 아웃풋 채널로 채워넣어 전체적인 IMU 매트릭스 매칭 확률을 일정하게 유지하고, 이를 통해 곱셈기의 효율을 일정하게 유지할 수 있게 된다.
도 4는 가중치 밀도가 0.5로(d=0.5), 가중치 밀도가 0.5 라는 것은 가중치의 인풋 채널 인덱스 0~31 중에서 넌제로 값이 존재할 확률이 10개 중 5개 라는 것이다. 즉, 사이즈가 32인 가중치 인풋 채널에서 넌제로 값의 밀도가 0.5인 경우, 가중치 넌제로 값은 32*0.5=16 개가 존재할 수 있다. 다만, 이는 평균적인 확률로 반드시 16개가 존재해야 하는 것은 아니다. 도 4에 도시된 바와 같이, W#0의 넌제로 값은 0, 1, 3, … , 30 으로 16개가 존재하며, W#1은 2,3, …, 28, 29 로 16개의 인풋 채널 인덱스가 존재하여 1x32의 매트릭스 열을 채우는데 두 개의 가중치 아웃풋 채널을 사용하였음을 알 수 있다.
즉, 본 발명의 일 실시예에 따르면 IA 및 가중치간 32x32 매트릭스에서, 매트릭스의 열을 32개의 가중치 넌제로 값으로 채울 수 있다. [0:31] 사이즈의 가중치 중 근사화 기법을 통해 남은 넌제로 값만을 배열하며, 낮은 아웃풋 채널 인덱스 순서대로 W#0 및 W#1 매트릭스의 열을 채우며, 매트릭스의 사이즈인 32개의 가중치 채널 인풋 인덱스를 채울 수 있다.
그 결과, 평균 16개의 넌제로 값이 존재하는 가중치 W#m 의 넌제로 인풋 채널 인덱스 값을 매트릭스 사이즈에 맞춰 배열하여 가중치 아웃풋 채널이 0~1까지 총 2개 배열될 수 있다.
다만, 상술한 바와 같이 이는 확률에 해당하여, 평균 2개의 가중치 아웃풋 채널이 배열될 수 있으며, 반드시 2개의 가중치 아웃풋 채널이 배열되는 것은 아니다. 따라서 청구범위는 이에 제한되지 않는다.
따라서, 도 4에 도시된 바와 같이, W#0~W#1 로 총 2개의 가중치 아웃풋 채널이 배열된 상태에서 IA#0의 인풋 채널 인덱스 1 과 매칭될 확률이 0.5 인 가중치 아웃풋 채널(W#m)이 2 개가 존재하며, 0.5*2=1 로 상기 IA 및 가중치 매트릭스(1x32)에서는 1의 확률로 IA 및 가중치간 매칭이 수행될 수 있다.
가중치 밀도가 낮아 IA 및 가중치간 매칭 확률이 떨어지거나 가중치 밀도가 높아 IA 및 가중치간 매칭이 너무 많아져서 병목 현상이 일어나 곱셈기의 효율이 급감하는 것을 방지하기 위해 넌제로 값의 가중치를 매트릭스의 사이즈만큼 가중치 아웃풋 채널로 채워넣어 전체적인 IMU 매트릭스 매칭 확률을 일정하게 유지하고, 이를 통해 곱셈기의 효율을 일정하게 유지할 수 있게 된다.
도 5는 가중치 밀도가 1.0 으로(d=1.0), 가중치 밀도가 1.0 이라는 것은 가중치의 인풋 채널 인덱스 0~31 중에서 넌제로 값이 존재할 확률이 10개 중 10개 라는 것이다. 즉, 사이즈가 32인 가중치 인풋 채널에서 넌제로 값의 밀도가 1.0인 경우, 가중치 넌제로 값은 32*1.0=32 개가 존재할 수 있다. 다만, 이는 평균적인 확률로 반드시 32개가 존재해야 하는 것은 아니다. 도 4 에 도시된 바와 같이, W#0의 넌제로 값은 0, 1, 2, 3, 4, 5, 6, … , 30, 31 으로 32개의 인풋 채널 인덱스가 존재하여 1x32의 매트릭스 열을 채우는데 한 개의 가중치 아웃풋 채널을 사용하였음을 알 수 있다.
즉, 본 발명의 일 실시예에 따르면 IA 및 가중치간 32x32 매트릭스에서, 매트릭스의 열을 32개의 가중치 넌제로 값으로 채울 수 있다. [0:31] 사이즈의 가중치 중 근사화 기법을 통해 남은 넌제로 값만을 배열하며 낮은 아웃풋 채널 인덱스 순서대로 W#0 매트릭스의 열을 채우는 것으로, 가중치 밀도가 1인 경우 인풋 채널 인덱스가 모두 넌제로 값일 수 있어, 하나의 가중치 아웃풋 채널만을 사용하여 매트릭스의 사이즈인 32개의 가중치 채널 인풋 인덱스를 채울 수 있다.
그 결과, 평균 32개의 넌제로 값이 존재하는 가중치 W#m 의 넌제로 인풋 채널 인덱스 값을 매트릭스 사이즈에 맞춰 배열하여 가중치 아웃풋 채널 0만으로 총 한 개 배열될 수 있다.
다만, 상술한 바와 같이 이는 확률에 해당하여, 평균 1개의 가중치 아웃풋 채널이 배열될 수 있으며, 반드시 1개의 가중치 아웃풋 채널이 배열되는 것은 아니다. 따라서 청구범위는 이에 제한되지 않는다.
따라서, 도 5에 도시된 바와 같이, W#0으로 총 1개의 가중치 아웃풋 채널이 배열된 상태에서 IA의 인풋 채널 인덱스 5 와 매칭될 확률이 1.0 인 가중치 아웃풋 채널(W#m)이 1개가 존재하며, 1.0*1=1 로 상기 IA 및 가중치 매트릭스(1x32)에서는 1의 확률로 IA 및 가중치간 매칭이 수행될 수 있다.
가중치 밀도가 너무 높아 IA 및 가중치간 매칭이 많아져서 IMU에서 매칭된 페어를 전달할 때 병목 현상이 일어나고 곱셈기의 효율이 급감하는 것을 방지하기 위해 넌제로 값의 가중치를 매트릭스의 사이즈만큼 가중치 아웃풋 채널로 채워 넣어 전체적인 IMU 매트릭스 매칭 확률을 일정하게 유지하고, 이를 통해 곱셈기의 효율을 일정하게 유지할 수 있게 된다.
즉, 본 발명의 일 실시예에 따르면, 가중치 버퍼 메모리(103)에서, 가중치 및 IA 간 밀도(d)에 따라 각 가중치 아웃풋 채널의 인풋 채널 인덱스의 평균 개수 n이 결정되며, 인풋 채널 인덱스의 평균 개수 n에 따라 가중치 버퍼 메모리(103)의 가중치 아웃풋 채널 평균 개수 m이 결정될 수 있고, 상기 n 및 m은 다음과 같은 식 (1)으로 결정될 수 있다.
n=s*d, m=s/n ...식(1)
(이때 s는 IMU의 열 사이즈)
또한, 그 결과 각 CLK 사이클 마다 상기 가중치 버퍼 메모리(103) 중 적어도 하나에 위치한 가중치 인풋 채널 인덱스가 각 IA 인풋 채널 인덱스와 매칭될 확률(Pm)은 d*m으로 일정하게 유지될 수 있다.
다시 말해, 도 3 내지 도 5에 도시된 바와 같이, 가중치 밀도가 변화하더라도 하나의 IA에 대해서 가중치가 매칭될 확률(Pm)은 1(=d*m=d*s/n=d*s/(s*d))로 일정하게 유지되어 IMU에서 다음 단계로 매칭된 IA 및 가중치 페어를 전달할 때 곱셈기의 효율을 일정하게 유지할 수 있다. 도 6에서 후술하듯이, 하나의 IA 마다 p-way 우선순위 인코더, FIFO, 곱셈기가 대응되게 배치되는 바, 하나의 IA 및 가중치 간에 일정한 확률로 매칭이 이루어질 경우 곱셈기 전체의 효율이 일정하게 유지되어 가중치 밀도에 따른 계산 성능 차이가 발생하지 않는다.
도 6은 본 발명의 일 실시예에 따른 IMU(100)를 포함하는 처리 소자(Processing Element) 및 처리 소자의 매칭된 IA 및 가중치 페어의 처리 과정을 도시한 것이다.
도 6(a)에 도시된 바와 같이, 본 발명의 일 실시예에 따른 처리 소자는 IA 및 가중치를 매트릭스 배열한 비교기 어레이(101)를 포함하는 IMU(100), IMU(100)의 각 행에 할당된 p-way 우선순위 인코더(102), FIFO(105) 및 곱셈기(106)를 포함할 수 있다.
구체적으로, IA 및 가중치를 포함하는 IA 버퍼 메모리(104) 및 가중치 버퍼 메모리(103)를 행과 열로 배열하며, 비교기 어레이(101)를 통해 상기 IA 및 가중치의 인덱스를 비교하고 매칭하는 IMU(100)는 매칭된 IA 및 가중치 페어를 p-way 우선순위 인코더(102)로 전달할 수 있다.
도 3 내지 도 5 에 도시한 바와 같이, 밀도에 상관없이 각 행에서는 매칭된 IA 및 가중치 페어가 나올 수 있으며, 매칭된 IA 및 가중치 페어가 복수 개 존재할 수 있다. 매칭된 IA 및 가중치 페어를 우선순위 인코더로 전달할 때마다 한 사이클씩 소비되는 바, 복수 개의 매칭된 IA 및 가중치 페어를 한 개씩 전달할 경우 시간이 많이 소모되고 처리 소자의 효율이 떨어지게 될 수 있다. 따라서, p-way 우선순위 인코더(102)를 사용하여 복수 개의 매칭된 IA 및 가중치 페어를 최대 p개씩 p-way 우선순위 인코더(102)로 한번에 전달할 수 있도록 하여 소모되는 사이클 낭비를 줄일 수 있다.
p-way 우선순위 인코더(102)는 전달받은 최대 p개의 매칭된 IA 및 가중치 페어를 FIFO(105)로 하나씩 전달하며, FIFO(105)는 전달받은 순서대로 깊이를 달리하여 저장할 수 있다. FIFO(105)는 전달받은 매칭된 IA 및 가중치 페어를 하나씩 곱셈기(Multiplier)(106)로 전달하여 곱셈기(106)가 계산을 수행할 수 있도록 한다.
이 때, 도 6(b)에 도시된 바와 같이, 매칭된 IA 및 가중치 페어를 p-way 우선순위 인코더(102)로 전달하는 동안, 비교기 어레이(101)에서 인덱스 매칭에 사용된 가중치들은 삭제하고, 사용되지 않은 가중치들을 순서대로 재배열할 수 있다.
p-way 우선순위 인코더(102)로 전달할 수 있는 최대 매칭된 IA 및 가중치 페어의 개수는 p개이며, 만약 p개를 초과하여 매칭된 IA 및 가중치 페어가 발생했을 경우, p-way 우선순위 인코더(102)로 p개 전달하고 남은 매칭된 IA 및 가중치 페어를 p-way 우선순위 인코더(102)로 전달할 때까지 수회의 사이클 동안 대기해야 하며, 이는 처리 소자의 효율을 떨어트린다.
따라서, 본 발명의 일 실시예에 따르면, p-way 우선순위 인코더(102)가 처리할 수 있는 p개의 매칭된 IA 및 가중치 페어가 발생했을 경우, 우선 p-way 우선순위 인코더(102)로 상기 매칭된 IA 및 가중치 페어를 전달하고, p-way 우선순위 인코더에 의해 FIFO로 보낸 가중치는 삭제하고, p-way 우선순위 인코더에 의해 FIFO로 보내지 않고 남은 가중치에 대해서 다시 매칭을 수행할 수 있도록 가중치 열을 재배열할 수 있다.
상술한 바와 같은 처리 소자 구성을 통해 IMU(100)에서 IA 및 가중치간 매칭 확률을 일정하게 유지함에도 불구하고 이후 처리가 지연되어 곱셈기의 성능이 떨어지는 것을 방지할 수 있다.
도 7은 도 6(a) 내지 6(b)에서 설명한 처리 소자의 구성을 블록도로 도시한 것이다.
처리 소자는, IMU(100), p-way 우선순위 인코더(102), FIFO(105), 곱셈기 및 psum 버퍼(106)를 포함할 수 있다. IMU(100)는 가중치 인풋 채널 인덱스를 저장하는 가중치 버퍼 메모리(103), IA 인풋 채널 인덱스를 저장하는 IA 버퍼 메모리(104) 및 상기 가중치 버퍼 메모리(103)와 IA 버퍼 메모리(104)에 저장된 IA 및 가중치를 비교하여 매칭시키는 비교기 어레이(101)를 포함할 수 있다.
p-way 우선순위 인코더(102)는 IMU(100)로부터 전달받은 최대 p개의 매칭된 IA 및 가중치 페어를 FIFO(105)에 하나씩 전달하며, FIFO(105)는 전달받은 매칭된 IA 및 가중치 페어를 순차적으로 깊이에 따라 저장하여 곱셈기(106)에 하나씩 전달할 수 있다.
곱셈기(106)는 전달받은 매칭된 IA 및 가중치 페어를 활용하여 연산을 수행하며, 각 행에 대응되는 곱셈기를 포함하는 곱셈기 어레이의 연산 결과는 psum 버퍼로 보내 합산한 결과를 저장하도록 한다.
상기 처리 소자는 하나 이상의 프로세서(예컨대, 마이크로 프로세서 또는 중앙 처리 장치(CPU)), 그래픽 처리 장치(GPU), 주문형 집적 회로(ASIC) 또는 다른 프로세서의 조합을 포함할 수 있다. 일례로, 처리 소자는 본 발명의 설명에 기술된 하나 이상의 결정 및 계산을 수행하기 위한 추가적인 처리 옵션을 제공하는 다른 저장 또는 컴퓨팅 자원/디바이스(예를 들어, 버퍼, 레지스터, 제어 회로 등)를 포함할 수 있다.
일부 구현예에서, 처리 소자는 메모리에 저장된 프로그래밍된 명령들을 실행하여, 제어기 및 컴퓨팅 시스템으로 하여금 본 발명의 설명에 기술된 하나 이상의 기능을 수행하게 한다. 메모리는 하나 이상의 비-일시적 기계 판독 가능 저장 매체를 포함할 수 있다. 비-일시적 기계 판독 가능 저장 매체는 고체 상태 메모리, 자기 디스크 및 광 디스크, 휴대용 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그래머블 ROM(예컨대, EPROM, EEPROM 또는 플래시 메모리), 또는 정보를 저장할 수 있는 임의의 다른 유형의 매체를 포함할 수 있다.
일반적으로, 처리 소자는 예시적인 계산 유닛 또는 타일이고, 텐서, 행렬 및/또는 데이터 어레이와 같은 다차원 데이터 구조와 관련된 계산들을 수행하기 위한 추가적인 하드웨어 구조를 포함할 수 있다. 일부 구현예에서, 입력 활성화 값들은 활성화 구조를 위해 메모리에 사전 로딩될 수 있고, 가중치 값들은 신경망 하드웨어와 관련된 외부 또는 상위 레벨 제어 디바이스로부터 수신된 데이터 값들을 사용하여 사전 로딩될 수 있다.
명세서 및 도면에서 동일하거나 유사한 도면 번호는 동일하거나 유사한 구조를 의미한다.
본 발명의 일 실시예는 예시적인 실시예에 불과하며, 상기에서 언급한 수치로 제한 해석되지 않는다.
100: IMU, 101: 비교기 어레이,
102: p-way 우선순위 인코더, 103: 가중치 버퍼 메모리,
104: IA 버퍼 메모리, 105: FIFO,
106: 곱셈기

Claims (10)

  1. 복수의 입력 활성화(Input Activation, IA)를 수신하는 단계;
    각 가중치 아웃풋 채널에서 넌제로 값을 가지는 가중치(Weight)를 획득하는 단계;
    상기 가중치 및 IA를 메모리에 저장하며, 상기 가중치 및 IA 가 저장된 메모리 어드레스 위치를 포함하는 인풋 채널 인덱스를 획득하는 단계;
    상기 인풋 채널 인덱스를 저장하는 버퍼 메모리를 포함하는 IMU(Index Matching Unit)에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치를 상기 IMU 의 행(row) 사이즈에 맞춰 배열하며, 상기 가중치 및 IA를 매칭시키는 단계;
    를 포함하는 희소성 인식 신경 처리 유닛 처리 방법.
  2. 제1 항에 있어서,
    상기 IMU는 비교기 어레이, 가중치 버퍼 메모리 및 IA 버퍼 메모리를 포함하며,
    상기 비교기 어레이의 바운더리에, IA 인풋 채널 인덱스를 저장하는 상기 IA 버퍼 메모리를 열(Column) 방향으로 배열하고, 넌제로 값 가중치 인풋 채널 인덱스를 저장하는 상기 가중치 버퍼 메모리를 행(Row) 방향으로 배열하여 상기 가중치 및 IA를 매칭시키는, 희소성 인식 신경 처리 유닛 처리 방법.
  3. 제2 항에 있어서,
    상기 가중치 버퍼 메모리에서 각 가중치 아웃풋 채널의 상기 넌제로 값 가중치가 오름차순으로 배치되며, 상기 가중치의 아웃풋 채널 사이즈 및 넌제로 값 가중치의 개수 중 적어도 하나를 초과하면 상기 가중치의 다음 아웃풋 채널로 넘어가도록 배열되는, 희소성 인식 신경 처리 유닛 처리 방법.
  4. 제2 항에 있어서,
    상기 IA 버퍼 메모리는 IA의 각 인풋 채널 인덱스를 픽셀 디멘젼(Pixel-Dimension)과 일대일 매칭시키며, 각 픽셀 디멘젼을 오름차순으로 배열하는, 희소성 인식 신경 처리 유닛 처리 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 IMU에 포함된 가중치 버퍼 메모리에서, 상기 가중치 및 IA 간 밀도(d)에 따라 각 가중치 아웃풋 채널의 인풋 채널 인덱스의 평균 개수 n이 결정되는 단계;
    상기 인풋 채널 인덱스의 평균 개수 n에 따라 상기 가중치 버퍼 메모리의 가중치 아웃풋 채널 평균 개수 m이 결정되는 단계; 를 더 포함하며,
    상기 n 및 m은 다음과 같은 식으로 결정되며,
    n=s*d, 이때 s는 IMU의 열 사이즈, m=s/n 인, 희소성 인식 신경 처리 유닛 처리 방법.
  6. 제5 항에 있어서,
    각 CLK 사이클 마다 상기 가중치 버퍼 메모리 중 적어도 하나에 위치한 가중치 인풋 채널 인덱스가 각 IA 인풋 채널 인덱스와 매칭될 확률(Pm)이 다음과 같은 식으로 유지되며, Pm=d*m인,
    희소성 인식 신경 처리 유닛 처리 방법.
  7. 제 5 항에 있어서,
    상기 IA 및 상기 가중치의 매칭된 인덱스에 플래그 신호를 표시하고, 최대 p개의 매칭된 인덱스를 p-way 우선순위 인코더로 전송하는 단계; 및
    최대 p 개의 매칭된 IA 및 가중치 페어를 전달받은 상기 p-way 우선순위 인코더는 상기 매칭된 IA 및 가중치 페어를 한 개씩 순차적으로 FIFO에 전달하는 단계; 를 더 포함하는,
    희소성 인식 신경 처리 유닛 처리 방법.
  8. 제7 항에 있어서,
    상기 FIFO에 저장된 매칭된 IA 및 가중치 페어를 곱셈기로 보낸 후에, 가중치 버퍼 메모리에 저장된 가중치 중 p-way 우선순위 인코더에 의해 FIFO로 보낸 가중치 값은 삭제하고, 가중치 버퍼 메모리에 저장된 가중치 중 p-way 우선순위 인코더에 의해 FIFO로 보내지지 않은 가중치는 재배열하는 단계를 더 포함하는,
    희소성 인식 신경 처리 유닛 처리 방법.
  9. 처리 요소(Processing Element)에 있어서,
    가중치 및 IA 의 넌제로 값을 저장하는 가중치 버퍼 메모리 및 IA 버퍼 메모리를 포함하는 버퍼 메모리 및 상기 가중치 및 상기 IA의 인덱스를 매칭시키는 비교기 어레이를 포함하는 IMU;
    상기 비교기 어레이에서 최대 p개의 매칭된 가중치 및 IA 페어를 전달받는 p-way 우선순위 인코더;
    상기 p-way 우선순위 인코더에서 매칭된 가중치 및 IA 페어를 하나씩 전달받아 곱셈기로 하나씩 전달하는 FIFO;
    를 포함하는, 희소성 인식 신경 처리 유닛.
  10. 제9 항에 있어서,
    상기 IMU는, 상기 p-way 우선순위 인코더로 최대 p개의 매칭된 가중치 및 IA 페어를 전달함에 따라, 가중치 버퍼 메모리에서 p-way 우선순위 인코더에 의해 FIFO로 보낸 가중치는 제거하고 p-way 우선순위 인코더에 의해 FIFO로 보내지 않은 가중치 및 IA 를 재배열하는, 희소성 인식 신경 처리 유닛.
KR1020200038359A 2020-03-30 2020-03-30 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법 KR102474787B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200038359A KR102474787B1 (ko) 2020-03-30 2020-03-30 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법
CN202011353674.1A CN113469323A (zh) 2020-03-30 2020-11-27 由恒定概率匹配指标的稀疏性感知神经处理单元及方法
US17/108,927 US11928578B2 (en) 2020-03-30 2020-12-01 Sparsity-aware neural processing unit for performing constant probability index matching and processing method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200038359A KR102474787B1 (ko) 2020-03-30 2020-03-30 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법

Publications (2)

Publication Number Publication Date
KR20210121533A KR20210121533A (ko) 2021-10-08
KR102474787B1 true KR102474787B1 (ko) 2022-12-06

Family

ID=77854850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200038359A KR102474787B1 (ko) 2020-03-30 2020-03-30 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법

Country Status (3)

Country Link
US (1) US11928578B2 (ko)
KR (1) KR102474787B1 (ko)
CN (1) CN113469323A (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102335955B1 (ko) * 2016-11-07 2021-12-08 한국전자통신연구원 컨볼루션 신경망 시스템 및 그것의 동작 방법
US11003985B2 (en) 2016-11-07 2021-05-11 Electronics And Telecommunications Research Institute Convolutional neural network system and operation method thereof
KR20180073118A (ko) * 2016-12-22 2018-07-02 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US11966835B2 (en) * 2018-06-05 2024-04-23 Nvidia Corp. Deep neural network accelerator with fine-grained parallelism discovery
CN110378468B (zh) * 2019-07-08 2020-11-20 浙江大学 一种基于结构化剪枝和低比特量化的神经网络加速器

Also Published As

Publication number Publication date
CN113469323A (zh) 2021-10-01
US20210303980A1 (en) 2021-09-30
US11928578B2 (en) 2024-03-12
KR20210121533A (ko) 2021-10-08

Similar Documents

Publication Publication Date Title
US11080049B2 (en) Apparatus and methods for matrix multiplication
JP6736646B2 (ja) 畳み込みニューラルネットワークにおいて畳み込み演算を実行する装置および方法
EP3480749B1 (en) Exploiting sparsity in a neural network
CN109328361B (zh) 用于深度神经网络的加速器
CN110751280A (zh) 一种应用于卷积神经网络的可配置卷积加速器
US9886418B2 (en) Matrix operands for linear algebra operations
US20190042411A1 (en) Logical operations
CN110188869B (zh) 一种基于卷积神经网络算法的集成电路加速计算的方法及***
US20200356809A1 (en) Flexible pipelined backpropagation
US11640444B2 (en) Device and method for accelerating matrix multiply operations
US20230041850A1 (en) Adaptive matrix multiplication accelerator for machine learning and deep learning applications
CN114491402A (zh) 一种稀疏矩阵向量乘访存优化的计算方法
US10642541B2 (en) Machine perception and dense algorithm integrated circuit
KR102474787B1 (ko) 일정한 확률의 인덱스 매칭을 수행하는 희소성 인식 신경 처리 유닛 및 처리 방법
CN112712457B (zh) 数据处理方法以及人工智能处理器
Sombatsiri et al. Parallelism-flexible convolution core for sparse convolutional neural networks on FPGA
US20220172032A1 (en) Neural network circuit
TWI753728B (zh) 運算單元架構、運算單元叢集及卷積運算的執行方法
WO2022123687A1 (ja) 演算回路、演算方法、及びプログラム
CN210721552U (zh) 卷积电路
KR102664456B1 (ko) 주문형 집적 회로의 이중 모드 동작
EP4296900A1 (en) Acceleration of 1x1 convolutions in convolutional neural networks
US12050986B2 (en) Neural network architecture using convolution engines
US20240220119A1 (en) Methods and systems for dynamic submission data structures
KR20230143042A (ko) 메모리 최적화 기술을 포함하는 신경망 처리 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant