KR20220101418A - 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법 - Google Patents

저전력 고성능 인공 신경망 학습 가속기 및 가속 방법 Download PDF

Info

Publication number
KR20220101418A
KR20220101418A KR1020210003403A KR20210003403A KR20220101418A KR 20220101418 A KR20220101418 A KR 20220101418A KR 1020210003403 A KR1020210003403 A KR 1020210003403A KR 20210003403 A KR20210003403 A KR 20210003403A KR 20220101418 A KR20220101418 A KR 20220101418A
Authority
KR
South Korea
Prior art keywords
pruning
unit
neural network
weight
sparsity
Prior art date
Application number
KR1020210003403A
Other languages
English (en)
Other versions
KR102541461B1 (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 KR1020210003403A priority Critical patent/KR102541461B1/ko
Priority to US17/317,900 priority patent/US20220222533A1/en
Publication of KR20220101418A publication Critical patent/KR20220101418A/ko
Application granted granted Critical
Publication of KR102541461B1 publication Critical patent/KR102541461B1/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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • 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/08Learning methods
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

Abstract

본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법은 (a) 저전력 고성능 인공 신경망 학습기를 구성하는 클러스터의 컨볼루션 코어에 구비된 가지치기 유닛이 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행하는 단계; (b) 상기 컨볼루션 코어가 입력, 출력, 가중치 희소성에 따라 복합 연산 생략방식을 선택하여 수행하는 단계; 및 (c) 상기 컨볼루션 코어가 메모리에서 불러온 가중치를 심층 신경망 연산 코어와 가중치 가지치기 코어가 공유하도록 하여 학습 과정 중에 가중치 메모리 접근을 제한하는 단계;를 포함하여 가중치 희소성을 생성하는 동시에 학습 단계별 활용할 희소성이 높은 데이터를 선택하여 불필요한 연산을 생략함으로써 합성곱 연산을 가속할 수 있는 효과가 있다.

Description

저전력 고성능 인공 신경망 학습 가속기 및 가속 방법{LOW POWER HIGH PERFORMANCE DEEP-NEURAL-NETWORK LEARNING ACCELERATOR AND ACCELERATION METHOD}
본 발명은 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법에 관한 것으로써, 더욱 상세하게는 신경망 계산 유닛에서의 연산들을 불필요한 연산으로 변환시키고 동시에 학습과정의 모든 과정에서 이렇게 얻어진 불필요한 연산을 아예 생략하여 처리속도를 향상시키며 처리에 소모되는 에너지를 줄여 주어 에너지 효율을 증가시키고, 또한, 심층 신경망의 연산에 사용되는 가중치에 대해 가지치기를 적용하여 불필요한 연산으로 변환시키며, 학습의 각 단계별로 다른 형태로 나타나는 불필요한 연산을 모두 생략하여, 연산 처리 속도를 향상시키고 에너지 효율을 올릴 수 있는 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법에 관한 것이다.
심층 신경망은 단순 물체 인식, 동작 인식과 같은 응용 분야에서 다른 알고리즘에 비해 압도적인 성능을 보여준다.
하지만 심층 신경망은 추론 및 학습을 위해 매우 많은 연산과 데이터 양을 요구하므로, 모바일 환경의 기기 상에서 에너지 효율적인 동작이 어렵다.
심층 신경망 연산은 두 개의 피 연산자간의 합성곱을 반복적으로 수행하게 되며, 학습에서는 추론, 오차 역전파 및 가중치 갱신의 세 가지 단계로 구성되며 매 단계마다 서로 다른 두 개의 피연산자를 활용한다.
심층 신경망의 학습 과정에서의 합성곱 과정을 에너지 효율적으로 가속하기 위해 입력 데이터의 희소성을 활용하는 방법이 선행기술로서 제안되었다.
하지만, 이 선행기술은 심층 신경망의 학습과정의 세 단계 중 첫 번째 단계인 추론과정에 사용되어 에너지 효율을 높이면서 합성곱 연산에 대한 가속을 할 수 있지만, 나머지 두 가지 단계인 오차 역전파 단계와 가중치 갱신 단계에서는 활용이 불가능하거나 부분적으로 사용만이 가능하다.
따라서 입력 데이터 희소성만을 활용해 심층 신경망을 가속할 수 있는 연산기는 심층 신경망에 대한 학습을 에너지 효율적으로 처리하는데 한계가 있다.
또한, 심층 신경망의 추론 과정에서의 합성곱 과정을 에너지 효율적으로 가속하기 위해 가중치 데이터의 희소성을 활용하는 방법이 선행기술로서 제안되었다.
학습 과정 중에 높은 정확도를 유지하면서 가중치 희소성을 생성하기 위해서는 학습과 가중치 가지치기의 반복적인 처리가 필요하며, 이를 지원할 수 있는 가중치 가지치기 유닛이 별도로 필요하다.
하지만, 선행 기술들은 가중치 가지치기를 위한 유닛을 별도로 집적하지 않았기 때문에, 학습 과정 중의 가중치 희소성 생성이 불가능하므로, 심층 신경망 학습에는 적합하지 않다는 문제점이 존재한다.
대한민국 공개특허공보 공개번호 제10-2019-0053262 대한민국 공개특허공보 공개번호 제10-2018-0084289
본 발명은 상술한 문제점을 해결하기 위해 학습과정에서 심층 신경망 계산 유닛에서 가중치 데이터의 희소성을 생성시켜 희소성을 최대한으로 사용할 수 있도록 하며, 계산 유닛의 효율을 떨어뜨리지 않도록 최적화된 가중치 가지치기 알고리즘과 가중치 가지치기 유닛 구조를 포함하는 저전력 고성능 인공 신경망 학습 가속기를 제공하는데 목적이 있다.
또한, 본 발명은 3가지 단계로 구성된 학습 과정의 각 단계별로 달라지는 각 데이터들의 희소성 패턴에 맞춰, 각 단계별로 서로 다른 데이터들을 선택적으로 골라 해당 데이터가 가진 희소성을 최대한 활용하도록 하여 연산을 에너지 효율적으로 가속시키는 신경망 계산 유닛 구조를 포함하는 저전력 고성능 인공 신경망 학습 가속기를 제공하는데 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법은 (a) 저전력 고성능 인공 신경망 학습기를 구성하는 클러스터의 컨볼루션 코어에 구비된 가지치기 유닛이 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행하는 단계; (b) 상기 컨볼루션 코어가 입력, 출력, 가중치 희소성에 따라 복합 연산 생략방식을 선택하여 수행하는 단계; 및 (c) 상기 컨볼루션 코어가 메모리에서 불러온 가중치를 심층 신경망 연산 코어와 가중치 가지치기 코어가 공유하도록 하여 학습 과정 중에 가중치 메모리 접근을 제한하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법 (a)단계에서 상기 가지치기 유닛은 상기 큰 단위 가지치기와 작은 단위 가지치기를 미리 학습된 모델에 한 번 적용하는 방식이 아닌, 학습이 필요한 모델을 학습하는 과정 중에 주기적으로 적용하여, 동일한 정확도를 가지면서도 생성되는 희소성을 최대화시키는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법에서 상기 가지치기 유닛은 가지치기를 수행하기 전까지 학습 과정에서 달성했던 최대 정확도를 기록해두고, 가지치기를 수행한 후 다시 학습을 시켜 이전에 달성했던 최대 정확도보다 높은 정확도를 달성했을 시에 다시 다음 가지치기를 수행하는 방식으로 큰 단위 가지치기와 작은 단위 가지치기의 주기를 결정하는 것을 특징으로 한다.
또한, 또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법에서 상기 가지치기 유닛은 상기 큰 단위 가지치기와 작은 단위 가지치기 방식으로 발생하는 가중치 희소성이 높은 입력 채널(channel)에 대해서는 추가적으로 생성되는 희소성의 비율이 적어지도록 각 주기에서 가지치기를 위해 정해진 임계값을 조절하며, 희소성이 낮은 입력 채널(channel)에 대해서는 추가적으로 생성되는 희소성의 비율이 많아지도록 임계값을 조절하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법에서 상기 가지치기 유닛은 큰 단위 유사도 비교, 큰 단위 크기 비교, 또는 작은 단위 크기 비교 방식의 가지치기를 수행하며, 임계값을 해당 가지치기 주기마다 고정된 특정 값만큼 변화시키면서 가지치기 후 학습으로 더 이상 정확도 복구가 불가능할 때 까지 가지치기를 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법의 (b)단계에서 컨볼루션코어는 상기 입력, 출력, 및 가중치 중 두 가지 데이터에 대한 희소성 패턴을 입력받아 '0'을 건너뛰는 합성곱 연산을 수행하는 것을 특징으로 한다.
또한, 상술한 목적을 달성하기 위한 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속 방법에서 상기 컨볼루션코어는 가중치의 희소성을 활용해 '0'을 건너뛰는 합성곱 연산 수행시, 큰 단위 희소성과 작은 단위 희소성을 순차적, 계층적으로 활용해, 큰 단위로 인해 존재하는 연속된 '0'들을 사용하는 연산들은 한 번에 생략하고 작은 단위로 인해 존재하는 랜덤한 '0'들로 인한 연산은 한 번에 한 개씩 생략하여 가중치데이터들에 존재하는 0을 뛰어넘는 것을 특징으로 한다.
본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기는 가중치 희소성을 생성하는 동시에 학습 단계별 활용할 희소성이 높은 데이터를 선택하여 불필요한 연산을 생략함으로써 합성곱 연산을 가속할 수 있는 효과가 있다.
본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기는 알렉스넷(AlexNet)을 활용하여 이미지넷(ImageNet)을 학습시키는 경우, 제안하는 가중치 가지치기 방식에 의해 80%에 육박하는 가중치 희소성을 생성하며, 이와 더불어 60~70%에 해당하는 입출력 희소성을 학습과정의 각 단계에 활용해, 87% 정도의 연산량 감소를 5% 내의 정확도 감소 내에서 달성할 수 있는 효과가 있다.
도 1은 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기 블록도이다.
도 2는 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기에 의한 가속 방법의 흐름도 이다.
도 3은 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기에서 확률적 큰 단위-작은 단위 가지치기를 설명하기 위한 도면이다.
도 4는 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기에서 확률적 큰 단위-작은 단위 가지치기가 적용된 가중치의 희소성을 활용한 0을 계층적으로 건너뛰는 연산 설명하기 위한 도면이다.
도 5는 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기에서 입력, 출력, 가중치 중 희소성이 높은 두 가지 데이터를 선택하여, 두 가지 데이터 내에 존재하는 0을 건너뛰는 연산을 지원하기 위한 연산기의 예시적인 아키텍처를 도시한 도면이다.
도 6은 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기에서 심층 신경망 연산 코어의 예시적인 아키텍처를 도시한 도면이다.
본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정하여 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가 장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 첨부한 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기의 전체 구성도이다.
도 1에 도시된 바와 같이 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기(1)는 4개의 클러스터(10)와 각 클러스터를 구성하는 4개의 컨볼루션 코어(100)로 구성된다.
특히, 상기 컨볼루션 코어(100)는 가지치기 유닛(110), 복수의 PE 어레이(120)를 포함한다.
상술한 구성을 갖는 본 발명에 따른 저전력 고성능 인공 신경망 학습 가속기 에 의한 가속 방법에 대해 도 2을 참조하여 설명한다.
먼저, 상기 저전력 고성능 인공 신경망 학습기(1)를 구성하는 클러스터(10)의 컨볼루션 코어(100)에 구비된 가지치기 유닛(110)이 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행한다(S10).
상기 가지치기 유닛(110)은 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행한다.
보다 구체적으로 상기 가지치기 유닛(110)은 크기가 작은 값들을 0으로 만들어줌으로써 랜덤(random)한 희소성 패턴(pattern)을 만들어 내는 작은 단위 가지치기를 수행한다.
또한, 상기 가지치기 유닛(110)은 출력 채널(channel) 단위로 가중치들 간의 유사도나 크기를 계산하여, 유사하거나 크기가 작은 연속된 가중치들을 연속한 0으로 만드는 큰 단위 가지치기를 수행한다.
상기 작은 단위 가지치기는 높은 희소성을 만들어내는데 용이하며, 상기 큰 단위 가지치기는 하드웨어에서 단순한 처리가 가능하여 에너지 효율적이기 때문에 본 발명은 두 가지의 장점을 모두 합친 큰 단위와 작은 단위 가지치기를 수행하며, 구체적인 방식은 도 3에 도시되어 있다.
상기 가지치기 유닛(110)은 도 3a에 도시된 바와 같이 각 가중치의 값들을 특정 역치 값과 비교하는 작은 단위 가지치기를 먼저 수행하여 0을 많이 만들어 내어, 도 3a-1에 도시된 바와 같이 서로 다른 가중치들 간의 유사성을 높이며 이를 통해 가중치 값의 크기를 작게 만들어 준다.
이후, 상기 가지치기 유닛(110)은 도 3b에 도시된 바와 같이 유사도를 이용한 큰 단위 가지치기와 도 3c에 도시된 바와 같이 크기를 이용한 큰 단위 가지치기를 수행하여, 작은 단위 가지치기와 큰 단위 가지치기를 순차적으로 적용함으로써 큰 단위 가지치기만을 적용했을 때보다 0을 더욱 많이 생성한다.
한편, 상기 가지치기 유닛(110)은 종래 큰 단위 가지치기를 그대로 수행할 경우, 모든 출력 채널(channel)들 간의 유사도 및 크기 비교를 수행하여 가지치기가 될 출력 채널을 정하며, 하나의 출력 채널(channel)에 해당하는 가중치가 가진 모든 성분들을 모두 0으로 만들어 버린다.
하지만, 이 방식의 경우 정확도의 하락이 크기 때문에 많은 양의 연속된 0을 생성하기 어렵다.
따라서, 하나의 출력 채널(channel)에 대한 연산에 사용되는 가중치의 모든 입력 채널(channel)의 값을 한꺼번에 0으로 바꿔버리는 종래 큰 단위 가지치기와 다르게, 본 발명에서 상기 가지치기 유닛(110)은 한 가중치를 입력 채널(channel) 방향으로 나누어 각 가지치기 블락(block)으로 분할시키며, 다른 출력 채널(channel)들의 동일한 인덱스(index)를 가지는 블락(block)들끼리만 유사도 및 크기 비교를 하는 새로운 블락(block) 단위의 가지치기를 수행한다.
블락(block)의 크기가 작아짐에 따라 연속된 0의 길이가 줄어들며 희소성은 높아지는 트레이드-오프(trade-off)가 존재하며, 본 발명에서 희소성 비율을 높게 가져가면서 연속된 0의 길이를 길게 가져가기 위해 사용한 블락(block)의 크기는 각 입력 채널(channel)의 4분의 1에 해당하는 크기로 설정하였다.
상기 가지치기 유닛(110)은 기존의 큰 단위 가지치기보다 좀 더 세밀하게 유사도 비교 및 크기비교를 수행함으로써 오직 큰 단위 가지치기만을 사용할 때 보다 큰 단위 희소성을 1.26배 증가시켰으며, 결과적으로, 알렉스넷(AlexNet)을 이용해 이미지넷(ImageNet)에 대해 학습 시 5% 이내의 정확도 감소했을 때, 78.2% (작은 단위 희소성: 22.4%, 큰 단위 희소성: 55%)에 달하는 희소성을 얻었다.
가지치기 연산을 수행하기 위해서 큰 단위 가지치기를 위해 모든 출력 채널(channel)간의 유사도 비교가 필요하기 때문에, 연산량이 출력 채널(channel)개수의 제곱에 비례하게 되고, 이로 인해 매우 많은 연산량이 요구되어, 상기 가지치기 유닛(110)은 알렉스넷(AlexNet)을 사용해 이미지넷(ImageNet) 학습 시, 심층 신경망 연산(1teration, 1batch)의 5.4배에 해당하는 연산량이 요구된다.
따라서, 상기 가지치기 유닛(110)은 도 3d에 도시된 바와 같이 유사도 계산에 필요한 연산 오버헤드(overhead)를 감소시키기 위해 확률적 큰 단위-작은 단위 가지치기를 수행한다.
즉, 상기 가지치기 유닛(110)은 N개의 출력 채널(channel)들 간의 유사도를 한 번씩 모두 비교하는 기존방식과 다르게, 도 3d-1에 도시된 바와 같이 매 이터레이션(iteration)마다 랜덤(random)하게 T개씩 샘플링(sampling)하여 N/T개의 그룹(group)을 생성하는 프로세스를 진행한다.
그리고 상기 가지치기 유닛(110)은 각 그룹(group)안에서만 유사도를 비교하며, 도 3d-2에 도시된 바와 같이 다음 이터레이션(iteration)에서는 새롭게 랜덤(random) 샘플링(sampling)을 하여 새로운 그룹(group) 안에서 유사도를 비교하는 프로세스를 진행한다.
본 발명에서는 상술한 프로세서 진행을 통해 유사도 비교를 위한 샘플의 개수를 줄임으로써 연산량을 기존보다 99.7%만큼 줄였고, 확률적 그룹(group) 묶기와 가지치기를 매 이터레이션(iteration)마다 반복적으로 수행함으로써 모든 출력 채널(channel)들간의 유사도 비교를 하는 것과 같은 효과를 얻었다.
확률적 큰 단위-작은 단위 가지치기의 주기를 정하는 방식은 정확도를 사용하며, 구체적으로, 상기 가지치기 유닛(110)은 가지치기를 수행하기 전까지 학습 과정에서 달성했던 최대 정확도를 기록해두고, 가지치기를 수행한 후 다시 학습을 진행시켜 이전에 달성했던 최대 정확도보다 높은 정확도를 달성했을 시에 다시 다음 가지치기를 수행하도록 한다.
더불어 본 발명의 상기 가지치기 유닛(110)에 의한 확률적 큰 단위-작은 단위 가지치기는 세 가지 가지치기 방식(“큰 단위 유사도 비교”, “큰 단위 크기 비교”, “작은 단위 크기 비교”)을 위한 임계값을 가지치기 주기마다 고정된 특정 값만큼 변화시키며, 가지치기 후 학습으로 더 이상 정확도 복구가 불가능할 때 까지 가지치기를 수행한다.
또한, 가중치에 희소성을 생성하게 됨으로써 합성곱 연산기에서 여러 입력 채널(channel)에 대한 연산을 병렬적으로 처리할 경우에, 각 연산마다 처리해야할 연산량이 다르게 되며, 이로 인해 연산기의 사용량(utilization)이 하락되게 된다.
이를 막기 위해서, 가지치기를 수행하기 전에 각 입력 채널(channel)에 존재하는 희소성 비율을 구하고, 가지치기 단계에서 각 입력 채널(channel)의 가중치에 대해 사용하는 임계값을 희소성의 비율에 따라 조절하며, 구체적으로는
희소성이 높은 입력 채널(channel)에 대해서는 가지치기로 인해 추가적으로 생성되는 희소성의 비율이 적어지도록 각 주기에서 가지치기를 위해 정해진 임계값을 조절(큰 단위 유사성 비교를 위한 임계값 증가, 큰 단위 크기 비교를 위한 임계값 감소, 작은 단위 크기 비교를 위한 임계값 감소)하며, 희소성이 낮은 입력 채널(channel)에 대해서는 가지치기로 인해 추가적으로 생성되는 희소성의 비율이 많아지도록 임계값을 조절(큰 단위 유사성 비교를 위한 임계값 감소, 큰 단위 크기 비교를 위한 임계값 증가, 작은 단위 크기 비교를 위한 임계값 증가)한다.
결과적으로, 동일한 정확도에서 큰 단위 희소성이 오직 1.5%만큼 감소하였으며, 작은 단위 희소성은 오직 0.2%만큼 감소하였다.
또한, 종래에는 합성곱 연산 코어와 가지치기 코어간의 파이프라인(pipeline)이 가지치기에 매우 큰 연산량이 요구되어 가지치기 코어의 처리시간이 길어지는 스톨(stall)현상에 의해 전체 연산 처리속도가 감소했으나, 확률적 큰 단위-작은 단위 가지치기로 인해 가지치기 코어의 처리 시간이 감소되어 전체 파이프라인(pipeline)의 연산 처리속도(Through-put)가 1.9배 만큼 증가하였다.
다음으로 상기 컨볼루션 코어가 입력, 출력, 가중치 희소성에 따라 복합 연산 생략방식을 선택하여 수행한다(S20).
보다 구체적으로, 선택적 입력/출력/가중치 연산 생략은 심층 신경망 학습의 세 가지 단계별로 가지고 있는 입력/출력/가중치 희소성에 따라 더 효율이 좋은 복합 연산 생략(dual skipping)방식을 선택하여 수행하며, 0을 건너뛰는 합성곱 연산(zero skipping convolution)을 위하여 가중치의 비트맵(bitmap)은 큰 단위와 작은 단위 두 가지 계층으로 구성되어 있다.
두 가지 계층을 사용한 0 건너뛰기(생략하기) 합성곱 연산은 도 4에 도시되어 있으며, 도 4a에 도시된 바와 같이 큰 단위 0을 건너뛰는(생략하기) 연산을 먼저 수행한다.
도4a-1에 도시된 바와 같이 큰 단위 가중치 비트맵이 0인 경우, 여러 입력들과 곱해지는 가중치들이 특정 개수의 채널에 걸쳐서 연속하여 0이라는 것을 의미하며, 도4a-2에 도시된 바와 같이 해당 연산을 한 번에 모두 생략하는 프로세스를 수행한다.
큰 단위 가중치 비트맵(bitmap)이 1인 경우, 여러 입력들과 곱해지는 가중치들에 대한 합성곱 연산을 도 4a-3에 도시된 바와 같이 진행하는 프로세스, 즉 단계2에 해당하는 작은 단위 0을 건너뛰는 합성곱 연산을 도 4b에 도시된 바와 같이 수행한다.
도 4b에서 추론의 경우, 출력에 대한 희소성 정보를 연산이 끝나기 전까지는 알 수 없기 때문에 입력과 가중치에 존재하는 0에 대해 도 4b-1에 도시된 바와 같이 0을 뛰어넘는 합성곱 연산을 수행하며, 오차역전파시에는 오차(error)에 희소성이 존재하지 않으나 추론 시에 얻은 입력의 희소성 패턴(pattern)을 활용해 비트맵(bitmap)을 생성해 출력과 가중치에 존재하는 0을 뛰어넘는 합성곱 연산을 도 4b-2에 도시된 바와 같이 수행한다.
가중치 기울기 생성 시에는, 가중치 비트맵(bitmap)을 활용하여 출력(bitmap)을 생성해 출력과 추론시 사용한 입력에 존재하는 0을 뛰어넘는 합성곱 연산을 수행한다.
선택적 입력/출력/가중치 연산 생략을 위한 연산기(300)의 구체적인 구조는 도 5에 도시된 바와 같이, 0 건너뛰기 조작기(skipping controller), 부동 소수점 곱셈 및 누적기(floating-point MAC supporting FP8 and FP16), 레지스터파일(8x16b local register file)으로 구성되어 있다.
도 5의 0 건너뛰기 조작기에서는 각 모드(mode)에 따라 서로 다른 종류의 비트맵(bitmap)을 입력으로 받고, 합성곱연산 순서에 맞춰서 0이 아님을 알려주는 신호(nonzero flag)를 생성한다.
도 5-1에 도시된 바와 같이 입력과 가중치의 0을 건너뛰는 연산 동작에서는, 입력 비트맵과 가중치 비트맵을 입력으로 받아, 실제로 합성곱 연산을 수행할 때, 각 출력을 만들기 위해 필요한 입력의 비희소성 정보와 가중치의 비희소성 정보를 생성하며, 두 정보에 대해 AND logic을 취해, 특정 출력을 만들기 위해 합성곱 연산에 사용되는 입력과 출력 쌍이 모두 0이 아닌 경우를 구한다.
입력과 가중치 쌍이 모두 0이 아닌 경우를 구하여, 해당 입력이 저장되어 있는 주소와 가중치가 저장되어 있는 주소, 그리고 해당 입력과 가중치를 곱한 값과 더해져야 하는 부분합이 저장되어 있는 주소를 생성하며, 이를 대기열 버퍼에 저장한다.
도 5-2에 도시된 바와 같이 출력과 가중치의 0을 건너뛰는 연산 동작에서는, 출력 비트맵과 가중치 비트맵을 입력으로 받아, 실제로 합성곱 연산을 수행할 때, 0이 아닌 출력을 만들기 위해 요구되는 입력의 패턴과 가중치의 비희소성 정보를 생성하며, 두 정보에 대해 AND logic을 취해, 특정 출력을 만들기 위해 합성곱 연산에 입력과 출력 쌍이 모두 요구되는 경우를 구한다.
입력과 가중치 쌍이 모두 요구되는 경우를 구하여, 해당 입력이 저장되어 있는 주소와 가중치가 저장되어 있는 주소, 그리고 해당 입력과 가중치를 곱한 값과 더해져야 하는 부분합이 저장되어 있는 주소를 생성하며, 이를 대기열 버퍼에 저장한다.
대기열 버퍼가 생성되면, 주소 값들을 순서대로 뽑아서, 도 5-3에 도시된 버퍼안의 입력 버퍼와 가중치 버퍼에 주소대로 접근하여, 입력과 가중치를 뽑아온다.
도 5-4에 도시된 바와 같이 곱셈 및 누적을 수행하는 부동소수점 MAC 연산기에서는 버퍼에서 나온 입력과 가중치에 대한 곱셈을 수행하며, 도 5-5에 도시된 바와 같이 LRF(local register file)라고 불리우는 레지스터 파일에서 대기열 버퍼에서 나온 출력 주소를 이용해 접근하여 부분합을 불러와서 곱셈 결과와 누적 연산을 진행하며, 연산 결과는 다시 LRF에 저장이 된다.
이를 통해 학습에 존재하는 3가지 단계에서 모두 복합 연산 생략(dual skipping)을 활용할 수 있게 되었다.
마지막으로, 상기 컨볼루션 코어가 메모리에서 불러온 가중치를 심층 신경망 연산 코어와 가중치 가지치기 코어가 공유하도록 하여 학습 과정 중에 가중치 메모리 접근을 제한하는 단계를 수행한다(S30).
보다 구체적으로 도 6에 나와 있는 가지치기 연산 코어는 가지치기를 위해 발생하는 추가적인 가중치 메모리(memory)에 대한 접근을 막도록 설계되었으며, 본 발명에서는 추론 시에 가중치 메모리(memory)에서 합성곱 연산 코어로 전달되는 서로 다른 출력 채널(channel)들에 해당되는 각 가중치 데이터를 가중치 가지치기 연산 코어에 동시에 전달해준다.
도 6-1에 도시된 바와 같이 가중치 가지치기 연산 코어의 L1-거리 연산기에서는 받은 데이터를 이용하여, 각 출력 채널(channel)간의 유사도와 크기 값을 계산한다. 도 6-2에 도시된 바와 같이 계산된 유사도 비교 값을 거리 비교 연산기의 거리 저장 버퍼에 저장하고, 버퍼에 저장된 값들 불러와 클러스터링(clustering)을 진행하여 유사한 가중치들을 찾는다. 이와 더불어 가중치 기울기 생성 시에 가중치를 업데이트 해줄 때, 기준 값보다 작은지 판별하여 작은 단위 희소성을 생성함으로써 추가적인 메모리 접근을 줄였다. 이를 통해 심층 신경망 학습 시에 요구되는 가중치 메모리 접근 양이 33.3%만큼 감소하였다.
이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
1 : 저전력 고성능 인공 신경망 학습 가속기
10 : 클러스터
100 : 컨볼루션 코어
110 : 가지치기 유닛
120 : PE 어레이

Claims (8)

  1. 저전력 고성능 인공 신경망 학습 가속 방법에 있어서,
    (a) 저전력 고성능 인공 신경망 학습기를 구성하는 클러스터의 컨볼루션 코어에 구비된 가지치기 유닛이 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행하는 단계;
    (b) 상기 컨볼루션 코어가 입력, 출력, 가중치 희소성에 따라 복합 연산 생략방식을 선택하여 수행하는 단계; 및
    (c) 상기 컨볼루션 코어가 메모리에서 불러온 가중치를 심층 신경망 연산 코어와 가중치 가지치기 코어가 공유하도록 하여 학습 과정 중에 가중치 메모리 접근을 제한하는 단계;를 포함하는 것을 특징으로 하는 저전력 고성능 인공 신경망 학습 가속 방법.
  2. 제 1항에 있어서,
    상기 (a)단계에서
    상기 가지치기 유닛은
    상기 큰 단위 가지치기와 작은 단위 가지치기를 미리 학습된 모델에 한 번 적용하는 방식이 아닌, 학습이 필요한 모델을 학습하는 과정 중에 주기적으로 적용하여, 동일한 정확도를 가지면서도 생성되는 희소성을 최대화시키는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  3. 제 2항에 있어서,
    상기 가지치기 유닛은
    가지치기를 수행하기 전까지 학습 과정에서 달성했던 최대 정확도를 기록해두고, 가지치기를 수행한 후 다시 학습을 시켜 이전에 달성했던 최대 정확도보다 높은 정확도를 달성했을 시에 다시 다음 가지치기를 수행하는 방식으로 큰 단위 가지치기와 작은 단위 가지치기의 주기를 결정하는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  4. 제 3항에 있어서,
    상기 가지치기 유닛은
    상기 큰 단위 가지치기와 작은 단위 가지치기 방식으로 발생하는 가중치 희소성이 높은 입력 채널(channel)에 대해서는 추가적으로 생성되는 희소성의 비율이 적어지도록 각 주기에서 가지치기를 위해 정해진 임계값을 조절하며, 희소성이 낮은 입력 채널(channel)에 대해서는 추가적으로 생성되는 희소성의 비율이 많아지도록 임계값을 조절하는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  5. 제 4항에 있어서,
    상기 가지치기 유닛은
    큰 단위 유사도 비교, 큰 단위 크기 비교, 또는 작은 단위 크기 비교 방식의 가지치기를 수행하며, 임계값을 해당 가지치기 주기마다 고정된 특정 값만큼 변화시키면서 가지치기 후 학습으로 더 이상 정확도 복구가 불가능할 때 까지 가지치기를 수행하는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  6. 제 1항에 있어서,
    상기 (b)단계에서
    상기 컨볼루션코어는
    상기 입력, 출력, 및 가중치 중 두 가지 데이터에 대한 희소성 패턴을 입력받아 '0'을 건너뛰는 합성곱 연산을 수행하는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  7. 제 6항에 있어서,
    상기 컨볼루션코어는
    가중치의 희소성을 활용해 '0'을 건너뛰는 합성곱 연산 수행시, 큰 단위 희소성과 작은 단위 희소성을 순차적, 계층적으로 활용해, 큰 단위로 인해 존재하는 연속된 '0'들을 사용하는 연산들은 한 번에 생략하고 작은 단위로 인해 존재하는 랜덤한 '0'들로 인한 연산은 한 번에 한 개씩 생략하여 가중치데이터들에 존재하는 0을 뛰어넘는 것을 특징으로 하는 전력 고성능 인공 신경망 학습 가속 방법.
  8. 복수의 클러스터와 각 클러스터를 구성하는 복수의 컨볼루션 코어로 구성되고,
    저전력 고성능 인공 신경망 학습기를 구성하는 상기 클러스터의 컨볼루션 코어에 구비된 가지치기 유닛이 가중치에 희소성을 생성하기 위해 작은 단위 가지치기와 큰 단위 가지치기를 수행하고,
    상기 상기 컨볼루션 코어가 입력, 출력, 가중치 희소성에 따라 복합 연산 생략방식을 선택하여 수행하며,
    상기 컨볼루션 코어가 메모리에서 불러온 가중치를 심층 신경망 연산 코어와 가중치 가지치기 코어가 공유하도록 하여 학습 과정 중에 가중치 메모리 접근을 제한하되,
    상기 가지치기 유닛(110)은 크기가 작은 값들을 0으로 만들어줌으로써 랜덤(random)한 희소성 패턴(pattern)을 만들어 내는 작은 단위 가지치기를 수행하고, 출력 채널(channel) 단위로 가중치들 간의 유사도나 크기를 계산하여, 유사하거나 크기가 작은 연속된 가중치들을 연속한 0으로 만드는 큰 단위 가지치기를 수행하는 것을 특징으로 하는 저전력 고성능 인공 신경망 학습 가속기.
KR1020210003403A 2021-01-11 2021-01-11 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법 KR102541461B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210003403A KR102541461B1 (ko) 2021-01-11 2021-01-11 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법
US17/317,900 US20220222533A1 (en) 2021-01-11 2021-05-12 Low-power, high-performance artificial neural network training accelerator and acceleration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210003403A KR102541461B1 (ko) 2021-01-11 2021-01-11 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법

Publications (2)

Publication Number Publication Date
KR20220101418A true KR20220101418A (ko) 2022-07-19
KR102541461B1 KR102541461B1 (ko) 2023-06-12

Family

ID=82321965

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210003403A KR102541461B1 (ko) 2021-01-11 2021-01-11 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법

Country Status (2)

Country Link
US (1) US20220222533A1 (ko)
KR (1) KR102541461B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240024549A (ko) 2022-08-17 2024-02-26 한국전력공사 분산 처리를 이용한 경량화 인공지능 서비스 시스템 및 그 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11770735B2 (en) * 2019-01-17 2023-09-26 Nokia Technologies Oy Overhead reduction in channel state information feedback

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180084289A (ko) 2017-01-16 2018-07-25 한국전자통신연구원 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법
KR20190053262A (ko) 2016-10-27 2019-05-17 구글 엘엘씨 신경망 계산 유닛에서 입력 데이터의 희소성 이용
KR20190062225A (ko) * 2017-11-28 2019-06-05 주식회사 날비컴퍼니 컨볼루션 신경망 내 필터 프루닝 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190362235A1 (en) * 2018-05-23 2019-11-28 Xiaofan Xu Hybrid neural network pruning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190053262A (ko) 2016-10-27 2019-05-17 구글 엘엘씨 신경망 계산 유닛에서 입력 데이터의 희소성 이용
KR20180084289A (ko) 2017-01-16 2018-07-25 한국전자통신연구원 희소 파라미터를 사용하는 압축 신경망 시스템 및 그것의 설계 방법
KR20190062225A (ko) * 2017-11-28 2019-06-05 주식회사 날비컴퍼니 컨볼루션 신경망 내 필터 프루닝 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jiaqi Zhang 등. "Eager Pruning: Algorithm and Architecture Support for Fast Training of Deep Neural Networks". 2019 ACM/IEEE 46th Annual International Symposium on Computer Architecture (ISCA)* *
Jingyang Zhu 등. "SparseNN: An energy-efficient neural network accelerator exploiting input and output sparsity". 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE)* *
Wenzhu Yang 등. "Thinning of convolutional neural network with mixed pruning". IET Image Processing* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240024549A (ko) 2022-08-17 2024-02-26 한국전력공사 분산 처리를 이용한 경량화 인공지능 서비스 시스템 및 그 방법

Also Published As

Publication number Publication date
US20220222533A1 (en) 2022-07-14
KR102541461B1 (ko) 2023-06-12

Similar Documents

Publication Publication Date Title
WO2021004366A1 (zh) 基于结构化剪枝和低比特量化的神经网络加速器及方法
CN109726045B (zh) 用于块稀疏递归神经网络的系统和方法
US9477925B2 (en) Deep neural networks training for speech and pattern recognition
CN111062472A (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN112465110B (zh) 一种卷积神经网络计算优化的硬件加速装置
KR102541461B1 (ko) 저전력 고성능 인공 신경망 학습 가속기 및 가속 방법
US11645512B2 (en) Memory layouts and conversion to improve neural network inference performance
EP3975056A1 (en) Neural network weight distribution using a tree direct-memory access (dma) bus
EP3884434A1 (en) System and method for automated design space determination for deep neural networks
Dai et al. SparseTrain: Exploiting dataflow sparsity for efficient convolutional neural networks training
US11429849B2 (en) Deep compressed network
CN112257844B (zh) 一种基于混合精度配置的卷积神经网络加速器及其实现方法
Zhao et al. BitPruner: Network pruning for bit-serial accelerators
CN111368988B (zh) 一种利用稀疏性的深度学习训练硬件加速器
US11295236B2 (en) Machine learning in heterogeneous processing systems
CN114492759A (zh) 稀疏注意力神经网络
CN113516236A (zh) 基于zynq平台的vgg16网络并行加速处理方法
US20230162024A1 (en) Ternary content addressable memory (tcam)-based training method for graph neural network and memory device using the same
Jiang et al. A low-latency LSTM accelerator using balanced sparsity based on FPGA
US11900239B2 (en) Systems and methods for accelerating sparse neural network execution
CN110766157B (zh) 多样本神经网络前向传播向量化实现方法
WO2021036412A1 (zh) 数据处理方法、装置、计算机设备和存储介质
Chen et al. How to obtain and run light and efficient deep learning networks
EP4328804A1 (en) Systems and methods for matrix operation selector based on machine learning
Li et al. Lasso regression based channel pruning for efficient object detection model

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right