| 번호 | 청구항 |
|---|---|
| 1 | 전자 장치에 의해 수행되는, 패턴 기반 가중치 프루닝(pattern-based weight pruning) 방법에 있어서,컨볼루션 연산에서 PIM(processing-in-memory) 어레이의 타겟 개수의 행을 스키핑(skipping)하기 위한 패턴 엔트리 세트를 결정하는 동작;상기 패턴 엔트리 세트에 포함된 적어도 하나의 패턴 엔트리 유형을 컨볼루션 레이어에 포함된 커널의 하나 이상의 입력 채널들 각각에 할당하는 동작;상기 커널의 가중치에 기초하여 상기 하나 이상의 입력 채널들 각각에 할당된 패턴 엔트리 유형과 연관된 적어도 하나의 패턴에 대한 프루닝 스코어를 계산하는 동작; 및상기 프루닝 스코어에 기초하여 상기 하나 이상의 입력 채널들 각각의 타겟 패턴을 결정하는 동작을 포함하는,방법. |
| 2 | 제1항에 있어서,상기 PIM 어레이의 상기 타겟 개수의 행을 스키핑하기 위한 상기 패턴 엔트리 세트를 결정하는 동작은,컨볼루션 연산을 위한 PIM어레이의 크기, 상기 커널의 크기, 및 상기 컨볼루션 레이어에 입력되는 입력 특징맵의 크기에 기초하여 상기 입력 데이터의 병렬 윈도우(parallel window)의 크기를 결정하는 동작; 및상기 PIM 어레이의 스키핑되는 행의 상기 타겟 개수 및 상기 병렬 윈도우의 크기에 기초하여 상기 커널의 가중치 프루닝을 최소화하는 상기 패턴 엔트리 세트를 결정하는 동작을 포함하는,방법. |
| 3 | 제1항에 있어서,상기 패턴 엔트리 세트에 포함된 상기 적어도 하나의 패턴 엔트리 유형을 상기 커널의 상기 하나 이상의 입력 채널들 각각에 할당하는 동작은,상기 커널의 상기 가중치에 기초하여 상기 커널의 상기 하나 이상의 입력 채널들 각각에 대한 중요도를 계산하는 동작; 및상기 중요도에 기초하여 상기 적어도 하나의 패턴 엔트리 유형을 상기 커널의 상기 하나 이상의 입력 채널들 각각에 할당하는 동작을 포함하는,방법. |
| 4 | 제3항에 있어서,상기 하나 이상의 입력 채널들 중 중요도가 낮은 채널에 상기 적어도 하나의 패턴 엔트리 유형 중 적은 엔트리를 가지는 패턴 엔트리 유형이 할당되는,방법. |
| 5 | 제3항에 있어서,상기 하나 이상의 입력 채널들 중 중요도가 높은 채널에 상기 적어도 하나의 패턴 엔트리 유형 중 많은 엔트리를 가지는 패턴 엔트리 유형이 할당되는,방법. |
| 6 | 제1항에 있어서,상기 커널의 상기 가중치에 기초하여 상기 하나 이상의 입력 채널들 각각에 할당된 상기 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴에 대한 상기 프루닝 스코어를 계산하는 동작은,상기 하나 이상의 입력 채널들 중 제1 입력 채널에 할당된 제1 패턴 엔트리 유형과 연관된 적어도 하나의 패턴에 기초하여 상기 제1 입력 채널에 대응하는 제1 커널의 가중치를 프루닝함으로써 적어도 하나의 프루닝된 커널을 결정하는 동작; 및상기 적어도 하나의 프루닝된 커널 각각의 가중치에 기초하여 상기 제1 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴 각각에 대한 프루닝 스코어를 계산하는 동작을 포함하는,방법. |
| 7 | 제6항에 있어서,상기 프루닝 스코어에 기초하여 상기 하나 이상의 입력 채널들 각각의 상기 타겟 패턴을 결정하는 동작은,상기 제1 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴 중 프루닝 스코어가 가장 높은 패턴을 상기 제1 입력 채널의 제1 타겟 패턴으로 결정하는 동작을 포함하는,방법. |
| 8 | 제1항에 있어서,상기 적어도 하나의 패턴 엔트리 유형은 1-엔트리 유형, 2-엔트리 유형, 4-엔트리 유형, 및 8-엔트리 유형 중 적어도 하나를 포함하는,방법. |
| 9 | 제1항에 있어서,상기 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴은 동일한 엔트리를 가지는,방법. |
| 10 | 제1항에 있어서,상기 전자 장치는 미리 결정된 패턴 엔트리 유형과 연관된 적어도 하나의 패턴을 저장하는,방법. |
| 11 | 제1항에 있어서,미리 훈련된 CNN(convolutional neural network) 모델의 상기 컨볼루션 레이어를 획득하는 동작을 더 포함하는,방법. |
| 12 | 제11항에 있어서,상기 타겟 패턴에 기초하여 상기 하나 이상의 입력 채널들 각각에 대응하는 상기 커널의 가중치를 프루닝함으로써 하나 이상의 프루닝된 커널을 결정하는 동작;입력 특징맵과 상기 하나 이상의 프루닝된 커널의 컨볼루션 연산을 수행함으로써 출력 특징맵을 획득하는 동작; 및상기 출력 특징맵에 기초하여 상기 미리 훈련된 CNN 모델을 재훈련하는 동작을 더 포함하는,방법. |
| 13 | 하드웨어와 결합되어 제1항 내지 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터로 판독 가능한 저장 매체에 저장된 컴퓨터 프로그램. |
| 14 | 전자 장치에 있어서,적어도 하나의 프로세서; 및인스트럭션들을 저장하는 메모리을 포함하고,상기 인스트럭션들이 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 때, 상기 전자 장치로 하여금:컨볼루션 연산에서 PIM(processing-in-memory) 어레이의 타겟 개수의 행을 스키핑(skipping)하기 위한 패턴 엔트리 세트를 결정하는 동작;상기 패턴 엔트리 세트에 포함된 적어도 하나의 패턴 엔트리 유형을 컨볼루션 레이어에 포함된 커널의 하나 이상의 입력 채널들 각각에 할당하는 동작;상기 커널의 가중치에 기초하여 상기 하나 이상의 입력 채널들 각각에 할당된 패턴 엔트리 유형과 연관된 적어도 하나의 패턴에 대한 프루닝 스코어를 계산하는 동작; 및상기 프루닝 스코어에 기초하여 상기 하나 이상의 입력 채널들 각각의 타겟 패턴을 결정하는 동작을 수행하도록 하는,전자 장치. |
| 15 | 제14항에 있어서,상기 패턴 엔트리 세트에 포함된 상기 적어도 하나의 패턴 엔트리 유형을 상기 커널의 상기 하나 이상의 입력 채널들 각각에 할당하는 동작은,상기 커널의 상기 가중치에 기초하여 상기 커널의 상기 하나 이상의 입력 채널들 각각에 대한 중요도를 계산하는 동작; 및상기 중요도에 기초하여 상기 적어도 하나의 패턴 엔트리 유형을 상기 커널의 상기 하나 이상의 입력 채널들 각각에 할당하는 동작을 포함하는,전자 장치. |
| 16 | 제15항에 있어서,상기 하나 이상의 입력 채널들 중 중요도가 낮은 채널에 상기 적어도 하나의 패턴 엔트리 유형 중 적은 엔트리를 가지는 패턴 엔트리 유형이 할당되는,전자 장치. |
| 17 | 제15항에 있어서,상기 하나 이상의 입력 채널들 중 중요도가 높은 채널에 상기 적어도 하나의 패턴 엔트리 유형 중 많은 엔트리를 가지는 패턴 엔트리 유형이 할당되는,전자 장치. |
| 18 | 제14항에 있어서,상기 커널의 상기 가중치에 기초하여 상기 하나 이상의 입력 채널들 각각에 할당된 상기 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴에 대한 상기 프루닝 스코어를 계산하는 동작은,상기 하나 이상의 입력 채널들 중 제1 입력 채널에 할당된 제1 패턴 엔트리 유형과 연관된 적어도 하나의 패턴에 기초하여 상기 제1 입력 채널에 대응하는 제1 커널의 가중치를 프루닝함으로써 적어도 하나의 프루닝된 커널을 결정하는 동작; 및상기 적어도 하나의 프루닝된 커널 각각의 가중치에 기초하여 상기 제1 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴 각각에 대한 프루닝 스코어를 계산하는 동작을 포함하는,전자 장치. |
| 19 | 제14항에 있어서,상기 프루닝 스코어에 기초하여 상기 하나 이상의 입력 채널들 각각의 상기 타겟 패턴을 결정하는 동작은,상기 제1 패턴 엔트리 유형과 연관된 상기 적어도 하나의 패턴 중 프루닝 스코어가 가장 높은 패턴을 상기 제1 입력 채널의 제1 타겟 패턴으로 결정하는 동작을 포함하는,전자 장치. |
| 20 | 제14항에 있어서,상기 적어도 하나의 패턴 엔트리 유형은 1-엔트리 유형, 2-엔트리 유형, 4-엔트리 유형, 및 8-엔트리 유형 중 적어도 하나를 포함하는,전자 장치. |