KR20240040614A - 극희소성 딥 러닝 에지 추론 가속기 - Google Patents

극희소성 딥 러닝 에지 추론 가속기 Download PDF

Info

Publication number
KR20240040614A
KR20240040614A KR1020230097358A KR20230097358A KR20240040614A KR 20240040614 A KR20240040614 A KR 20240040614A KR 1020230097358 A KR1020230097358 A KR 1020230097358A KR 20230097358 A KR20230097358 A KR 20230097358A KR 20240040614 A KR20240040614 A KR 20240040614A
Authority
KR
South Korea
Prior art keywords
tensor
activation
weight
sparse
sparsity
Prior art date
Application number
KR1020230097358A
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 삼성전자주식회사
Publication of KR20240040614A publication Critical patent/KR20240040614A/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/08Learning methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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/0495Quantised networks; Sparse networks; Compressed 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

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)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

신경망 추론 가속기는 제1 신경 처리 유닛, 제2 신경 처리 유닛 및 희소성 관리 유닛을를 포함한다. 제1 신경 처리 유닛은 활성화 희소 밀도 및 가중치 희소 밀도가 모두 미리 결정된 희소 밀도보다 큰 것에 기초하여 활성화 및 가중치 텐서를 수신한다. 제2 신경 처리 유닛은 활성화 희소 밀도 및 가중치 희소 밀도 중 적어도 하나가 상기 미리 결정된 희소 밀도보다 작거나 같은 것에 기초하여 활성화 텐서 및 가중치 텐서를 수신한다. 희소성 관리 유닛은 미리 결정된 희소 밀도에 대한 활성화 희소 밀도 및 가중치 희소 밀도에 기초하여 활성화 텐서 및 가중치 텐서의 전달을 제어한다.

Description

극희소성 딥 러닝 에지 추론 가속기{EXTREME SPARSE DEEP LEARNING EDGE INFERENCE ACCELERATOR}
본 명세서에 개시된 주제는 신경망에 관한 것이다. 보다 구체적으로, 본 명세서에 개시된 주제는 극희소성 딥 러닝 에지 추론 가속기에 관한 것이다.
본 출원은 2022년 9월 21일에 출원된 미국 임시 특허 출원 일련 번호 63/408,827, 2022년 9월 21일에 출원된 63/408,828, 2022년 9월 21일에 출원된 63/408,829, 및 2022년 9월 26일에 출원된 63/410,216 및 2022년 11월 17일에 출원된 미국 특허 출원 일련 번호 17/989/675의 우선권을 주장하며, 이들의 개시 내용은 전체적으로 본 명세서에 참조로 포함된다.
심층 신경망(DNN)은 신경 처리 유닛(NPU)에 의해 가속될 수 있다. DNN에서 일반 행렬 승산(GEMM) 연산의 피연산자 내부 희소성은 NPU를 더욱 가속화하기 위해 이용될 수 있다. 구조화된 희소성, 특히 N:M(M 가중 값 중 N개의 0이 아닌 요소) 희소성은 랜덤 희소성에 비해 정확도를 유지하고 하드웨어 오버헤드를 줄이는 데 도움이 될 수 있다. 일부 텐서는 더 높은 수준의 희소성을 갖고 일부 텐서는 보통 수준의 희소성을 갖는다.
본 발명이 해결하고자 하는 과제는 성능이 향상된 신경망 추론 가속기를 제공하는 것이다.
일 예시의 실시 예는 제1 신경 처리 유닛, 제2 신경 처리 유닛 및 희소성 관리 유닛을 포함할 수 있는 신경망 추론 가속기를 제공한다. 메모리는 적어도 하나의 활성화 텐서 및 적어도 하나의 가중치 텐서를 저장하도록 구성될 수 있다. 상기 제1 신경 처리 유닛은 상기 활성화 텐서의 활성화 희소 밀도 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 상기 가중치 희소 밀도가 모두 미리 결정된 희소 밀도보다 큰 것에 기초하여 상기 메모리로부터 상기 활성화 텐서 및 상기 가중치 텐서를 수신하도록 구성될 수 있다. 제2 신경 처리 유닛은 상기 활성화 텐서의 상기 활성화 희소 밀도 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 상기 가중치 희소 밀도 중 적어도 하나가 상기 미리 결정된 희소 밀도보다 작거나 같은 것에 기초하여 상기 메모리로부터 상기 활성화 텐서 및 상기 가중치 텐서를 수신하도록 구성될 수 있다. 희소성 관리 유닛은 상기 미리 결정된 희소 밀도에 대한 상기 활성화 텐서의 상기 활성화 희소 밀도 및 상기 가중치 텐서의 상기 가중치 희소 밀도에 기초하여 상기 메모리로부터 상기 제1 신경 처리 유닛 또는 상기 제2 신경 처리 유닛으로의 상기 활성화 텐서 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 전달을 제어하도록 구성될 수 있다. 일 실시 예에서, 상기 제1 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제1 결과를 연산하도록 구성될 수 있고, 상기 제2 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제2 결과를 연산하도록 구성될 수 있다. 다른 실시 예에서, 상기 신경망 추론 가속기는 상기 제1 신경 처리 유닛에 의해 연산된 상기 제1 결과를 수신하여 압축하고, 상기 제2 신경 처리 유닛에 의해 연산된 상기 제2 결과를 수신하여 압축하도록 구성되는 압축 유닛을 더욱 포함할 수 있고, 상기 메모리는 상기 압축 유닛에 의해 압축된 상기 제1 결과를 저장하고 상기 압축 유닛에 의해 압축된 상기 제2 결과를 저장하도록 더욱 구성될 수 있다. 또 다른 실시 예에서, 상기 압축 유닛은 상기 제1 결과와 연관된 제1 메타데이터를 생성하고 상기 제2 결과와 연관된 제2 메타데이터를 생성하도록 더욱 구성될 수 있고, 상기 메모리는 상기 제1 메타데이터 및 상기 제2 메타데이터를 저장하도록 더욱 구성될 수 있다. 또 다른 실시 예에서, 상기 활성화 텐서 및 상기 가중치 텐서 중 적어도 하나가 압축될 수 있고, 신경망 추론 가속기는 상기 활성화 텐서가 압축되는 것에 기초하여 상기 활성화 텐서를 상기 활성화 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축되는 것에 기초하여 상기 가중치 희소 밀도로 상기 가중치 텐서를 압축 해제하도록 구성된 압축 해제 유닛을 더욱 포함할 수 있다. 일 실시 예에서, 상기 압축 해제 유닛은 상기 활성화 텐서가 압축되는 것에 기초하여 상기 활성화 텐서와 연관된 제1 메타데이터를 사용하여 상기 활성화 텐서를 상기 활성화 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축되는 것에 기초하여 상기 가중치 텐서와 연관된 제2 메타데이터를 사용하여 상기 가중치 텐서를 상기 가중치 희소 밀도로 압축 해제하도록 더욱 구성될 수 있다. 다른 실시 예에서, 상기 활성화 희소 밀도는 구조화된 희소 배열 또는 랜덤 희소 배열을 기반으로 할 수 있다. 또 다른 실시 예에서, 상기 활성화 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 할 수 있다. 또 다른 실시 예에서, 상기 가중치 희소 밀도는 구조화된 희소성 배열 또는 랜덤 희소성 배열을 기반으로 할 수 있다. 일 실시 예에서, 상기 가중치 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 할 수 있다.
일 예시의 실시 예는 압축 해제 유닛, 제1 신경 처리 유닛, 제2 신경 처리 유닛 및 희소성 관리 유닛을 포함할 수 있는 신경망 추론 가속기를 제공한다. 상기 압축 해제 유닛은 상기 활성화 텐서가 압축된 것에 기초하여 활성화 텐서를 제1 미리 결정된 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축된 것에 기초하여 가중치 텐서를 제2 미리 결정된 희소 밀도로 압축 해제하도록 구성될 수 있다. 상기 제1 신경 처리 유닛은 제1 미리 결정된 희소 밀도 및 제2 미리 결정된 희소 밀도가 모두 미리 결정된 희소 밀도 임계치보다 큰 것에 기초하여 압축 해제 유닛으로부터 활성화 텐서 및 가중치 텐서를 수신하도록 구성될 수 있다. 제2 신경 처리 유닛은 미리 결정된 제1 희소 밀도 및 제2 미리 결정된 희소 밀도 중 적어도 하나가 미리 결정된 희소 밀도 임계치 이하인 것에 기초하여 압축 해제 유닛으로부터 활성화 텐서 및 가중치 텐서를 수신하도록 구성될 수 있다. 상기 희소성 관리 유닛은 미리 결정된 희소 밀도 임계치에 대한 미리 결정된 제1 희소 밀도 및 미리 결정된 제2 희소 밀도에 기초하여 활성화 텐서 및 가중치 텐서의 제1 신경 처리 유닛 또는 제2 신경 처리 유닛으로의 전달을 제어하도록 구성될 수 있다. 일 실시 예에서, 상기 신경망 추론 가속기는 활성화 텐서 및 가중치 텐서를 저장하는 메모리를 더 포함할 수 있고, 상기 압축 해제 유닛은 메모리로부터 활성화 텐서 및 가중치 텐서를 수신한다. 다른 실시 예에서, 상기 제1 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제1 결과를 연산하도록 구성될 수 있고, 상기 제2 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제2 결과를 연산하도록 구성될 수 있다. 또 다른 실시 예에서, 상기 신경망 추론 가속기는 상기 제1 신경 처리 유닛에 의해 연산된 상기 제1 결과를 수신하여 압축하고, 상기 제2 신경 처리 유닛에 의해 연산된 상기 제2 결과를 수신하여 압축하도록 구성되는 압축 유닛을 더욱 포함할 수 있고, 상기 메모리는 상기 압축 유닛에 의해 압축된 상기 제1 결과를 저장하고 상기 압축 유닛에 의해 압축된 상기 제2 결과를 저장하도록 더욱 구성될 수 있다. 또 다른 실시 예에서, 상기 압축 유닛은 상기 제1 결과와 연관된 제1 메타데이터를 생성하고 상기 제2 결과와 연관된 제2 메타데이터를 생성하도록 더욱 구성될 수 있고, 상기 메모리는 상기 제1 메타데이터 및 상기 제2 메타데이터를 저장하도록 더욱 구성될 수 있다. 일 실시 예에서, 상기 압축 해제 유닛은 상기 활성화 텐서가 압축되는 것에 기초하여 상기 활성화 텐서와 연관된 제1 메타데이터를 사용하여 상기 활성화 텐서를 상기 제1 미리 결정된 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축되는 것에 기초하여 상기 가중치 텐서와 연관된 제2 메타데이터를 사용하여 상기 가중치 텐서를 상기 제 미리 결정된 희소 밀도로 압축 해제하도록 더욱 구성될 수 있다. 다른 실시 예에서, 상기 제1 미리 결정된 희소 밀도는 구조화된 희소 배열 또는 랜덤 희소 배열을 기반으로 할 수 있다. 또 다른 실시 예에서, 상기 제1 미리 결정된 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 할 수 있다. 또 다른 실시 예에서, 상기 제2 미리 결정된 희소 밀도는 구조화된 희소성 배열 또는 랜덤 희소성 배열을 기반으로 할 수 있다. 일 실시 예에서, 상기 제2 미리 결정된 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 할 수 있다.
이하 섹션에서, 본 명세서에 개시된 주제의 측면이 도면에 도시된 예시적인 실시 예를 참조하여 설명될 것이다:
도 1은 딥 러닝 추론을 위해 신경망에서 일반적으로 수행되는 예시적인 내적 연산을 도시한다;
도 2a는 예시적인 N:M = 4:8 또는 2:4 구조화된 희소성 포맷으로 정렬된 활성화 값 또는 가중 값일 수 있는 요소의 예시적인 어레이를 도시하며, 이 때 정의된 M개의 연속 가중치 그룹에서 최대 N개의 가중치가 0이 아닌 값을 갖는다;
도 2b는 N:M = 1:4 및 2:8 구조화된 희소성 배열의 예를 도시한다;
도 3은 N:M 구조화된 희소성 가중 값 세트로 형성되는 조밀 가중 값 세트의 예를 도시한다;
도 4는 희소 신경망 모델을 생성하기 위해 사용될 수 있는 프로세스의 흐름도이다;
도 5는 본 명세서에 개시된 주제에 따른 극희소성 딥 러닝 에지 추론 가속기의 예시적인 실시 예의 블록도이다;
도 6a는 본 명세서에 개시된 주제에 따른 압축/압축 해제 유닛의 압축 유닛의 예시적인 실시 예의 기능 블록도이다;
도 6b는 본 명세서에 개시된 주제에 따른 압축/압축 해제 유닛의 압축 해제 유닛의 예시적인 실시 예의 기능 블록도이다;
도 7a는 본 명세서에 개시된 주제에 따른 하이브리드 희소성 코어 및/또는 극희소성 코어일 수 있는 재구성 가능한 이중 희소성 코어 아키텍처의 예시적인 실시 예를 도시한다;
도 7b는 본 명세서에 개시된 주제에 따른 하이브리드 희소성 코어 및/또는 극희소성 코어에 사용될 수 있는 재구성 가능한 이중 희소성 코어의 제2 예시적 실시 예를 도시한다; 및
도 8은 본 명세서에 개시된 주제에 따른 극희소성 딥 러닝 에지 추론 가속기를 포함할 수 있는 전자 장치를 도시한다.
이하 상세한 설명에서, 본 개시 내용의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 당업자라면 개시된 측면은 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 이해될 것이다. 다른 예에서, 잘 알려진 방법, 절차, 구성 요소 및 회로는 본 명세서에 개시된 본 발명을 모호하게 하지 않기 위해 상세하게 설명되지 않았다.
본 명세서 전반에 걸쳐 "일 실시 예" 또는 "실시 예"에 대한 언급은 실시 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 명세서에 개시된 적어도 하나의 실시 예에 포함될 수 있음을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 곳에서 "일 실시 예에서" 또는 "실시 예에서" 또는 "일 실시 예에 따른" (또는 유사한 의미를 갖는 다른 어구)의 언급은 반드시 모두 동일한 실시 예를 지칭하는 것은 아닐 수 있다. 또한, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 이와 관련하여, 본 명세서에서 사용된 바와 같이, "예시적인"이라는 단어는 "예시, 실례 또는 예시로서의 역할을 한다"를 의미한다. 본 명세서에서 "예시적인" 것으로 설명된 임의의 실시 예는 다른 실시 예에 비해 반드시 바람직하거나 유리한 것으로 해석되어서는 안된다. 추가로, 특정 특징, 구조 또는 특성은 하나 이상의 실시 예에서 임의의 적절한 방식으로 결합될 수 있다. 또한, 본 명세서에서 논의한 내용에 따라, 단수형 용어는 대응하는 복수형을 포함할 수 있고 복수형 용어는 대응하는 단수형을 포함할 수 있다. 유사하게, 하이픈으로 연결된 용어(예를 들어, "2-차원", "미리-결정된", "픽셀-특정" 등)는 때때로 해당하는 하이픈 없는 버전(예를 들어 "2차원", "미리 결정된", "픽셀 특정" 등)과 상호 교환적으로 사용될 수 있으며, 대문자 항목(예를 들어, "Counter Clock", "Row Select", "PIXOUT" 등)은 해당하는 비 대문자 버전(예를 들어, "counter clock", "row select", "pixout" 등)과 상호 교환적으로 사용될 수 있다. 이러한 상호 교환하여 사용하는 것을 서로 불일치하다고 간주해서 안된다.
또한, 본 명세서에서 논의되는 맥락에 따라, 단수형의 용어는 대응하는 복수 형을 포함할 수 있고, 복수형의 용어는 대응하는 단수형을 포함할 수 있다. 본 명세서에 도시되고 논의된 다양한 도면(구성 요소도 포함함)은 단지 예시를 위한 것으로, 비율대로 그련진 것이 아니라는 것에 유의한다. 예를 들어, 일부 요소의 치수는 명확하게 하기 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절하다고 간주되는 경우, 도면간에 참조 번호가 반복되어 대응 및/또는 유사한 요소를 표시한다.
본 명세서에서 사용된 용어는 일부 예시적인 실시 예를 설명하기 위한 것이며 청구된 본 발명의 요지를 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥 상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것이다. 본 명세서에서 사용될 때 "포함하다" 및/또는 "포함하는" 이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소 및/또는 그 그룹의 존재 또는 추가를 배제하지 않는다는 것이 이해될 것이다. 본 명세서에서 사용된 "제1", "제2" 등의 용어는 명시적으로 그렇게 정의되지 않는 한 앞에 오는 명사에 대한 레이블로 사용되며 어떤 유형의 순서(예: 공간적, 시간적, 논리적 등)도 의미하지 않다. 뿐만 아니라, 동일하거나 유사한 기능을 갖는 부품, 컴포넌트, 블록, 회로, 유닛 또는 모듈을 지칭하기 위해 2개 이상의 도면에 걸쳐 동일한 참조 번호가 사용될 수 있다. 그러나 이러한 사용법은 설명의 단순성과 논의의 용이성을 위한 것일 뿐이며; 이러한 구성요소 또는 유닛의 구성 또는 구조적 세부 사항은 모든 실시 예에 걸쳐 동일하거나 이러한 일반적으로 참조되는 부품/모듈이 본 명세서에서 개시된 예시적인 실시 예 중 일부를 구현하는 유일한 방법임을 의미하지 않는다.
하나의 요소 또는 층이 다른 요소 또는 층에 "연결되거나" "결합되는" 것으로 언급될 때, 다른 요소 또는 층에 대해 바로 위에 있거나, 연결되거나 결합될 수 있거나, 중간 요소 또는 층이 존재할 수도 있다. 대조적으로, 하나의 요소가 다른 요소 또는 층의 "바로 위에 있거나", "직접 연결되거나", "직접 결합되는" 것으로 언급될 때, 중간 요소 또는 층이 존재하지 않는다. 동일한 숫자는 전체에 걸쳐 동일한 요소를 나타낸다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관된 열거된 항목의 임의의 및 모든 조합을 포함한다.
본 명세서에서 사용되는 용어 "제 1", "제 2" 등은 선행하는 명사의 라벨로 사용되며, 명시적으로 정의하지 않는 한, 어떤 유형의 순서(예를 들어, 공간적, 시간적, 논리적 등)도 암시하지 않는다. 또한, 동일하거나 유사한 기능을 갖는 부품, 구성 요소, 블록, 회로, 유닛 또는 모듈을 지칭하기 위해 동일한 참조 번호가 둘 이상의 도면에 걸쳐 사용될 수 있다. 그러나 이러한 사용법은 설명의 단순성과 논의의 용이성을 위한 것이고; 그러한 구성 요소 또는 유닛의 구조 또는 구조적 세부 사항이 모든 실시 예에 걸쳐 동일하거나 일반적으로 참조되는 부품/모듈이 본 명세서에 개시된 예시적인 실시 예의 일부를 구현하는 유일한 방법이라는 것을 의미하지는 않는다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 본 명세서에서 사용되는 모든 용어는 이 주제가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 기술의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며 본 명세서에서 명확하게 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않는다는 것이 이해될 것이다.
본 명세서에서 사용되는 용어 "모듈"은 모듈과 관련하여 본 명세서에 설명된 기능을 제공하도록 구성된 소프트웨어, 펌웨어 및/또는 하드웨어의 임의의 조합을 지칭한다. 예를 들어, 소프트웨어는 소프트웨어 패키지, 코드 및/또는 명령어 세트 또는 명령어로 구현될 수 있으며, 본 명세서에 설명된 임의의 구현에서 사용되는 용어 "하드웨어"는 예를 들어, 단일 또는 임의의 조합으로, 어셈블리, 하드 와이어드 회로, 프로그래밍 가능 회로, 상태 기계 회로 및/또는 프로그래밍 가능 회로에 의해 실행되는 명령어를 저장하는 펌웨어를 포함할 수 있다. 모듈은 집합적으로 또는 개별적으로, 예를 들어, 집적 회로(IC), 시스템 온칩(SoC), 어셈블리 등과 같은 더 큰 시스템의 일부를 형성하는 회로로 구현될 수 있다.
본 명세서에 개시된 주제는 75% 희소성 미만의 희소 밀도에 대한 구조화된 희소성 및 랜덤 희소성 모두에 대해 추론 연산을 실행할 수 있는 추론 가속기 아키텍처를 제공한다.
도 1은 딥 러닝 추론을 위해 신경망에서 일반적으로 수행되는 예시적인 내적 연산(100)을 도시한다.
제1 텐서 a=[a1,a2,.., an]와 제2 텐서 w=[w1,w2,..,wn]의 내적은 다음과 같이 정의된다:
여기서 Σ는 합계, i는 인덱스, n은 벡터(텐서) 공간의 차원이다.
도 1을 참조하면. 제1 텐서 a는 구조화된 희소성 형식으로 배열되거나 배열되지 않을 수 있는 활성화 텐서(101)일 수 있다. 제2 텐서 w는 구조화된 희소성 형식으로 배열되거나 배열되지 않을 수 있는 가중치 텐서(102)일 수 있다. 제1 텐서 a와 제2 텐서 w의 내적 연산(103)이 출력(104)에 표시된다.
도 2a는 예시적인 N:M = 4:8 또는 2:4 구조화된 희소성 포맷으로 정렬된 활성화 값 또는 가중 값일 수 있는 요소의 예시적인 어레이를 도시하며, 이 때 M 연속 가중치의 정의된 그룹(예를 들어, 열이 아닌 행)에는, 최대 N개의 가중치가 0이 아닌 값을 갖는다.
어레이의 요소는 작은 사각형으로 표시되며, 요소의 두 가지 다른 회색 음영은 값이 0인 요소와 값이 0이 아닌 요소를 나타낸다. 표시된 4:8 및 2:4 구조화된 희소성 배열은 값이 0인 요소 또는 값이 0이 아닌 요소를 나타내는 회색 음영이 결과된다.
구조화된 희소성은 도 2b에 나타낸 4:8 및 2:4 구조화된 희소성 배열에 제한되지 않고, 1:4 및 2:8 구조화된 희소성 배열을 또한 포함할 수 있다.
도 3은 N:M 구조화된 희소성 가중 값 세트로 형성되는 조밀 가중 값 세트의 예를 도시한다.
조밀 가중 값 W는 301에서 예시적인 행렬에 도시되고 여기서 R은 출력 채널의 수이고 C는 신경망의 선형 계층에 있는 채널의 수이다. 상대적 값은 밝고 어두운 행렬 요소(블록)로 표시되고 여기서 상대적으로 값이 낮은 요소는 밝은 회색으로 표시되고 상대적으로 값이 높은 요소는 어두운 회색으로 표시된다. 302에서, 가중 값 W는 가지치기 전에 4×4 그룹(303)으로 그룹화된다. 두 가중치 그룹에 대한 희소성 서브네트워크 마스크는 304에서 표시된다. 가지치기 후, 가지치기된 가중치는 305에서 N:M 구조화된 희소성 배열에 배치되고 여기에서는 M 연속 가중치의 각 그룹에 최대 N 가중치가 0이 아닌 값을 갖는다. 205에 표시된 은 C 채널의 M 가중치 중 N 요소만이 유지되므로, 가중치 텐서의 채널 크기가 C에서 으로 줄어든다는 것을 의미한다.
도 4는 희소 신경망 모델을 생성하는 데 사용될 수 있는 프로세스(400)의 흐름도이다.
401에서, 모델은 조밀 모델을 사용하여 훈련된다. 즉, 조밀 훈련 동안 조밀 가중치 텐서가 사용된다. 조밀 모델이 훈련된 후, 조밀 텐서는 텐서에서 더 많은 0을 생성하기 위해 가지치기될 수 있고 압축 마스크는 402에서 생성될 수 있다. 가지치기는 임계값 미만의 가중 값을 기준으로 한다. 다른 가지치기 기술도 가능하다. 압축 마스크는 가중치 텐서의 압축 해제 및 연산 단위의 메타데이터로 사용될 수 있다. 403에서, 모델은 가지치기된 가중치 텐서를 기반으로 재훈련된다. 전체 프로세스(400)는 희소 신경망 모델을 생성하기 위해 훈련, 가지치기 및 재훈련을 반복할 수 있다.
도 5는 본 명세서에 개시된 주제에 따른 극희소성 딥 러닝 에지 추론 가속기(500)의 예시적인 실시 예의 블록도이다.
추론 가속기(500)는 메모리(501), 희소성 관리 유닛(502), 스케줄러(503), 하나 이상의 하이브리드 희소성 코어(504) 및 하나 이상의 극희소성 코어(505)를 포함할 수 있다.
메모리(501)는 조밀 가중치 텐서 및/또는 압축된 가중치 텐서를 저장할 수 있다. 추가적으로, 메모리(501)는 조밀 활성화 텐서 및/또는 압축된 활성화 텐서를 저장할 수 있다. 메모리(501)는 또한 조밀 및/또는 압축된 가중치 행렬 및 조밀 및/또는 압축된 활성화 행렬을 저장할 수 있다. 일 실시 예에서, 메모리(501)는 압축/압축 해제 유닛(506)을 포함할 수 있다. 용어 "텐서" 또는 "텐서들"은 본 명세서에서 편의상 사용될 것이며, "행렬" 또는 "행렬들"이라는 용어는 또한 본 명세서에서 "텐서" 및 "텐서들"이라는 용어와 상호 교환적으로 사용될 수 있다는 것이 이해되어야 한다. 압축된 가중치 텐서와 관련된 메타데이터는 메모리(501)에 저장될 수 있다. 유사하게, 압축된 활성화 텐서와 관련된 메타데이터는 메모리(501)에 저장될 수 있다.
희소성 관리 유닛(502)은 메모리(501), 하이브리드 희소성 코어(504) 및 극희소성 코어(505) 사이의 활성화 및 가중치 텐서의 전달을 제어하도록 구성될 수 있다. 일 실시 예에서, 희소성 관리 유닛(502)은 희소 밀도 임계값에 기초하여 활성화 및 가중치가 전송되는 위치를 제어한다. 예를 들어, 활성화 텐서의 희소 밀도와 활성화 텐서에 해당하는 가중치 텐서의 희소 밀도가 모두 희소 밀도 임계값(예: 25% 희소성)보다 큰 경우, 활성화 텐서 및 가중치 텐서는 하이브리드 희소성 코어(504)로 전달된다. 다른 희소 밀도 임계값이 가능하다. 활성화 텐서의 희소 밀도와 해당 가중치 텐서의 희소 밀도 중 적어도 하나가 희소 밀도 임계값보다 작은 경우, 활성화 텐서와 가중치 텐서는 극희소성 코어로 전송된다.
스케줄러(503)는 하이브리드 희소성 코어(504) 및 극희소성 코어(505)의 가용성 및 처리되는 태스크의 유형에 기초하여 태스크 및 코어를 선택하도록 구성될 수 있다.
하이브리드 희소성 코어(504)는 활성화 텐서의 희소 밀도와 가중치 텐서의 희소 밀도가 둘 다 희소 밀도 임계값보다 큰 것에 기초하여 하이브리드 희소성 코어(504)로 전달된 활성화 텐서 및 대응하는 가중치 텐서에 대한 결과를 처리(즉, 연산)하도록 구성될 수 있다. 유사하게, 극희소성 코어(505)는 활성 텐서의 희소 밀도 또는 희소 밀도 임계값 이하인 가중치 텐서의 희소 밀도 중 적어도 하나에 기초하여 극희소성 코어(505)로 전달된 활성화 텐서 및 대응하는 가중치 텐서에 대한 결과를 구성(즉, 연산)할 수 있다.
도 6a는 본 명세서에 개시된 주제에 따른 압축/압축 해제 유닛(506)의 압축 유닛(600)의 예시적인 실시 예의 기능 블록도이다. 압축 유닛(600)은 조밀 텐서를 수신하도록 구성된 조밀 행렬 버퍼(601)를 포함한다. 조밀 텐서는 압축 텐서 버퍼(603)로 출력되는 압축 텐서를 생성하기 위해 텐서에서 0 값 요소를 제거하는 제로 확장기 유닛(602)에 입력된다. 제로 확장기 유닛(602)은 또한 압축된 텐서와 연관되고 메타데이터 버퍼(604)로 출력되는 메타데이터를 생성한다. 압축된 텐서 버퍼(603) 및 메타데이터 버퍼(604)의 내용은 동작 중에 메모리(501)(도 5)로 전송될 수 있다. 압축 유닛(600)을 구성하는 서로 다른 유닛들은 모듈로 구성될 수 있으며, 설계에 따라 조합될 수 있다.
도 6b는 본 명세서에 개시된 주제에 따른 압축/압축 해제 유닛(506)의 압축 해제 유닛(610)의 예시적인 실시 예의 기능 블록도이다.
압축 해제 유닛(610)은 압축된 텐서를 수신하도록 구성된 압축된 텐서 버퍼(611)를 포함한다. 압축된 텐서와 관련된 메타데이터는 메타데이터 버퍼(612)에 의해 수신된다. 압축된 텐서는 메타데이터 버퍼(612)의 메타데이터에 기초하여 제로 값 요소를 주입하는 제로 주입기 로직(613)에 입력된다. 제로 주입기 로직(613)은 조밀 텐서를 조밀 텐서 버퍼(614)로 출력한다. 조밀 텐서 버퍼(614)의 내용은 동작 중에 하이브리드 희소성 코어(504), 극희소성 코어(505) 또는 메모리(501)로 전송될 수 있다. 압축 해제 유닛(610)을 구성하는 서로 다른 유닛들은 모듈로 구성될 수 있으며, 설계에 따라 조합될 수 있다.
일 실시 예에서, 하이브리드 희소성 코어(504)와 극희소성 코어(505)는 모두 동일한 재구성 가능한 이중 희소성 코어 아키텍처(700)를 사용할 수 있다. 도 7a는 본 명세서에 개시된 주제에 따른 하이브리드 희소성 코어(504) 및/또는 극희소성 코어(505)일 수 있는 재구성 가능한 이중 희소성 코어 아키텍처(700)의 예시적인 실시 예를 도시한다. 이중 희소성 코어(700)는 가중치와 활성화 둘 다 또는 둘 중 하나에 대해 랜덤 희소성 배열을 처리하면서 가중치와 활성화 둘 다에 대해 1:4, 2:4, 2:8 및 4:8의 구조화된 희소성 배열을 처리하도록 재구성 가능할 수 있다. 재구성 가능한 이중 희소성 코어(700)의 추가 세부 사항은 미국 특허 출원 일련 번호(Attorney Docket 1535 849 및 1535 849)에서 찾을 수 있으며, 둘 다 본 명세서에 참조로 포함된다.
도 7a에 도시된 재구성 가능한 이중 희소성 코어(700)는 MULT 어레이에 구성된 네 개의 승산기를 포함한다.
MULT 어레이의 승산기는 X를 포함하는 블럭으로 표시된다. 이중 희소성 코어(700)는 AMUX 어레이로 구성된 4개의 활성화 멀티플렉서를 포함할 수 있다. AMUX 어레이의 멀티플렉서는 사다리꼴 모양으로 표시된다. 활성화 버퍼는 4개의 4-레지스터 버퍼로 구성될 수 있으며 ABUF 어레이로 배열된다. AMUX 어레이의 각 멀티플렉서는 7:1 멀티플렉서일 수 있다. AMUX 어레이의 2개의 멀티플렉서에 대한 입력은 나타낸 바와 같이 2개의 4-레지스터 버퍼에 연결될 수 있다. AMUX의 멀티플렉서와 ABUF의 레지스터 사이의 연결은 도 7a에 도시된 바와 같을 수 있다.
이중 희소성 코어(700)의 아키텍처는 ABUF의 레지스터에서 활성화 값의 선택적인 배치에 의해 1:4, 2:4, 2:8 및 4:8의 구조화된 가중치 희소성 배열에 사용될 수 있다. 도 7a을 참조하면, 각각의 활성 채널은 각 이중 희소성 코어(700) 구성의 최좌측에 표시된 바와 같이, 인덱싱될 수 있다. 채널 인덱싱은 이중 희소성 코어(700)가 4개의 구조화된 희소성 배열 중 어느 것을 기반으로 하여 구성되는지에 따라 변경한다.
이중 희소성 코어(700)가 2:8 구조 가중치 희소성을 위해 구성될 때, ABUF, AMUX 및 MULT 어레이 사이의 연결은 N:M=2:8 구성 위에 도시된다. 16개의 활성화 채널은 각각 해당 ABUF 어레이 레지스터에 대한 입력이다. AMUX 어레이 멀티플렉서는 예를 들어 가중치 제로 비트 마스크 또는 2:8 구조화된 가중치 희소성 값과 관련된 가중치 메타데이터에 기초하여 적절한 ABUF 레지스터를 선택하도록 컨트롤러(도 7a에는 미도시)에 의해 제어된다. 이중 희소성 코어(700)가 2:8 구조화된 가중치 희소성으로 구성될 때, 이중 희소성 코어(700)는 또한 (Tw,Cw,Kw) = (3,1,0)의 랜덤 희소성 모드에서 작동할 수 있고, 여기서 Tw는 시간에 대한 예측이고, Cw는 입력 채널의 색인(lookaside)이며, KW는 출력 채널의 색인이고 w 첨자는 가중치를 나타낸다.
이중 희소성 코어(700)가 1:4 구조화된 가중치 희소성을 위해 구성될 때, ABUF, AMUX 및 MULT 어레이 간의 연결은 N:M=1:4 구성 위에 도시된다. N:M=1:4 구성은 N:M=2:8 구성과 동일하다. N:M=1:4 구성의 경우, 16개의 활성화 채널이 각각 해당 ABUF 어레이 레지스터에 입력된다. AMUX 어레이 멀티플렉서는 예를 들어, 가중치 제로 비트 마스크 또는 1:4 구조화된 가중치 희소성 값과 관련된 가중치 메타데이터에 기초하여 적절한 ABUF 레지스터를 선택하기 위해 컨트롤러(미도시)에 의해 제어된다. 이중 희소성 코어(700)가 1:4 구조화된 가중치 희소성으로 구성될 때, 이중 희소성 코어(700)는 또한 (Tw,Cw,Kw) = (3,0,0)의 랜덤 희소성 모드에서 동작할 수 있다.
이중 희소성 코어(700)가 2:4 구조화된 가중치 희소성을 위해 구성될 때, ABUF, AMUX 및 MULT 어레이 간의 연결은 N:M=2:4 구성 위에 도시된다. N:M=2:4 구성의 경우, 표시된 대로 8개의 활성화 채널이 각각 해당 ABUF 어레이 레지스터에 입력된다. AMUX 어레이 멀티플렉서는 예를 들어, 가중치 제로 비트 마스크 또는 2:4 구조화된 가중치 희소성 값과 관련된 가중치 메타데이터에 기초하여 적절한 ABUF 레지스터를 선택하도록 컨트롤러(미도시)에 의해 제어된다. 이중 희소성 코어(700)가 2:4 구조화된 가중치 희소성으로 구성될 때, 이중 희소성 코어(700)는 또한 (Tw,Cw,Kw) = (1,1,0)의 랜덤 희소성 모드에서 동작할 수 있다.
이중 희소성 코어(700)가 4:8 구조화된 가중치 희소성을 위해 구성될 때, ABUF, AMUX 및 MULT 어레이 간의 연결은 N:M=4:8 구성 위에 도시된다. N:M=4:8 구성의 경우, 8개의 활성화 채널이 표시된 바와 같이 각각 해당 ABUF 어레이 레지스터에 입력된다. 보다 구체적으로, 두 개의 최상위 승산기는 채널 1-6에 액세스할 수 있다. 최상위 승산기는 채널 1-5에 액세스할 수 있고, 다음 승산기는 채널 2-6에 액세스할 수 있다. 추가적으로, 맨 아래에 있는 2개의 승산기는 채널 3-6에 액세스할 수 있으며, 여기서 상단에서 세 번째 승산기는 채널 3-7에 액세스할 수 있고 하단 승산기는 채널 4-8에 액세스할 수 있다. AMUX 어레이 멀티플렉서는 예를 들어, 가중치 제로 비트 마스크 또는 4:8 구조화된 가중치 희소성 값과 관련된 가중치 메타데이터에 기초하여 적절한 ABUF 레지스터를 선택하기 위해 컨트롤러(미도시)에 의해 제어된다. 이중 희소성 코어(700)가 4:8 구조화 가중치 희소성으로 구성될 때, 이중 희소성 코어(700)는 또한 (Tw,Cw,Kw) = (3,1,0)의 랜덤 희소성 모드에서 동작할 수 있다.
도 7b는 본 명세서에 개시된 주제에 따른 하이브리드 희소성 코어(504) 및/또는 극희소성 코어(505)에 사용될 수 있는 재구성 가능한 이중 희소성 코어(710)의 제2 예시적인 실시 예를 도시한다.
예시적인 이중 희소성 코어(710)는 2-사이클 활성화 예측을 포함하는 2:4 구조화된 가중치 희소성을 위해 구성된다. 이중 희소성 코어(700)와 유사하게, 재구성 가능한 이중 희소성 코어(710)는 2:4 구조화된 희소성 모드 외에 1:4, 4:8 및 2:8 구조화된 희소성 모드를 지원하는 데에도 사용될 수 있다.
이중 희소성 코어(710)는 4개의 승산기(각각 X를 포함하는 블록으로 표시됨)의 어레이를 갖는 곱셈 및 누산(MAC) 유닛을 포함할 수 있다. MAC 유닛의 누산기 부분은 가산기 트리(+를 포함하는 블록으로 표시됨) 및 누산기 ACC를 포함한다. 추가적으로, 이중 희소성 코어 아키텍처(710)는 MAC 유닛의 각각의 승수에 대해 3개의 가중치 레지스터 WREG의 깊이를 포함하는 가중치 버퍼 WBUF 어레이를 포함할 수 있다. 활성화 버퍼 ABUF는 MAC 유닛의 각 승산기에 대한 깊이 6 활성화 레지스터 AREG를 포함한다. 활성화 멀티플렉서(AMUX)는 MAC 유닛의 각 승산기마다 활성화 멀티플렉서(사다리꼴 모양으로 표시)를 포함할 수 있다. 명시적으로 표시되지는 않았지만, 각 활성화 멀티플렉서는 9의 팬 인(fan in)을 갖는다. 즉, 각 활성화 멀티플렉서는 9:1 멀티플렉서이다. 제어 유닛(컨트롤러(701))은 적절한 AREG를 선택하기 위해 AMUX의 멀티플렉서를 제어(ctrl)하기 위해 활성화 제로 비트 마스크(A-zero-bit 마스크) 및 가중치 메타데이터를 수신한다. 동작에 있어서 WREG의 가중 값은 승산기의 제1 입력으로 입력된다. 활성화 제로 비트 마스크 및 가중치 메타데이터는 각 가중 값에 해당하는 ABUF에서 적절한 AREG를 선택하도록 AMUX의 멀티플렉서를 제어하는 데 사용된다. 선택된 AREG의 활성화 값은 승산기에 대한 제1 입력에 대응하는 제2 입력으로서 승산기에 입력된다. 이중 희소성 코어(710)은 가중치 희소성에 대해서만 구성된 NPU 아키텍처에 비해 최대 3배의 속도 향상을 제공한다. 재구성 가능한 이중 희소성 코어(710)의 추가 세부 사항은 미국 특허 출원 일련 번호(Attorney Docket 1535 849 및 1535 849)에서 찾을 수 있으며, 둘 다 본 명세서에 참조로 포함된다.
이중 희소성 코어(710)는 또한 랜덤 가중치 희소성 연산을 위해 사용될 수 있다. 즉, 예시적인 이중 희소성 코어(710)는 또한 (Tw=1,Cw=1,Ta=2)의 랜덤 희소성 모드에 대해 구성된다. 랜덤 가중치 희소성의 경우, 이중 희소성 코어(710)의 효과적인 활성화 예측은 ABUF의 6 AREG 깊이에 기초하는 5 사이클이며, 가중치 희소성만을 위해 구성된 NPU 아키텍처에 비해 최대 6배(일반적으로 2배)의 속도를 갖는다. 랜덤 가중치 희소성의 가중치 전처리와 관련하여, 가중치 마스크가 드물게 업데이트되는 경우, 소프트웨어 기반 전처리가 사용될 수 있다. 가중치 마스크가 자주 업데이트되는 경우, 가중치 전처리 장치를 추가하여 하드웨어 기반 전처리가 더 나은 접근법일 수 있다.
이중 희소성 코어(710)의 예시적인 실시 예가 2-사이클 활성화 예측을 포함하는 2:4 구조화된 가중 희소성을 위해 구성되지만, 이중 희소성 코어(710)는 랜덤 희소성을 처리하기 위한 능력을 또한 제공하는 다른 구조화된 희소성 배열을 위해 구성될 수 있다.
도 8은 본 명세서에 개시된 주제에 따른 극희소성 딥 러닝 에지 추론 가속기를 포함할 수 있는 전자 장치(800)를 도시한다.
전자 장치(800) 및 전자 장치(800)의 다양한 시스템 구성요소는 하나 모듈로 형성될 수 있다. 전자 장치(800)는 버스(890)를 통해 서로 연결되는, 컨트롤러(또는 CPU)(810), 국한하는 것은 아니지만, 키패드, 키보드, 디스플레이, 터치 스크린 디스플레이, 2D 이미지 센서, 3D 이미지 센서와 같은 입출력 장치(820), 메모리(830), 인터페이스(840), GPU(850), 영상 처리 유닛(860), 신경 처리 유닛(870), TOF 처리 유닛(880)을 포함할 수 있다. 일 실시 예에서, 2차원 이미지 센서 및/또는 3차원 이미지 센서는 영상 처리 유닛(860)의 일부일 수 있다. 다른 실시 예에서, 3D 이미지 센서는 TOF 처리 유닛(880)의 일부일 수 있다. 컨트롤러(810)는 예를 들어, 적어도 하나의 마이크로프로세서, 적어도 하나의 디지털 신호 프로세서, 적어도 하나의 마이크로컨트롤러 등을 포함할 수 있다. 메모리(830)는 컨트롤러(810)가 사용할 명령 코드 및/또는 사용자 데이터를 저장하도록 구성될 수 있다. 일 실시 예에서, 신경 처리 유닛(870)은 본 명세서에 개시된 주제에 따른 극희소성 딥 러닝 에지 추론 가속기(500)로 구성될 수 있다.
인터페이스(840)는 예를 들어, RF 신호를 사용하여 무선 통신 네트워크와 데이터를 송수신하도록 구성된 무선 인터페이스를 포함하도록 구성될 수 있다. 무선 인터페이스(840)는, 예를 들면, 안테나를 포함할 수 있다. 전자 시스템(800)은 또한 국한하는 것은 아니지만, 코드 분할 다중 접속(CDMA), 모바일 통신을 위한 글로벌 시스템(GSM), 북미 디지털 커뮤니케이션(NADC), 확장형 시간 분할 다중 액세스(E-TDMA), 광대역 CDMA(WCDMA), CDMA2000, Wi Fi, 시립 Wi Fi(Muni Wi Fi), 블루투스, 디지털 강화 코드리스 텔레커뮤니케이션(DECT), 무선 범용 직렬 버스(무선 USB), 끊김 없는 핸드오프 직교 주파수 분할 다중화(Flash OFDM), IEEE 802.20, 일반 패킷 무선 서비스(GPRS), iBurst, 무선 광대역(WiBro), WiMAX, WiMAX-Advanced, 유니버설 이동 통신 서비스 시분할 이중화(UMTS TDD), 고속 패킷 액세스(HSPA), 에볼루션 데이터 최적화(EVDO), 장기 에볼루션 고급(LTE-Advanced), 다채널 다지점 분배 서비스(MMDS), 5세대 무선(5G), 6세대 무선(6G) 등과 같은, 통신 시스템의 통신 인터페이스 프로토콜에 사용될 수 있다.
본 명세서에 기술된 주제 및 동작의 실시 예는 본 명세서에서 개시된 구조 및 이들의 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 설명하는 주제의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가적으로, 프로그램 명령어는 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있으며, 이는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하도록 생성된다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들의 조합일 수 있거나 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 별도의 물리적 구성 요소 또는 매체(예를 들어, 여러 CD, 디스크 또는 기타 저장 장치)이거나 이에 포함될 수 있다. 또한, 본 명세서에서 설명하는 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.
이 명세서는 많은 특정 구현 세부사항을 포함할 수 있지만, 구현 세부 사항은 청구된 주제의 범위에 대한 제한으로 해석되어서는 안 되며, 오히려 특정 실시 예에 특정한 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예의 맥락에서 본 명세서에 설명된 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 역으로, 단일 실시 예의 맥락에서 설명된 다양한 특징이 또한 다수의 실시 예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더구나, 기능이 특정 조합으로 작용하는 것으로 설명되고 초기에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 이 조합에서 배제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 특정 순서로 도면에 도시되어 있지만, 이것은 이러한 동작이 바람직한 결과를 달성하기 위해서 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 예시된 모든 동작이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시 예에서 다양한 시스템 구성요소의 분리는 모든 실시 예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품으로 패키지화될 수 있음을 이해해야 한다.
따라서, 본 주제의 특정 실시 예가 본 명세서에 기술되었다. 다른 실시 예는 다음 청구항의 범위 내에 있다. 경우에 따라, 청구범위에 명시된 조치가 다른 순서로 수행되어도 원하는 결과를 얻을 수 있다. 추가적으로, 첨부된 도면에 도시된 프로세스는 원하는 결과를 얻기 위해서, 표시된 특정 순서 또는 순차적인 순서를 반드시 요구하지 않는다. 특정 구현에서, 멀티태스킹 및 병렬 처리가 바람직할 수 있다.
당업자가 인식하는 바와 같이, 본 명세서에서 설명된 혁신적인 개념은 광범위한 애플리케이션에 걸쳐 수정 및 변경될 수 있다. 따라서, 청구된 주제의 범위는 상술된 특정한 예시적인 교시에 제한되어서는 안되고, 대신 다음 청구범위에 의해 정의되어야 한다.

Claims (10)

  1. 신경망 추론 가속기로서,
    적어도 하나의 활성화 텐서 및 적어도 하나의 가중치 텐서를 저장하도록 구성된 메모리;
    상기 활성화 텐서의 활성화 희소 밀도 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 상기 가중치 희소 밀도가 모두 미리 결정된 희소 밀도보다 큰 것에 기초하여 상기 메모리로부터 상기 활성화 텐서 및 상기 가중치 텐서를 수신하도록 구성된 제1 신경 처리 유닛;
    상기 활성화 텐서의 상기 활성화 희소 밀도 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 상기 가중치 희소 밀도 중 적어도 하나가 상기 미리 결정된 희소 밀도보다 작거나 같은 것에 기초하여 상기 메모리로부터 상기 활성화 텐서 및 상기 가중치 텐서를 수신하도록 구성된 제2 신경 처리 유닛; 및
    상기 미리 결정된 희소 밀도에 대한 상기 활성화 텐서의 상기 활성화 희소 밀도 및 상기 가중치 텐서의 상기 가중치 희소 밀도에 기초하여 상기 메모리로부터 상기 제1 신경 처리 유닛 또는 상기 제2 신경 처리 유닛으로의 상기 활성화 텐서 및 상기 활성화 텐서에 대응하는 상기 가중치 텐서의 전달을 제어하도록 구성된 희소성 관리 유닛을 포함하는, 가속기.
  2. 제1항에 있어서,
    상기 제1 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제1 결과를 연산하도록 구성되고,
    상기 제2 신경 처리 유닛은 상기 활성화 텐서 및 상기 가중치 텐서에 대한 제2 결과를 연산하도록 구성되는, 가속기.
  3. 제2항에 있어서,
    상기 제1 신경 처리 유닛에 의해 연산된 상기 제1 결과를 수신하여 압축하고, 상기 제2 신경 처리 유닛에 의해 연산된 상기 제2 결과를 수신하여 압축하도록 구성되는 압축 유닛을 더 포함하고,
    상기 메모리는 상기 압축 유닛에 의해 압축된 상기 제1 결과를 저장하고 상기 압축 유닛에 의해 압축된 상기 제2 결과를 저장하도록 더욱 구성되는, 가속기.
  4. 제3항에 있어서,
    상기 압축 유닛은 상기 제1 결과와 연관된 제1 메타데이터를 생성하고 상기 제2 결과와 연관된 제2 메타데이터를 생성하도록 더욱 구성되고,
    상기 메모리는 상기 제1 메타데이터 및 상기 제2 메타데이터를 저장하도록 더욱 구성되는, 가속기.
  5. 제1항에 있어서,
    상기 활성화 텐서 및 상기 가중치 텐서 중 적어도 하나가 압축되고,
    상기 신경망 추론 가속기는 상기 활성화 텐서가 압축되는 것에 기초하여 상기 활성화 텐서를 상기 활성화 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축되는 것에 기초하여 상기 가중치 희소 밀도로 상기 가중치 텐서를 압축 해제하도록 구성된 압축 해제 유닛을 더욱 포함하는, 가속기.
  6. 제5항에 있어서,
    상기 압축 해제 유닛은 상기 활성화 텐서가 압축되는 것에 기초하여 상기 활성화 텐서와 연관된 제1 메타데이터를 사용하여 상기 활성화 텐서를 상기 활성화 희소 밀도로 압축 해제하고, 상기 가중치 텐서가 압축되는 것에 기초하여 상기 가중치 텐서와 연관된 제2 메타데이터를 사용하여 상기 가중치 텐서를 상기 가중치 희소 밀도로 압축 해제하도록 더욱 구성되는, 가속기.
  7. 제5항에 있어서,
    상기 활성화 희소 밀도는 구조화된 희소 배열 또는 랜덤 희소 배열을 기반으로 하는, 가속기.
  8. 제7항에 있어서,
    상기 활성화 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 하는, 가속기.
  9. 제7항에 있어서,
    상기 가중치 희소 밀도는 구조화된 희소성 배열 또는 랜덤 희소성 배열을 기반으로 하는, 가속기.
  10. 제9항에 있어서,
    상기 가중치 희소 밀도는 1:4 구조화된 희소성 배열 또는 2:8 구조화된 희소성 배열을 기반으로 하는, 가속기.
KR1020230097358A 2022-09-21 2023-07-26 극희소성 딥 러닝 에지 추론 가속기 KR20240040614A (ko)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US202263408827P 2022-09-21 2022-09-21
US202263408829P 2022-09-21 2022-09-21
US202263408828P 2022-09-21 2022-09-21
US63/408,827 2022-09-21
US63/408,829 2022-09-21
US63/408,828 2022-09-21
US202263410216P 2022-09-26 2022-09-26
US63/410,216 2022-09-26
US17/989,675 US20240095519A1 (en) 2022-09-21 2022-11-17 Extreme sparse deep learning edge inference accelerator
US17/989,675 2022-11-17

Publications (1)

Publication Number Publication Date
KR20240040614A true KR20240040614A (ko) 2024-03-28

Family

ID=90243959

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020230097357A KR20240040613A (ko) 2022-09-21 2023-07-26 딥 러닝을 위한 구조화된 희소성 메모리 계층 구조
KR1020230097358A KR20240040614A (ko) 2022-09-21 2023-07-26 극희소성 딥 러닝 에지 추론 가속기

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020230097357A KR20240040613A (ko) 2022-09-21 2023-07-26 딥 러닝을 위한 구조화된 희소성 메모리 계층 구조

Country Status (2)

Country Link
US (2) US20240095518A1 (ko)
KR (2) KR20240040613A (ko)

Also Published As

Publication number Publication date
US20240095518A1 (en) 2024-03-21
KR20240040613A (ko) 2024-03-28
US20240095519A1 (en) 2024-03-21

Similar Documents

Publication Publication Date Title
US20170344876A1 (en) Efficient sparse parallel winograd-based convolution scheme
CN109543815B (zh) 神经网络的加速方法及装置
Xuan et al. An FPGA-based energy-efficient reconfigurable depthwise separable convolution accelerator for image recognition
KR20240040614A (ko) 극희소성 딥 러닝 에지 추론 가속기
Qureshi et al. NeuroMAX: a high throughput, multi-threaded, log-based accelerator for convolutional neural networks
KR20220168975A (ko) 신경망 가속기
Filippas et al. Streaming dilated convolution engine
KR20230049047A (ko) 마스크된 어텐션으로 이미지 변환기에 공간적 국소성을 통합하는 방법
Liu et al. Search-free inference acceleration for sparse convolutional neural networks
KR20240040602A (ko) 신경 처리 장치
Huang et al. Energy-efficient accelerator design with tile-based row-independent compressed memory for sparse compressed convolutional neural networks
KR20240040608A (ko) 세분화된 구조의 희소성을 갖는 가중치 희소성 신경 처리 장치
Zhang et al. Thread: Towards fine-grained precision reconfiguration in variable-precision neural network accelerator
EP4375878A1 (en) Dnns acceleration with block-wise n:m structured weight sparsity
KR20200122256A (ko) 뉴럴 프로세서
CN117744724A (zh) 神经处理单元
CN117744723A (zh) 神经处理单元
KR20230157885A (ko) 적응형 토큰 가지치기에 의한 비전 변환기의 효율성 향상
US20240162917A1 (en) Runtime reconfigurable compression format conversion with bit-plane granularity
US20240162916A1 (en) Runtime reconfigurable compression format conversion
EP4160487A1 (en) Neural network accelerator with a configurable pipeline
US20220156569A1 (en) Weight-sparse neural processing unit with multi-dimensional routing of non-zero values
CN118052256A (zh) 利用分块n:m结构化权重稀疏性的dnn加速
US20230153586A1 (en) Accelerate neural networks with compression at different levels
KR20210117905A (ko) 가중치 스테이션 내적 기반 CNN 가속기에 3x3, 1x3 및 3x1 필터가 있는 CNN을 위한 위노그라드의 낮은 오버헤드 구현