KR20210037569A - 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법 - Google Patents

컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법 Download PDF

Info

Publication number
KR20210037569A
KR20210037569A KR1020200123723A KR20200123723A KR20210037569A KR 20210037569 A KR20210037569 A KR 20210037569A KR 1020200123723 A KR1020200123723 A KR 1020200123723A KR 20200123723 A KR20200123723 A KR 20200123723A KR 20210037569 A KR20210037569 A KR 20210037569A
Authority
KR
South Korea
Prior art keywords
kernel
micro
batch
feature map
neural network
Prior art date
Application number
KR1020200123723A
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 US17/033,132 priority Critical patent/US20210117755A1/en
Publication of KR20210037569A publication Critical patent/KR20210037569A/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/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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/045Combinations of networks

Landscapes

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

Abstract

본 개시는 픽셀 메모리로부터 복수의 입력 특징 맵(IFM) 마이크로배치를 수신하고, 커널 메모리(122)로부터 복수의 커널 마이크로배치를 수신하고, 복수의 출력 특징 맵(OFM) 마이크로배치를 획득하기 위해서, 다이렉트 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv) 중에서 적어도 하나에 대한 커널 재사용 계수에 기초하여 상기 복수의 커널 마이크로배치를 재사용하면서, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하고, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱한 결과에 양자화, 비선형 함수 및 풀링한 후에 생성된 출력 특징 맵 마이크로배치를 상기 픽셀 메모리에 기록하는 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치 및 방법에 관한 것이다.

Description

컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법{POWER-EFFICIENT HYBRID TRAVERSAL APPARATUS AND METHOD FOR CONVOLUTIONAL NEURAL NETWORK ACCELERATOR ARCHITECTURE}
본 개시는 컨볼루션 신경망 아키텍처에 관한 것으로, 보다 구체적으로는 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설(hybrid traversal)에 관한 것이다. 본 개시는 2019 년 9 월 27 일에 출원된 인도 출원 번호 201941039259에 기초하고 우선권을 주장하며, 그 개시 내용은 여기에 참조로 포함된다.
딥 컨볼루션 신경망(Deep Convolution Neural Networks)은 객체 인식(image classification), 이미지 분류(image classification), 장면 이해(scene understanding) 등과 같은 광범위한 응용 분야에 걸친 기계 학습 작업에서 성공적인 것으로 입증되었다. 이러한 애플리케이션에서 높은 정확도를 얻기 위해 더 깊고 복잡한 컨볼루션 신경망이 도입되었다. 배터리 용량이 제한된 휴대용 장치에서 높은 처리량을 제공하면서 이러한 컨볼루션 신경망을 지원하는 것은 컨볼루션 신경망 가속기(CNN accelerator)의 과제였다.
제한된 배터리 용량 문제는 제한된 컴퓨팅 및 에너지 예산으로 로컬에서 고강도 실시간 기계 학습 작업을 수행해야하는 종단 장치(edge device)에서 더 두드러진다.
종단 장치에서 클라우드(cloud)로 엄청난 양의 로우 데이터(raw data)가 전송되는 것을 방지하려면 데이터의 로컬 온 디바이스(on-device) 처리가 필요하다. 드론, 휴대폰, 자율 주행 차(autonomous vehicle)와 같은 종단 장치에서 실행되는 애플리케이션은 클라우드와의 데이터 전송 지연을 방지하고 데이터의 프라이버시를 보호하기 위해 온 디바이스(on-device) 처리가 필요하다. 종단 장치에서 실행되는 대부분의 애플리케이션에는 전력 효율적인 가속이 필요한 컨볼루션 신경망이 포함된다.
다이렉트 컨볼루션(DConv; Direct Convolution)은 가속 및 에너지 효율 개선의 목표가 되어온 컨볼루션 신경망에서 가장 컴퓨팅 집약적이고 컴퓨팅 바인딩된(compute-bound) 작업이다.
DConv에서 주요 접근 방식은 다음과 같다.
데이터를 더 낮은 정밀도로 양자화(quantization): 양자화를 통해 곱셈 및 덧셈 결과는 더 낮은 전력을 소비하고 더 높은 주파수에서 작동한다. 최대 8 비트 정밀도까지의 양자화해도 인식 정확도를 크게 저하시키지 않는 것으로 나타났다.
데이터 범위 활용: 값이 0 인 입력 특징 맵 또는 커널과 관련된 비 효과적인 계산을 건너 뛰면 계산이 가속화된다. 그러나 성능 향상에는 기본 곱셈기(underlying multipliers)보다 더 많은 전력을 소비하는 제로 스킵 로직(zero-skip logic)에 의해서 더 많은 비용이 발생할 수 있다. 피연산자 중 하나가 0 인 곱셈기들을 꺼서(switching off) 성능 향상없이 에너지만 절약할 수 있는 또 다른 옵션이 있다. 커널 가지치기(kernel pruning)는 가속 계수를 개선하고 훈련된 모델의 크기를 줄이기 위해 커널의 희소성을 높이는 데 중요한 역할을 한다.
따라서, 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설이 필요하다.
본 개시는 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법을 제공하는 것에 관한 것이다.
일 실시예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법은, 픽셀 메모리로부터 복수의 입력 특징 맵(IFM; Input Feature Map) 마이크로배치(microbatch)를 수신하고, 커널 메모리(122)로부터 복수의 커널 마이크로배치를 수신하는 단계; 복수의 출력 특징 맵(OFM; Output Feature Map) 마이크로배치를 획득하기 위해서, 다이렉트 컨볼루션(DConv; Direct Convolution) 및 위노그라드 컨볼루션(WgConv; Winograd Convolution) 중에서 적어도 하나에 대한 커널 재사용 계수에 기초하여 상기 복수의 커널 마이크로배치를 재사용하면서, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 단계; 및 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱한 결과에 양자화(quantization), 비선형 함수(non-linear function) 및 풀링(pooling)한 후에 생성된 출력 특징 맵 마이크로배치를 상기 픽셀 메모리에 기록하는 단계를 포함한다.
이때, 상기 복수의 출력 특징 맵 마이크로배치와 상기 복수의 입력 특징 맵 마이크로배치는, 단일 메모리 워드에 패킹된 입력 특징 맵의 z-방향의 채널 또는 출력 특징 맵의 z-방향의 채널 또는 커널의 z-방향의 채널일 수 있다.
이때, 상기 하이브리드 트래버설을 제공하는 방법은, 상기 복수의 입력 특징 맵 마이크로배치와 곱셈에서 상기 복수의 커널 마이크로배치를 재사용함으로써 상기 컨볼루션 신경망 가속기 아키텍처에 대한 감소된 전력을 제공할 수 있다.
이때, 상기 하이브리드 트래버설을 제공하는 방법은, x-y 우선 스토리지를 갖는 컨볼루션 신경망 가속기 아키텍처로 확장될 수 있다.
이때, 상기 하이브리드 트래버설을 제공하는 방법은, 상기 복수의 입력 특징 맵 마이크로배치를 수신할 때, 스트라이드(stride), 디라이트(dilate) 및 디컨볼루션(deconvolution) 중에서 적어도 하나를 이용해서 수신할 수 있다.
일 실시예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치는, 픽셀 메모리로부터 복수의 입력 특징 맵(IFM; Input Feature Map) 마이크로배치를 수신하고, 커널 메모리(122)로부터 복수의 커널 마이크로배치를 수신하는 수신부; 복수의 출력 특징 맵(OFM; Output Feature Map) 마이크로배치를 획득하기 위해서, 다이렉트 컨볼루션(DConv; Direct Convolution) 및 위노그라드 컨볼루션(WgConv; Winograd Convolution) 중에서 적어도 하나에 대한 커널 재사용 계수에 기초하여 상기 복수의 커널 마이크로배치를 재사용하면서, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 재사용 곱셈부; 및 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱한 결과에 양자화(quantization), 비선형 함수(non-linear function) 및 풀링(pooling)한 후에 생성된 출력 특징 맵 마이크로배치를 상기 픽셀 메모리에 기록하는 출력 특징 맵 생성부를 포함한다.
이때, 상기 복수의 출력 특징 맵 마이크로배치와 상기 복수의 입력 특징 맵 마이크로배치는, 단일 메모리 워드에 패킹된 입력 특징 맵의 z-방향의 채널 또는 출력 특징 맵의 z-방향의 채널 또는 커널의 z-방향의 채널일 수 있다.
이때, 상기 재사용 곱셈부는, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치의 곱셈에서 상기 복수의 커널 마이크로배치를 재사용함으로써 전력 사용을 줄일 수 있다.
이때, 상기 하이브리드 트래버설 장치는, x-y 우선 스토리지를 갖는 컨볼루션 신경망 가속기 아키텍처로 확장될 수 있다.
이때, 상기 수신부는, 상기 복수의 입력 특징 맵 마이크로배치를 수신할 때, 스트라이드(strided), 디라이트(dilated) 및 디컨볼루션(deconvolution) 중에서 적어도 하나를 지원할 수 있다.
일 실시예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치는, 픽셀 메모리로부터 복수의 입력 특징 맵(IFM; Input Feature Map) 마이크로배치를 수신하고, 커널 메모리로부터 복수의 커널 마이크로배치를 수신하는 수신부; 상기 복수의 출력 특징 맵 마이크로배치를 다이렉트 컨볼루션(DConv; Direct Convolution) 또는 위노그라드 컨볼루션(WgConv; Winograd Convolution)으로 변환하는 변환부; 커널 재사용 계수에 기초하여 복수의 커널 마이크로배치를 재사용하면서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 재사용 곱셈부; 상기 변환부에서 사용된 변환 방식의 역변환 방식으로 상기 재사용 곱셈부의 복수의 출력을 역변환하여 역변환된 복수의 출력을 생성하는 역변환부; 및 상기 역변환된 복수의 출력을 양자화(quantization), 비선형 함수(non-linear function) 및 풀링(pooling)하여 출력 특징 맵 마이크로배치를 생성하여 픽셀 메모리에 기록하는 출력 특징 맵 생성부를 포함한다.
이때, 상기 재사용 곱셈부는, 복수의 MPU(Multiply Accumulate Pipeline Unit)로 구성된 MPUA(Multiply Accumulate Pipeline Unit Array)를 포함하고, 복수의 MPU 각각에서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱할 수 있다.
이때, 상기 재사용 곱셈부는, 복수의 MAA 세트(Multiply Accumulate Array Set)를 포함하고, 복수의 MAA 세트 각각에서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱할 수 있다.
도 1a는 일 실시 예에 따른 기준선 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처를 도시한 도면이다.
도 1b는 일 실시 예에 따른 MPUA(Multiply Accumulate Unit Array)를 도시한 도면이다.
도 1c는 일 실시 예에 따른 기준선 xy-우선 스토리지 컨볼루션 신경망 가속기 아키텍처를 도시한 도면이다.
도 2는 일 실시 예들에 따른 기준선 컨볼루션 신경망 가속기 아키텍처 상의 3x3 WgConv를 도시한 도면이다.
도 3a는 일 실시 예에 따른 기준선 컨볼루션 신경망 가속기 아키텍처 상의 다이렉트 컨볼루션(Dconv) 및 위노그라드 컨볼루션(WgConv)에 대한 데이터 레이아웃을 도시한 도면이다.
도 3b는 일 실시 예들에 따른, 기준선 컨볼루션 신경망 가속기 아키텍처상의 다이렉트 컨볼루션(Dconv) 및 위노그라드 컨볼루션(WgConv)에 대한 데이터 트래버설을 도시한 도면이다.
도 4a는 일 실시 예에 따른 기준선 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에서 추가 어큐뮬레이터 레지스터(additional accumulator register) 및 커널 레지스터를 사용하는 전력 절약 방식에 대한 MPU(Multiply Accumulate Unit)의 단일 열에서의 내적 모델의 구조를 도시한 도면이다.
도 4b는 일 실시 예들에 따른 기준선 xy-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에 대한 하이브리드 트래버설을 도시한 도면이다.
도 5a는 일 실시 예에 따른 커널 재사용을 위한 매 컬럼당 8 개의 어큐뮬레이터 레지스터 포함하는 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에 대한 하이브리드 트래버설을 도시한 도면이다.
도 5b는 일 실시 예에 따른 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에 대한 하이브리드 트래버설에서 출력 특징 맵(OFM) 계산 순서의 대응 변경을 도시한 도면이다.
도 6은 일 실시 예에 따른 2x4 어큐뮬레이터를 갖는 DConv를 도시한 도면이다.
도 7a는 일 실시 예들에 따른, 2x4 어큐뮬레이터를 갖는 WgConv를 도시한 도면이다.
도 7b는 일 실시 예에 따른 WgConv에 대한 하이브리드 트래버설에서의 동작 시퀀스를 도시한 도면이다.
도 8은 일 실시 예에 따른 하이브리드 트래버설을 사용하는 스트라이드 컨볼루션(strided convolution)을 도시한 도면이다.
도 9는 일 실시 예에 따른 하이브리드 트래버설을 사용하는 확장된 컨볼루션을 도시한 도면이다.
도 10은 일 실시 예에 따른 하이브리드 트래버설을 사용하는 디컨볼루션을 도시한 도면이다.
도 11은 일 실시 예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법을 도시한 흐름도이다.
도 12는 일 실시 예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치의 개략적인 구성을 도시한 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1a-1b는 일 실시 예에 따른 기준선 z-우선 스토리지 컨볼루션 신경망(CNN; Convolution Neural Network) 가속기 아키텍처(100) 및 MPU(Multiply Accumulate Pipeline Unit)(124)를 도시한 도면이다. 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)는 픽셀 메모리(102), 데이터 입력(104), 데이터 출력(106), 모드(108), 위노그라드 순방향 변환(Winograd forward transformation)(110), 입력 크로스바(input crossbar)(112), 위노그라드 역변환(Winograd inverse transform) 또는 OFM(Output Feature Map) 덧셈기(114), 풀링 유닛(116), 출력 크로스바(output crossbar)(118), 주소 생성 로직(address generation logic)(120), 커널 메모리(kernel memory)(122), MPU(Multiply Accumulate Pipeline Unit)(124), 정류된 선형 유닛(126) 및 양자화(Q)(128)를 포함한다. 예를 들어, 8비트 데이터 정밀도(104)의 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)를 고려한다. 데이터 정밀도(104)는 IFM(Input Feature Map) 또는 OFM(Output Feature Map) 또는 커널에 대한 데이터를 얼마나 정밀하게 처리하는지에 관한 정보를 포함한다. 8 비트 기준선 z-우선 스토리지 CNN 가속기 아키텍처는 픽셀 메모리(102)를 사용하여 IFM 또는 OFM을 저장하고 커널은 커널 메모리(122)에 저장된다.
기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)는 하나 이상의 마이크로배치를 사용한다. 하나 이상의 마이크로배치는 IFM 또는 OFM 또는 단일 메모리 워드에 패킹된 커널의 z 방향에 있는 채널이다. 픽셀 메모리(102)는 다수의 MPU(Multiply Accumulate Pipeline Unit)(124)로 구성된 MPUA(Multiply Accumulate Pipeline Unit Array)에 IFM 데이터를 제공한다. 다수의 MPU(124)는 병렬 감소 트리로 출력하는 하나 이상의 마이크로배치의 숫자에 해당하는 병렬 곱셈기(parallel multipliers)로 구성되고, 어큐뮬레이터(132)를 통해 OFM(134)를 출력한다. 각 MPU(124)는 IFM의 입력 마이크로배치를 커널 메모리(122)에 의해 공급되는 커널 마이크로배치와 곱한다. 곱(product)은 덧셈기 트리(adder tree)를 사용하여 추가되고 OFM 어큐뮬레이터에서 어큐뮬레이트(accumulate)된다. 다수의 MPU(124)로부터의 출력은 양자화(Q)(128) 및 정류 선형 유닛(ReLU; Rectified Linear Unit)(126)을 통해 전달되고 결과 OFM 픽셀(resultant OFM pixels)은 픽셀 메모리(102)에 다시 기록된다.
다수의 MPU(124)는 컨볼루션 또는 완전 연결 레이어에 대한 내적 연산(dot product operation) 및 어큐뮬레이션을 수행하기 위한 컴퓨팅 블록이다. 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)는 일반 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv)을 지원할 수 있다. 하이브리드 트래버설은 다이렉트 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv) 중 적어도 하나에 대한 커널 재사용 계수를 기반으로, 하나 이상의 IFM 마이크로배치와 함께 하나 이상의 커널 마이크로배치를 재사용한다.
도 1a-1b는 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)의 다양한 하드웨어 구성 요소를 보여주지만, 다른 실시 예가 이에 제한되지 않음을 이해해야 한다. 다른 실시 예에서, 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)는 더 적거나 더 많은 수의 컴포넌트를 포함할 수 있다. 또한, 구성 요소의 라벨 또는 이름은 예시 목적으로만 사용되며 본 개시의 범위를 제한하지 않는다.
도 1c는 일 실시 예에 따른 기준선 xy-우선 스토리지 컨볼루션 신경망 가속기 아키텍처를 도시한 도면이다.
도 1c를 참조하면, xy-우선 스토리지 CNN 가속기 아키텍처에는 MAA 세트(Multiply Accumulate Array Set)(136)가 포함할 수 있다. MAA 세트(136)는 16개의 MAA(138-140)로 구성된다. 각 MAA에는 16개의 MAU(Multiply-Accumulate Unit)가 있다. 이때, MAU는 16개의 곱셈기(Mult #0~15), 16개의 어큐뮬레이터(Acc #0~15), 32개의 부동 소수점 연산기(FLOP)를 포함할 수 있다.
각 MAA에서, 4x4크기의 IFM 타일은 도 1c에 도시된 바와 같이 단일 커널 가중치로 곱해진다. IFM은 16개의 MAA 모두에 브로드캐스팅되며 IFM은 16개의 서로 다른 커널에서 동일한 커널 인덱스로 곱 해져 16개의 OFM에 기여한다.
도 2는 일 실시 예들에 따른 기준선 컨볼루션 신경망 가속기 아키텍처 상의 3x3 WgConv를 도시한 도면이다.
도 2를 참조하면, 3x3 WgConv에서 변환된 IFM(202)은 4x4 IFM 블록으로 분할되고 변환된 커널(208)은 4x4 커널 블록으로 분할된다. IFM 블록의 순방향 변환(forward transform)(204)의 경우 IFM 블록의 동일한 채널에서 x-y 평면의 모든 픽셀에 병렬로 액세스해야 한다. 이를 용이하게 하기 위해, 모든 4x4 IFM 블록 아래에 있는 개별 x-y 위치의 마이크로배치는 픽셀 메모리(102)의 다른 뱅크에 저장된다. 따라서, 픽셀 메모리의 16개 다른 뱅크를 사용한다. 모든 IFM 채널에 대해 동일한 패턴이 적용된다. 위노드라드 순방향 변환 모듈(Winograd Forward Transform module)은 S0에서 S15까지 병렬로 4x4x16 IFM 블록을 수신하고 4x4x16 변환 IFM 블록을 생성하며, 이는 16 개의 MPU에 1x1x16 마이크로배치로 분산된다. 독립적인 요소 별 연산이 서로 다른 MPU에 분산되므로 DConv에서 사용되는 내적 연산을 실현하는 동일한 MPU 데이터 경로를 수정없이 적용할 수 있다. 여기서, IFM 마이크로배치는 해당16개의 커널 마이크로배치와 곱하여 16개의 부분 OFM 마이크로배치를 생성한다. 모든 IFM 채널이 소비될 때까지 동일한 연산이 반복되며, 그 결과가 어큐뮬레이트 된다. 마지막으로, 4x4 부분 OFM의 16개 채널에 해당하는 16 개의 마이크로배치는 위그노그라드 역변환 모듈을 통해 2x2x16 OFM 블록을 얻는다. 위그노그라드 역변환은 다음의 <수학식 1>과 같이 주어진다.
[수학식 1]
Figure pat00001
WgConv는 3x3 컨볼루션에서 곱셈 수를 2.25 배 줄인다. WgConv는 IFM 블록에서 4x4 픽셀을 병렬로 가져와야 한다. 이 요구 사항을 충족하기 위해 WgConv를 수행하는 레이어에 대해 IFM 메모리의 데이터 레이아웃이 변경된다. 컨볼루션의 두 모드(108)에 대한 트래버설은 100% 리소스 효율성으로 컴퓨팅 리소스(예를 들어, MAC(Multiply Accumulate))를 사용한다.
도 3a-3b는 일 실시 예에 따른 기준선 CNN 가속기 아키텍처 상의 DConv 및 WgConv에 대한 데이터 레이아웃 및 데이터 트래버설을 도시한 도면이다. 8 비트 기준선 아키텍처는 DConv(302) 및 WgConv(304) 모두를 지원하도록 아키텍처 변경을 최소화하여 수정되어 WinDConv 아키텍처라고하는 융합 데이터 경로 아키텍처를 제공한다. 융합된 데이터 경로를 실현하려면 픽셀 메모리 뱅크와 MPU의 수는 모두 16개로 동일해야 한다. 각각의 픽셀 메모리 뱅크(S0 ~ S15)는 128 비트 워드 길이의 128kB 크기이다. 16 개의 MPU 각각에는 256 개의 곱셈기, 16 개의 감소 덧셈기 트리 및 16 개의 어큐뮬레이터가 포함된다. 따라서 전체 아키텍처는 4096개의 8비트 곱셈기로 구성된다. 각각 64x128 비트 크기의 16 개 SRAM 뱅크는 커널 메모리라 불리며, 모든 MPU로 커널 데이터를 제공한다. 커널 데이터는 모든 열에서 공유되어 입력 IFM 마이크로배치와 곱 해져 16개의 OFM(하나의 OFM 마이크로배치)을 병렬로 생성한다. MPU의 출력은 OFM 덧셈기 트리(OFM adder tree)를 사용하여 선택적으로 추가된다. WgConv를 지원하기 위해 픽셀 메모리 뒤에 WFT(Winograd Forward Transform) 유닛이 도입된다. OFM 덧셈기 트리(OFM adder tree)가 WgConv에 대한 위노그라드 역변환 기능(Winograd inverse transform function)을 지원하도록 재구성된다. 생성된 OFM은 양자화(Q)(128) 및 ReLU를 통해 전달된다. 풀링 유닛(116) 이후의 결과 OFM은 동작 모드 (DConv 또는 WgConv)에 특정한 패턴으로 픽셀 메모리 뱅크에 다시 기록된다.
DConv의 경우 컨볼루션을 위해 모든 IFM 윈도우(IFM window)에서 IFM 마이크로배치에 대한 순차적 액세스가 필요하다. 따라서 IFM은 별도의 픽셀 메모리 뱅크에 저장되는 16개 채널의 배치로 나뉜다. WgConv 모드는 4x16 OFM 블록을 생성하므로 DConv에 대한 하이브리드 트래버설은 동일한 차원의 OFM 블록이 출력에 표시되도록 설계된다. 이를 실현하기 위해 픽셀 메모리 뱅크의 각 IFM 마이크로배치는 4 개의 MPU와 공유된다. 따라서 4 개의 액티브 픽셀 메모리 뱅크(active pixel memory bank)에서 나온 4 개의 마이크로배치는 IFM 데이터를 16 개의 MPU에 제공하여 64 개의 중간 OFM(intermediate OFM)을 병렬로 생성한다. 동일한 계산이 반복되고 커널 크기(예를 들어, 3x3 커널의 경우 9개 위치)를 기반으로 IFM의 x-y 위치에 대해 어큐뮬레이트된 결과는 64개의 중간OFM 픽셀을 생성한다. 4개의 IFM 배치에서 생성된 이러한 픽셀은 OFM 마이크로배치를 얻기 위해 함께 추가된다. 이러한 4개의 OFM 마이크로배치는 함께 생성되어 픽셀 메모리에 다시 기록된다.
도 4a는 일 실시 예에 따른 기준선 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에서 추가 어큐뮬레이터 레지스터(additional accumulator register) 및 커널 레지스터를 사용하는 전력 절약 방식에 대한 MPU(Multiply Accumulate Unit)의 단일 열에서의 내적 모델의 구조를 도시한 도면이다.
내적에는 커널 메모리(122), 단일 포트 IFM 메모리(402), 단일 포트 OFM 메모리(404), IFM 캐시(406), 레지스터(408), 곱셈기(410), 덧셈기 트리(412), 덧셈기(414) 및 다중 어큐뮬레이터 레지스터(416)가 포함된다. 내적은 스키마 2의 최적화를 사용하고 커널 재사용을 위한 커널 캐시, 각 커널 값에 대해 다중 OFM을 계산하기 위한 MPU(124)의 다중 어큐뮬레이터와 같은 새로운 최적화를 도입한다. MPU(124)에서 커널 재사용으로 인한 커널 읽기 감소는 DConv에 대한 스키마 1의 기준 아키텍처에 비해 총 전력이 ~ 2.8배 감소한다.
일 실시 예에서, 스키마 1은 전력 절감을 위해 레지스터 클록 게이팅(register clock gating)을 단독으로 사용한다. 트래버설에는 변경이 발생하지 않는다. 레지스터 클럭 게이팅은 전력을 약 20 % 감소시킨다. 스키마 2는 스키마 1의 레지스터 클럭 게이팅과 함께 IFM 재사용을 증가시키기 위해 IFM 캐시(406)를 사용한다. 기존 z 방향 스토리지 CNN 가속기 아키텍처에서 IFM 값은 다중 커널에 걸쳐 브로드캐스트된다. IFM은 다중 열로 브로드캐스트되므로 IFM 읽기 횟수는 커널 읽기 횟수보다 훨씬 적다. IFM 읽기 횟수가 적기 때문에 IFM 재사용은 총 전력을 ~ 2 % 감소시킬 수 있다.
일 실시 예에서, 내적은 DConv 및 WgConv에서 각각 두 번째 트래버설에 비해 약 2.8배 및 2.1배의 상당한 개선을 보여준다. 눈에 띄는 개선은 주로 커널 재사용으로 인한 것으로, 면적을 늘리지 않고 커널 재사용 계수에 따라 커널 메모리 액세스 수를 줄인다.
도 4b는 일 실시 예들에 따른 기준선 xy-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에 대한 하이브리드 트래버설을 도시한 도면이다. 하이브리드 트래버설은 MAA(418-420)를 업데이트하기 위해 MAU 및 멀티플렉서 네트워크(multiplexer network)의 각 곱셈기에 대해 7개의 추가 어큐뮬레이터를 추가하여 8개의 어큐뮬레이터 중 하나를 선택하기 위한 MAA(418-420)에 도입될 수 있다. MAU에 추가 어큐뮬레이터를 도입한 후 각 커널 가중치를 사용하여 8개의 서로 다른 IFM 픽셀을 곱하고 커널 요소를 8 사이클 동안 고정된 상태로 유지한다. 예를 들어, 셀 크기가 4x4라고 가정하면 단일 커널 가중치가 8주기에 걸쳐 128 IFM 픽셀로 곱해진다. 각 곱셈기에 대한 추가 어큐뮬레이터로 인해 가져온 커널이 8주기 동안 재사용된다.
도 5a-5b는 일 실시 예들에 따른, 커널 재사용을 위한 매 컬럼당 8 개의 어큐뮬레이터 레지스터와 출력 특징 맵(OFM) 계산 순서의 대응 변경을 포함하는 z-우선 스토리지 컨볼루션 신경망 가속기 아키텍처에 대한 하이브리드 트래버설을 도시한 도면이다. z-우선 스토리지 아키텍처의 하이브리드 트래버설에는 커널 메모리(122), IFM 캐시(406), 내적 모듈(502a-502n) 및 어큐뮬레이터 레지스터(504a-504n) 세트가 포함된다. 개선된 MPU(124)에서는 MPU(124)의 각 열 아래에 다중 어큐뮬레이터가 도입된다. 각 커널은 다중 IFM 픽셀로 곱해지며 어큐뮬레이터 레지스터는 순서대로 업데이트된다. 각 열은 둘 이상의 OFM을 어큐뮬레이트(accumulate)한다. OFM 계산 순서는 하이브리드 트래버설로 인해 변경되고 OFM 계산 순서는 도 5b에 도시된다.
도 6은 일 실시 예에 따른 2x4 어큐뮬레이터를 갖는 DConv를 도시한 도면이다. 예를 들어, 4x6의 IFM 블록이 IFM 버퍼(620)에서 읽혀 지는 것을 고려한다. 복수의 커널 값(602-618)은 IFM과 곱해진다. 각 커널 값은 8개의 IFM 값에 순차적으로 곱해진다. 따라서, 3x3 커널에 대해 8개의 OFM을 계산하기 위해 기준선 z-우선 스토리지 CNN 가속기 아키텍처(100)는 8x9 = 72 사이클이 소요된다. 어큐뮬레이터의 수는 기준선에서 증가하지만 전체 레지스터 업데이트 수는 사이클 당 동일하게 유지된다. 따라서 면적은 약간 증가하지만 전력은 크게 증가하지 않는다. 해당 트래버설은 출력 및 가중치 고정 트래버설(weight stationary traversal)의 하이브리드이다. 예를 들어, 첫 번째 커널 값(602)이 IFM 버퍼(622)의 2x4 블록과 곱해지는 0에서 7까지 사이클을 고려한다. 8에서 15까지 사이클 동안, 두 번째 커널 값(604)이 IFM 버퍼(622)의 첫 번째 시프트된 2x4 블록과 곱해진다. 16에서 23까지 사이클 동안, 세 번째 커널 값(606)은 IFM 버퍼(622)의 두 번째 시프트된 2x4 블록과 곱해진다. 64에서 74까지 사이클 동안, 9번째 커널 값(618)은 IFM 버퍼(622)의 9 번째 시프트된 2x4 블록과 곱해진다.
도 7a는 일 실시 예들에 따른, 2x4 어큐뮬레이터를 갖는 WgConv를 도시한 도면이다. 예를 들어, DConv 모드에 제공되는 8개의 어큐뮬레이터 레지스터를 완전히 활용하기 위해 하이브리드 트래버설을 고려한다. 8x8의 IFM 블록이 IFM 버퍼에서 읽혀진다. 재사용을 위한 추가 커널 레지스터가 도입되고 버퍼링된 변환된 IFM 픽셀은 두 개의 변환된 커널의 요소와 곱해진다. 해당 트래버설은 입력, 출력 및 가중치 고정 트래버설(weight stationary traversal)의 하이브리드이다. 커널 재사용 계수(kernel reuse factor)는 절반으로 줄어들고 IFM 재사용 계수(IFM reuse factor)는 DConv에 비해 두배가 된다.
도 7b는 일 실시 예에 따른 WgConv에 대한 하이브리드 트래버설에서의 동작 시퀀스를 도시한 도면이다. MPU0의 연산 순서는 커널 (702)의 0 번째 가중치 요소에 4 개의 변환된 IFM 블록 모두의 0 번째 픽셀을 곱한 다음0에서 3까지의 어큐뮬레이터를 0에서 3까지의 사이클 동안 순차적으로 업데이트됨을 나타낸다. 커널(704)의 0 번째 가중치 요소는 4 개의 변환된 IFM 블록 모두의 0 번째 픽셀과 곱해진 다음 4에서 7까지의 어큐뮬레이터가 4에서 7까지의 사이클 동안 순차적으로 업데이트된다. 커널(702)은 변환된 4x4 커널의 0번째 픽셀과 곱해지며 MPU0에서 곱셈이 수행된다. MPU15에서 15 번째 커널 픽셀과의 곱셈이 수행될 때까지 MPU1에서 첫 번째 커널 픽셀과의 곱셈이 수행된다.
일 실시 예에서, 예를 들어, 아래에 주어진 바와 같이 3x3 컨볼루션에 대한 하이브리드 트래버설 의사 코드를 고려할 수 있다.
// (a) HYBRID TRAVERSAL DConv
FOR (K=0; K<NOFM; K++) //NUMBER OF OFMS
FOR (C=0; C< N_CH_IFM/16; C++) //NUMBER OF MICROBATCHES
FOR (I=0; I<NROW_OFM; I=I+4) //OFM HEIGHT
FOR (J=0; J< NCOL_OFM; J=J+2) //OFM WIDTH
FOR (K1=0; K1<3; K1++) //KERNEL HEIGHT
FOR (K2=0; K2<3; K2++) //KERNEL WIDTH
FOR (T1=0; T1<4;T1++) //PARTIAL OFM ROWS
FOR (T2=0; T2<2; T2++) //PARTIAL OFM COLUMNS
FOR (C1=0; C1< 16; C1++)//MICROBATCH
OFM(K,I+T1,J+T2) = OFM(K,I+T1,J+T2)
+ IFM(C,I+T1+K1,J+T2+K2)*KER(K,C,K1,K2)
// (b) HYBRID TRAVERSAL WgConv
FOR (K=0; K<NOFM; K=K+2) //NUMBER OF OFMS
FOR (C=0; C<N_CH_IFM/16; C++) //NUMBER OF MICROBATCHES
FOR (I=0; I<NROW_OFM; I=I+4) //OFM HEIGHT
FOR (J=0; J<NCOL_OFM; J=J+2) //OFM WIDTH
FOR (K1=0; K1<4; K1++) //TRANSFORMED KERNEL HEIGHT
FOR (K2=0; K2<4; K2++) //TRANSFORMED KERNEL WIDTH
FOR (S=0; S<2; S++) //TWO KERNEL REGISTERS
FOR (T1=0; T1<2;T1++) //PARTIAL OFM ROWS
FOR (T2=0; T2<2; T2++) //PARTIAL OFM COLUMNS
FOR (C1=0; C1<16; C1++)//MICROBATCH
OFM(K+S,I+T1,J+T2) = OFM(K+S,I+T1,J+T2)
+ IFM(C,I+T1+K1,J+T2+K2)*KER(K+S,C,K1,K2)
3x3 컨볼루션에 대한 하이브리드 트래버설에는 다음이 포함될 수 있다.
(a) DConv에 대한 하이브리드 트래버설에는 출력 고정 트래버설(output stationary traversal)과 유사한 외부 루프에 OFM이 있고 내부 루프에 커널이 있다. 또한, 단일 채널의 부분 OFM 픽셀(partial OFM pixel)의 계산으로 인해 커널 루프 내부에 두 개의 추가 루프가 도입되어 출력 고정 트래버설에서 부분 가중치(partial weight)가 고정된다.
(b) WgConv에 대한 하이브리드 트래버설에는 두 채널의 부분 OFM 픽셀의 계산으로 인해 세 개의 추가 루프가 있다.
도 8은 일 실시 예에 따른 하이브리드 트래버설을 사용하는 스트라이드 컨볼루션(strided convolution)을 도시한 도면이다. 스트라이드 컨볼루션에서는 IFM에서 IFM 버퍼(620)로 읽는 동안 스트라이드 계수가 고려된다. 복수의 커널 값(602-618)은 IFM 버퍼에서 읽힌 IFM과 곱해진다. 예를 들어, 3x3 스트라이드 2를 고려하면, IFM의 대체 픽셀을 먼저 읽으면 3x3 커널의 코너 픽셀로 곱할 수 있다. 이 아이디어는 IFM 버퍼의 읽기 픽셀을 최대한 재사용하는 것이다. 각 커널 요소는 8개의 IFM을 순서대로 곱한다(다이렉트 컨볼루션과 유사). 마찬가지로, 다른 커널 요소에 해당하는 IFM은 IFM 버퍼에서 읽혀(판독되어) 재사용된다. IFM 재사용은 스트라이드에 따라 다르다. 예를 들어, 3x3 커널, 스트라이드 3의 경우, IFM 재사용이 더 적다. 만약, 스트라이드가 커널 (w/h) 보다 크면, IFM 재사용은 불가능하다.
도 9는 일 실시 예에 따른 하이브리드 트래버설을 사용하는 확장된 컨볼루션을 도시한 도면이다. 확장된 컨볼루션에서 확장 계수(dilation factor)로 분리된 픽셀은 IFM 버퍼에서 읽혀진다. 복수의 커널값(602-618)은 IFM 버퍼에서 읽힌 IFM과 곱해진다. 확장된 컨볼루션에서 다이렉트 컨볼루션과 유사한 곱셈이 IFM 버퍼의 읽기 픽셀에서 수행되어 확장 계수로 분리된 OFM을 생성한다. 다음으로 이미 가져온 IFM에 인접한 픽셀을 읽어 해당 OFM을 계산한다. 스트라이드가 1보다 큰 1 케이스의 경우 offset = dilation_factor * stride를 사용하여 픽셀을 가져오도록 주소 생성 로직을 적절히 수정할 수 있다.
도 10은 일 실시 예에 따른 하이브리드 트래버설을 사용하는 디컨볼루션을 도시한 도면이다. 복수의 커널 값 (602-618)은 IFM 버퍼에서 읽힌 IFM과 곱해진다. 디컨볼루션은 IFM을 디컨볼루션 계수(deconvolution factor)에 의해 확대되며, 그 다음 다이렉트 컨볼루션과 유사하게 컨볼루션을 수행한다. 여기에서, 주어진 디컨볼루션 계수에 경우 0이 아닌 IFM 픽셀에 해당하는 어큐뮬레이터 만 업데이트하면 된다. 선택된 커널 요소는 다중 IFM 픽셀과 곱 해져서 디컨볼루션 계수로 분리된 OFM을 얻는다. 커널 메모리(122)에서 읽어야하는 커널 요소의 인덱스는 시퀀스를 따르고, 어떤 경우이든 MPUA의 모든 MPU에 공통적인 단순한 상태 머신(simple state machine)에서 파생된다. 예를 들어, 첫 번째 커널 값(602)이 IFM 버퍼(622)의 2x4 블록과 곱해지는 0에서 7까지의 사이클을 고려한다. 8에서 15까지의 사이클 동안 커널 값 2에 x 방향으로 1픽셀씩 시프트된 2x4 블록과 곱해진다. 16에서 23까지의 사이클 동안, 세 번째 커널 값(614)이 IFM 버퍼(622)의 시프트된 2x4 블록과 곱해진다. 24에서 31까지의 사이클 동안, 네 번째 커널 값(618)은 IFM 버퍼(622)의 시프트된 2x4 블록과 곱해진다. 32에서 39까지의 사이클 동안, 다섯 번째 커널 값은 IFM 버퍼(622)의 시프트된 2x4 블록과 곱해진다. 40에서 47까지의 사이클 동안, 여섯 번째 커널 값(616)은 IFM 버퍼(622)의 시프트된 2x4 블록과 곱해진다.
도 11은 일 실시 예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법을 도시한 흐름도이다. 단계 1102에서, 방법(1100)은 픽셀 메모리로부터 복수의 IFM 마이크로배치를 수신하고 커널 메모리로부터 커널 마이크로배치를 수신하는 단계를 포함한다. 단계 1104에서, 방법(1100)은 다이렉트 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv) 중 적어도 하나에 대한 커널 재사용 계수에 기초하여 복수의 IFM 마이크로배치와 함께 복수의 커널 마이크로배치를 재사용하여 복수의 OFM(Output Feature Maps) 마이크로배치를 획득한다. 단계 1106에서, 방법(1100)은 양자화, 비선형 함수 및 풀링 후에 결과 OFM 마이크로배치를 픽셀 메모리에 기록하는 단계를 포함한다.
도 12는 일 실시 예에 따른 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치의 개략적인 구성을 도시한 도면이다. 도 12를 참조하면 하이브리드 트래버설 장치는 픽셀 메모리(1210), 커널 메모리(1220), 수신부(1230), 변환부(1240), 재사용 곱셈부(1250), 역변환부(1260) 및 출력 특징 맵 생성부(1270)를 포함한다.
수신부(1230)는 픽셀 메모리(1210)로부터 복수의 입력 특징 맵(IFM; Input Feature Map) 마이크로배치를 수신하고, 커널 메모리(1220)로부터 복수의 커널 마이크로배치를 수신한다.
변환부(1240)는 복수의 출력 특징 맵 마이크로배치를 다이렉트 컨볼루션(DConv; Direct Convolution) 또는 위노그라드 컨볼루션(WgConv; Winograd Convolution)으로 변환한다.
재사용 곱셈부(1250)는 커널 재사용 계수에 기초하여 복수의 커널 마이크로배치를 재사용하면서 변환된 복수의 입력 특징 맵 마이크로배치와 복수의 커널 마이크로배치를 곱한다.
재사용 곱셈부(1250)는 복수의 MPU(Multiply Accumulate Pipeline Unit)로 구성된 MPUA(Multiply Accumulate Pipeline Unit Array)를 포함할 수 있다. 이때, 복수의 MPU 각각에서 변환된 복수의 입력 특징 맵 마이크로배치와 복수의 커널 마이크로배치를 곱할 수 있다.
또한, 재사용 곱셈부(1250)는 복수의 MAA 세트(Multiply Accumulate Array Set)를 포함하여 구성될 수 있다. 이때, 복수의 MAA 세트 각각에서 변환된 복수의 입력 특징 맵 마이크로배치와 복수의 커널 마이크로배치를 곱할 수 있다.
역변환부(1260)는 상기 변환부에서 사용된 변환 방식의 역변환 방식으로 재사용 곱셈부(1250)의 복수의 출력을 역변환하여 역변환된 복수의 출력을 생성한다.
출력 특징 맵 생성부(1270)는 역변환된 복수의 출력을 양자화(quantization), 비선형 함수(non-linear function) 및 풀링(pooling)하여 출력 특징 맵 마이크로배치를 생성하여 픽셀 메모리(1210)에 기록한다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (13)

  1. 픽셀 메모리로부터 복수의 입력 특징 맵(IFM) 마이크로배치를 수신하고, 커널 메모리로부터 복수의 커널 마이크로배치를 수신하는 단계;
    복수의 출력 특징 맵(OFM) 마이크로배치를 획득하기 위해서, 다이렉트 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv) 중에서 적어도 하나에 대한 커널 재사용 계수에 기초하여 상기 복수의 커널 마이크로배치를 재사용하면서, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 단계; 및
    상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱한 결과에 양자화, 비선형 함수 및 풀링한 후에 생성된 출력 특징 맵 마이크로배치를 상기 픽셀 메모리에 기록하는 단계
    를 포함하는 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법.
  2. 제1항에 있어서,
    상기 복수의 출력 특징 맵 마이크로배치와 상기 복수의 입력 특징 맵 마이크로배치는,
    단일 메모리 워드에 패킹된 입력 특징 맵의 z-방향의 채널 또는 출력 특징 맵의 z-방향의 채널 또는 커널의 z-방향의 채널인
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법.
  3. 제1항에 있어서,
    상기 하이브리드 트래버설을 제공하는 방법은,
    상기 복수의 입력 특징 맵 마이크로배치와 곱셈에서 상기 복수의 커널 마이크로배치를 재사용함으로써 상기 컨볼루션 신경망 가속기 아키텍처에 대한 감소된 전력을 제공하는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법.
  4. 제1항에 있어서,
    상기 하이브리드 트래버설을 제공하는 방법은,
    x-y 우선 스토리지를 갖는 컨볼루션 신경망 가속기 아키텍처로 확장되는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법.
  5. 제1항에 있어서,
    상기 하이브리드 트래버설을 제공하는 방법은,
    상기 복수의 입력 특징 맵 마이크로배치를 수신할 때, 스트라이드, 디라이트 및 디컨볼루션 중에서 적어도 하나를 이용해서 수신하는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설을 제공하는 방법.
  6. 픽셀 메모리로부터 복수의 입력 특징 맵(IFM) 마이크로배치를 수신하고, 커널 메모리로부터 복수의 커널 마이크로배치를 수신하는 수신부;
    복수의 출력 특징 맵(OFM) 마이크로배치를 획득하기 위해서, 다이렉트 컨볼루션(DConv) 및 위노그라드 컨볼루션(WgConv) 중에서 적어도 하나에 대한 커널 재사용 계수에 기초하여 상기 복수의 커널 마이크로배치를 재사용하면서, 상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 재사용 곱셈부; 및
    상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱한 결과에 양자화, 비선형 함수 및 풀링한 후에 생성된 출력 특징 맵 마이크로배치를 상기 픽셀 메모리에 기록하는 출력 특징 맵 생성부
    를 포함하는 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  7. 제6항에 있어서,
    상기 복수의 출력 특징 맵 마이크로배치와 상기 복수의 입력 특징 맵 마이크로배치는,
    단일 메모리 워드에 패킹된 입력 특징 맵의 z-방향의 채널 또는 출력 특징 맵의 z-방향의 채널 또는 커널의 z-방향의 채널인
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  8. 제6항에 있어서,
    상기 재사용 곱셈부는,
    상기 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치의 곱셈에서 상기 복수의 커널 마이크로배치를 재사용함으로써 전력 사용을 줄이는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  9. 제6항에 있어서,
    상기 하이브리드 트래버설 장치는,
    x-y 우선 스토리지를 갖는 컨볼루션 신경망 가속기 아키텍처로 확장되는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  10. 제6항에 있어서,
    상기 수신부는,
    상기 복수의 입력 특징 맵 마이크로배치를 수신할 때, 스트라이드, 디라이트 및 디컨볼루션 중에서 적어도 하나를 지원하는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  11. 픽셀 메모리로부터 복수의 입력 특징 맵(IFM) 마이크로배치를 수신하고, 커널 메모리로부터 복수의 커널 마이크로배치를 수신하는 수신부;
    상기 복수의 출력 특징 맵 마이크로배치를 다이렉트 컨볼루션(DConv) 또는 위노그라드 컨볼루션(WgConv)으로 변환하는 변환부;
    커널 재사용 계수에 기초하여 복수의 커널 마이크로배치를 재사용하면서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는 재사용 곱셈부;
    상기 변환부에서 사용된 변환 방식의 역변환 방식으로 상기 재사용 곱셈부의 복수의 출력을 역변환하여 역변환된 복수의 출력을 생성하는 역변환부; 및
    상기 역변환된 복수의 출력을 양자화, 비선형 함수 및 풀링하여 출력 특징 맵 마이크로배치를 생성하여 픽셀 메모리에 기록하는 출력 특징 맵 생성부
    를 포함하는 컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  12. 제11항에 있어서,
    상기 재사용 곱셈부는,
    복수의 MPU(Multiply Accumulate Pipeline Unit)로 구성된 MPUA(Multiply Accumulate Pipeline Unit Array)를 포함하는
    복수의 MPU 각각에서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
  13. 제11항에 있어서,
    상기 재사용 곱셈부는,
    복수의 MAA 세트(Multiply Accumulate Array Set)를 포함하는
    복수의 MAA 세트 각각에서 상기 변환된 복수의 입력 특징 맵 마이크로배치와 상기 복수의 커널 마이크로배치를 곱하는
    컨볼루션 신경망 가속기 아키텍처를 위한 하이브리드 트래버설 장치.
KR1020200123723A 2019-09-27 2020-09-24 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법 KR20210037569A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/033,132 US20210117755A1 (en) 2019-09-27 2020-09-25 Power-efficient hybrid traversal apparatus and method for convolutional neural network accelerator architecture

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201941039259 2019-09-27
IN201941039259??? 2020-09-04

Publications (1)

Publication Number Publication Date
KR20210037569A true KR20210037569A (ko) 2021-04-06

Family

ID=75473332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200123723A KR20210037569A (ko) 2019-09-27 2020-09-24 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법

Country Status (2)

Country Link
US (1) US20210117755A1 (ko)
KR (1) KR20210037569A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255898A (zh) * 2021-06-16 2021-08-13 合肥工业大学 基于Winograd算法的卷积神经网络硬件加速器及计算方法
CN113283587A (zh) * 2021-05-28 2021-08-20 西安交通大学 一种Winograd卷积运算加速方法及加速模块
WO2023085442A1 (ko) * 2021-11-09 2023-05-19 한국전자기술연구원 고정확도 딥러닝 연산 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110472531B (zh) * 2019-07-29 2023-09-01 腾讯科技(深圳)有限公司 视频处理方法、装置、电子设备及存储介质
US11500811B2 (en) * 2020-06-12 2022-11-15 Alibaba Group Holding Limited Apparatuses and methods for map reduce
US20220012578A1 (en) * 2021-09-24 2022-01-13 Intel Corporation Methods, apparatus, and articles of manufacture to increase utilization of neural network (nn) accelerator circuitry for shallow layers of an nn by reformatting one or more tensors

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554711B (en) * 2016-10-06 2020-11-25 Imagination Tech Ltd Buffer addressing for a convolutional neural network
WO2018108126A1 (zh) * 2016-12-14 2018-06-21 上海寒武纪信息科技有限公司 神经网络卷积运算装置及方法
US10402527B2 (en) * 2017-01-04 2019-09-03 Stmicroelectronics S.R.L. Reconfigurable interconnect
US10977001B2 (en) * 2018-02-05 2021-04-13 Mediatek Inc. Asymmetric quantization of multiple-and-accumulate operations in deep learning processing
US11755880B2 (en) * 2018-03-09 2023-09-12 Canon Kabushiki Kaisha Method and apparatus for optimizing and applying multilayer neural network model, and storage medium
US11010308B2 (en) * 2018-08-10 2021-05-18 Lg Electronics Inc. Optimizing data partitioning and replacement strategy for convolutional neural networks
US11494608B2 (en) * 2019-08-14 2022-11-08 Intel Corporation Methods and apparatus to tile walk a tensor for convolution operations

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113283587A (zh) * 2021-05-28 2021-08-20 西安交通大学 一种Winograd卷积运算加速方法及加速模块
CN113283587B (zh) * 2021-05-28 2023-09-19 西安交通大学 一种Winograd卷积运算加速方法及加速模块
CN113255898A (zh) * 2021-06-16 2021-08-13 合肥工业大学 基于Winograd算法的卷积神经网络硬件加速器及计算方法
CN113255898B (zh) * 2021-06-16 2022-08-02 合肥工业大学 基于Winograd算法的卷积神经网络硬件加速器及计算方法
WO2023085442A1 (ko) * 2021-11-09 2023-05-19 한국전자기술연구원 고정확도 딥러닝 연산 장치

Also Published As

Publication number Publication date
US20210117755A1 (en) 2021-04-22

Similar Documents

Publication Publication Date Title
KR20210037569A (ko) 컨볼루션 신경망 가속기 아키텍처를 위한 전력 효율적인 하이브리드 트래버설 장치 및 방법
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
US10140251B2 (en) Processor and method for executing matrix multiplication operation on processor
KR102492477B1 (ko) 행렬 곱셈기
Shen et al. Towards a uniform template-based architecture for accelerating 2D and 3D CNNs on FPGA
Podili et al. Fast and efficient implementation of convolutional neural networks on FPGA
Lu et al. SpWA: An efficient sparse winograd convolutional neural networks accelerator on FPGAs
Luo et al. Towards efficient deep neural network training by FPGA-based batch-level parallelism
Zhang et al. Frequency domain acceleration of convolutional neural networks on CPU-FPGA shared memory system
Ma et al. Performance modeling for CNN inference accelerators on FPGA
EP4258182A2 (en) Accelerated mathematical engine
KR20210082058A (ko) 콘볼루션 신경망들을 구현하기 위한 구성 가능형 프로세서 엘리먼트 어레이들
US8781748B2 (en) System and method for generating images of subsurface structures
CN112513885A (zh) 神经处理器
KR102642849B1 (ko) 딥 러닝 처리 장치, 방법, 기기 및 저장 매체
Qi et al. Accelerating framework of transformer by hardware design and model compression co-optimization
CN103336758A (zh) 一种稀疏矩阵的存储方法CSRL及基于该方法的SpMV实现方法
CN112199636B (zh) 适用于微处理器的快速卷积方法及装置
Fan et al. Reconfigurable acceleration of 3D-CNNs for human action recognition with block floating-point representation
US11886347B2 (en) Large-scale data processing computer architecture
US12046028B1 (en) Compiler system for deploying CNN models to FPGA-based high-performance accelerators
JP5522283B1 (ja) リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置
CN110414672B (zh) 卷积运算方法、装置及系统
US20220188613A1 (en) Sgcnax: a scalable graph convolutional neural network accelerator with workload balancing
Niu et al. SPEC2: Spectral sparse CNN accelerator on FPGAs

Legal Events

Date Code Title Description
A201 Request for examination