1 |
1
희소 가중치 커널에서 '0'이 아닌 값(non-zero value)의 위치를 가리키는 희소 인덱스를 기반으로, 입력 데이터의 입력 값들 중 상기 희소 가중치의 상기 위치와 대응되는 입력 값을 출력하도록 구성되는 데이터 선택기; 및상기 희소 가중치 커널을 이용하여, 상기 데이터 선택기로부터 출력되는 상기 입력 값에 대한 컨볼루션 연산을 수행하도록 구성되는 곱셈-누산(MAC; multiply accumulate) 연산기를 포함하고,상기 희소 가중치 커널은 적어도 하나의 '0'인 가중치 값을 포함하는 컨볼루션 신경망 시스템
|
2 |
2
제 1 항에 있어서,상기 데이터 선택기는 입력 값들 중 상기 희소 가중치 커널에서, '0'인 값의 위치와 대응되는 입력 값을 출력하지 않도록 구성되는 컨볼루션 신경망 시스템
|
3 |
3
제 1 항에 있어서,외부 메모리로부터 상기 입력 데이터의 일부인 입력 타일을 저장하도록 구성되는 입력 버퍼 장치; 및상기 MAC 연산기로부터의 상기 컨볼루션 연산의 결과 값을 저장하고, 상기 저장된 결과 값을 상기 외부 메모리로 제공하도록 구성되는 출력 버퍼 장치를 더 포함하는 컨볼루션 신경망 시스템
|
4 |
4
제 1 항에 있어서,외부 메모리로부터 상기 희소 가중치 커널을 수신하고, 상기 수신된 희소 가중치 커널을 상기 MAC 연산기로 제공하고, 상기 희소 가중치 커널의 상기 희소 인덱스를 상기 데이터 선택기로 제공하도록 구성되는 가중치 커널 버퍼 장치를 더 포함하는 컨볼루션 신경망 시스템
|
5 |
5
제 1 항에 있어서,상기 데이터 선택기는스위치 회로; 및복수의 멀티플렉서(MUX; multiplexer)를 포함하고,상기 스위치 회로는 상기 희소 가중치 커널을 기반으로 상기 입력 값들 각각을 상기 복수의 MUX로 제공하도록 구성되고,상기 복수의 MUX 각각은 상기 희소 인덱스를 기반으로, 상기 스위치 회로에 의해 제공되는 상기 입력 값들 중 상기 희소 가중치의 위치와 대응되는 입력 값을 선택하여 출력하도록 구성되는 컨볼루션 신경망 시스템
|
6 |
6
제 5 항에 있어서,상기 MAC 연산기는 상기 복수의 MUX 각각으로부터 출력되는 입력 값을 각각 수신하고, 상기 희소 가중치 커널을 기반으로 상기 수신된 입력 값에 대한 컨볼루션 연산을 각각 수행하도록 구성되는 복수의 MAC 코어를 포함하는 컨볼루션 신경망 시스템
|
7 |
7
제 6 항에 있어서,상기 복수의 MAC 코어 각각은,상기 입력 값 및 상기 희소 가중치에 대한 곱셈 연산을 수행하도록 구성되는 곱셈기;상기 곱셈 연산의 결과 및 이전 덧셈 연산의 결과에 대한 덧셈 연산을 수행하도록 구성되는 가산기; 및상기 덧셈 연산의 결과를 저장하도록 구성되는 레지스터를 포함하는 컨볼루션 신경망 시스템
|
8 |
8
제 1 항에 있어서,상기 희소 가중치 커널은 신경망 압축을 통해 완전 가중치 커널로부터 변환된 가중치 커널이고,상기 완전 가중치 커널은 '0'이 아닌 가중치 값들로 구성된 컨볼루션 신경망 시스템
|
9 |
9
제 8 항에 있어서,상기 신경망 압축은 상기 완전 가중치 커널에 대한 파라미터 제거 기법, 가중치 공유 기법, 또는 파라미터 양자화 기법 중 적어도 하나를 기반으로 수행되는 컨볼루션 신경망 시스템
|
10 |
10
외부 메모리로부터 복수의 입력 값을 포함하는 입력 타일을 수신하고, 상기 수신된 입력 타일의 상기 복수의 입력 값을 저장하도록 구성되는 입력 버퍼 장치;희소 가중치 커널에서 '0'이 아닌 희소 가중치의 위치를 가리키는 희소 인덱스를 기반으로, 상기 입력 버퍼 장치로부터의 상기 복수의 입력 값 중 적어도 하나의 입력 값을 출력하도록 구성되는 데이터 선택기;상기 데이터 선택기로부터 출력되는 상기 적어도 하나의 입력 값 및 상기 희소 가중치를 기반으로 컨볼루션 연산을 수행하도록 구성되는 곱셈-누산(MAC; multiply-accumulate) 연산기; 및상기 MAC 연산기로부터의 상기 컨볼루션 연산의 결과 값을 저장하고, 상기 저장된 결과 값을 출력 타일로써 상기 외부 메모리로 제공하도록 구성되는 출력 버퍼 장치를 포함하는 컨볼루션 신경망 시스템
|
11 |
11
제 10 항에 있어서,상기 데이터 선택기는스위치 회로; 및복수의 멀티플렉서(MUX; multiplexer)를 포함하고,상기 스위치 회로는 상기 입력 타일의 크기 및 상기 희소 가중치 커널을 기반으로, 상기 복수의 입력 값 각각을 상기 복수의 MUX 각각으로 연결하도록 구성되고,상기 복수의 MUX 각각은 상기 희소 인덱스를 기반으로, 상기 연결된 입력 값들 중 상기 희소 가중치의 위치와 대응되는 상기 적어도 하나의 입력 값을 선택하여 출력하도록 구성되는 컨볼루션 신경망 시스템
|
12 |
12
제 11 항에 있어서,상기 복수의 MUX 각각은 상기 희소 가중치 커널에서 '0'인 가중치의 위치와 대응되는 입력 값을 출력하지 않는 컨볼루션 신경망 시스템
|
13 |
13
제 11 항에 있어서,상기 복수의 MUX 각각으로부터의 상기 적어도 하나의 입력 값은 상기 희소 가중치의 위치와 대응되는 입력 값인 컨볼루션 신경망 시스템
|
14 |
14
제 11 항에 있어서,상기 희소 가중치 커널이 K×K (단, K는 자연수)의 크기를 갖는 경우, 상기 스위치 회로는 상기 복수의 MUX 각각으로 2K개의 입력 값들을 연결하도록 구성되는 컨볼루션 신경망 시스템
|
15 |
15
제 11 항에 있어서,상기 MAC 연산기는 상기 복수의 MUX 각각으로부터의 상기 적어도 하나의 입력 값 및 상기 희소 가중치 커널을 기반으로 상기 컨볼루션 연산을 각각 수행하도록 구성되는 복수의 MAC 코어를 포함하는 컨볼루션 신경망 시스템
|
16 |
16
컨볼루션 신경망 시스템의 동작 방법에 있어서,입력 데이터의 일부인 입력 타일을 저장하는 단계;희소 가중치 커널을 기반으로 상기 입력 타일의 입력 값들 각각을 복수의 멀티플렉서(MUX; multiplexer) 각각으로 연결하는 단계;상기 복수의 MUX 각각에서, 상기 희소 가중치 커널에 대한 희소 인덱스를 기반으로 상기 연결된 입력 값들 중 적어도 하나를 선택하는 단계;상기 희소 가중치 커널을 사용하여 상기 선택된 적어도 하나의 입력 값에 대한 컨볼루션 연산을 수행하는 단계;상기 컨볼루션 연산의 결과를 누적하는 단계; 및 상기 누적된 결과를 출력 타일로써 외부 메모리로 제공하는 단계를 포함하는 동작 방법
|
17 |
17
제 16 항에 있어서,상기 복수의 MUX 각각에서, 상기 희소 가중치 커널에 대한 희소 인덱스를 기반으로 상기 연결된 입력 값들 중 적어도 하나를 선택하는 단계는,상기 희소 가중치 커널에서 '0'이 아닌 가중치의 위치와 대응되는 입력 값들을 선택하고, 상기 희소 가중치 커널에서 '0'인 가중치의 위치와 대응되는 입력 값들을 선택하지 않는 단계를 포함하는 동작 방법
|