KR20210106222A - 딥러닝 강화학습 가속기 - Google Patents
딥러닝 강화학습 가속기 Download PDFInfo
- Publication number
- KR20210106222A KR20210106222A KR1020200021129A KR20200021129A KR20210106222A KR 20210106222 A KR20210106222 A KR 20210106222A KR 1020200021129 A KR1020200021129 A KR 1020200021129A KR 20200021129 A KR20200021129 A KR 20200021129A KR 20210106222 A KR20210106222 A KR 20210106222A
- Authority
- KR
- South Korea
- Prior art keywords
- drl
- dnn
- input
- array
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
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)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
본 발명은 딥러닝 강화학습(Deep Reinforcement Learning, DRL) 기술에 관한 것으로, DRL 가속 장치는, 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor) 회로 블럭 및 다수의 상태 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner) 회로 블럭을 포함한다.
Description
본 발명은 딥러닝 강화학습(Deep Reinforcement Learning, DRL) 기술에 관한 것으로, 특히 모바일 환경에서 사용 가능하도록 강화학습의 추론(inference)과 학습(training)의 서로 다른 데이터 재사용 방식을 동적으로 전환하고 학습용 데이터를 압축 저장하는 딥러닝 강화학습 가속기에 관한 것이다.
최근, DRL은 모션 제어 및 물체 추적을 위한 순차적 의사결정 문제에서 적용되는 가장 강력한 기법 중 하나로 각광받고 있다. 여기에서는 DRL을 수행하는 인공지능을 DRL 에이전트라 칭하며 일례로 지능형 로봇을 들 수 있다. DRL 에이전트는 사람의 감독 없이 스스로 외부 환경과 상호작용하여 수집한 입출력 정보, 즉 경험(Experience)으로부터 최적의 동작을 학습할 수 있으며, 복잡한 작업을 거의 사람과 같은 수준으로 수행할 수 있다. 학습 능력이 없는 추론 전용 AI와 달리 DRL 에이전트는 끊임없이 변화하는 환경 조건 속에서도 목표에 맞추어 동적으로 행동을 조정할 수 있다.
DRL의 경우 러너(Learner)가 DNN을 추론에도 사용하지만 동시에 업데이트(일종의 학습)도 해야 하므로 단순 추론 작업보다 더 큰 최대 메모리 대역폭이 필요하다. 또한 복수 개의 DNN을 필요로 하기 때문에 칩 상에 구현된 DNN 회로들을 공간적 및 시간적으로 별도의 DNN에 매핑(Mapping)하여야 하며 이 때문에 성능 저하가 발생할 수 있다.
이하의 선행기술문헌들은 추론을 수행하는 DNN 하드웨어에 데이터 병렬 처리를 도모하는 가속기를 도입한 기술적 수단을 제시하였다.
J. Lee, C. Kim, S. Kang, D. Shin, S. Kim, and H.-J. Yoo, "UNPU: A 50.6 TOPS/W unified deep neural network accelerator with 1b-to-16b fully-variable weight bit-precision," in 2018 IEEE International Solid-State Circuits Conference-(ISSCC), 2018: IEEE, pp. 218-220.
K. Ueyoshi et al., "QUEST: A 7.49 TOPS multi-purpose log-quantized DNN inference engine stacked on 96MB 3D SRAM using inductive-coupling technology in 40nm CMOS," in 2018 IEEE International Solid-State Circuits Conference-(ISSCC), 2018: IEEE, pp. 216-218.
본 발명이 해결하고자 하는 기술적 과제는, 종래의 DNN 하드웨어들이 추론만을 수행하였거나 데이터 병렬에는 고정된 데이터 경로만 존재하였기 때문에 학습의 경우에도 적응적인 데이터 재사용이 필요한 DRL 애플리케이션에 대해서는 메모리 액세스가 최적화되지 못하였다는 기술적 한계를 극복하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 DRL(Deep reinforcement Learning) 가속 장치는, 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor) 회로 블럭; 및 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner) 회로 블럭;을 포함한다.
일 실시예에 따른 DRL 가속 장치에서, 상기 액터 회로 블럭은, 승산기(Multiplier) 및 누산기(Accumulator)를 조합한 MAC이 2차원 PE 어레이(Processing Element Array)를 형성하되, 복수 개의 PE 어레이들을 내부에 집적하여 외부로부터 입력되는 현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력할 수 있다.
또한, 일 실시예에 따른 DRL 가속 장치에서, 상기 액터 회로 블럭은, 러너(Learner) 동작 시, 상기 복수 개의 PE 어레이들이 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)할 수 있다.
일 실시예에 따른 DRL 가속 장치에서, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 사용 가능한 PE들을 공간적으로 분할하고, 분할된 각각의 PE에 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 할당하여 병렬 처리할 수 있다. 또한, DNN 추론에 요구되는 연산량 또는 메모리 대역폭의 변화를 감지하고, 감지된 결과에 따라 상기 DNN들 각각에 할당된 PE의 수를 변화시키는 제어로직(Controller);을 더 포함할 수 있다.
일 실시예에 따른 DRL 가속 장치에서, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 시간적으로 분할하여 사용 가능한 PE들을 순차적으로 할당하여 처리할 수 있다. 또한, 일 실시예에 따른 DRL 가속 장치에서, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 시공간분할에 따라 사용 가능한 PE들을 복수 개의 DNN에 매핑하여 병렬 처리하되, 먼저 종료된 DNN에 할당되었던 PE를 대기중인 다른 DNN에 순차적으로 할당하여 처리할 수 있다. 나아가, 일 실시예에 따른 DRL 가속 장치에서, 하나의 DNN의 연산이 종료되면 현재의 가중치 값, 입력 값 및 출력 값을 외부 메모리에 저장하고, 대기중인 다른 DNN이 먼저 종료된 DNN에 할당되었던 PE를 사용할 수 있도록 상기 대기중인 다른 DNN에서 요구되는 가중치 값, 입력 값 및 출력 값을 내부 또는 외부 메모리로부터 독출하는 제어로직(Controller);을 더 포함할 수 있다.
일 실시예에 따른 DRL 가속 장치는, 상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor);를 더 포함할 수 있다.
일 실시예에 따른 DRL 가속 장치에서, 상기 PE 어레이는, 액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 실시예에 따른 DRL(Deep reinforcement Learning) 가속 장치는, DRL(Deep reinforcement Learning)을 수행하는 복수 개의 DRL 코어(Core); 및 상위 컨트롤러의 제어에 따라 상기 복수 개의 DRL 코어와 온-칩 네트워크를 통해 연결되는 상위 공유 메모리;를 포함하고, 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor)가 실행되는 동안, 상기 상위 공유 메모리는 DNN의 가중치(Weight) 값들을 상기 DRL 코어로 로드하며, {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner)가 실행되는 동안, 상기 복수 개의 DRL 코어에서 공유되는 경험(Experience) 데이터가 상기 상위 공유 메모리에 저장된다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 복수 개의 DRL 코어는, DRL 코어를 제어하는 코어 컨트롤러; 상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor); 및 현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력하는 PE 어레이(Processing Element Array);를 각각 포함할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 복수 개의 DRL 코어는, 상기 압축기와 연결되어 가중치(Weight, W) 및 입력 특징(Input Feature, IF)를 전달받는 브로드캐스트 메모리(BMEM) 및 유니캐스트 메모리(UMEM);를 더 포함하고, 상기 브로드캐스트 메모리 및 상기 유니캐스트 메모리는 각각 B-버퍼(Buffer) 및 U-버퍼를 통해 상기 PE 어레이에 입력 데이터를 제공할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 코어 컨트롤러는, DNN 네트워크 구조에 따라 자동으로 상기 가중치 및 상기 입력 특징을 상기 브로드캐스트 메모리 또는 상기 유니캐스트 메모리로 페치(Fetch)하고, 액터 또는 러너 동작시 각각 가중치 및 입력 특징의 데이터 재사용을 변화시키도록 상기 PE 어레이의 구성을 설정할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 복수 개의 DRL 코어는, 비선형 함수를 처리하는 활성화 유닛; 및 가중치 업데이트 및 손실 계산을 위해 로그 함수, 덧셈 및 곱셈을 수행하는 1-D SIMD 유닛;을 더 포함할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 PE 어레이가 DNN 연산을 처리하는 동안, 상기 압축기는 출력 버퍼를 스캔하고, 상기 출력 버퍼가 가득 찬 경우 상기 압축기가 코드 워드(code word), 지수부(Exponent) 및 가수부(Mantissa)를 순차적으로 인코딩하며, 입력 특징이 상기 DRL 코어로 전송되면, 상기 압축기가 상기 코드 워드를 스캔하고 순차적으로 입력된 입력 가수부와 지수부를 재결합하여 상기 입력 특징을 스트림-아웃(stream-out)할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 PE 어레이는, 러너(Learner) 동작 시, 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)할 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 PE 어레이는, MAC이 2차원 배열로 구성되고, 각각의 행은 브로드캐스트 데이터를 수신하는 행 버퍼를 공유하여 입력값을 MAC을 통해 승산하되, 새로운 데이터가 매 사이클마다 브로드캐스트되어 병렬 매트릭스 연산을 수행하며, U-버퍼로부터 제공되는 유니캐스트 데이터가 모두 재사용되었다면 새로운 유니캐스트 데이터가 상기 U-버퍼를 통해 입력될 수 있다.
다른 실시예에 따른 DRL 가속 장치에서, 상기 PE 어레이는, 액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성할 수 있다. 또한, 상기 PE 어레이는, 출력 채널(Output Cahnnel, Co) 수를 나타내는 가중치 행렬(W Matrix)의 행 길이가 일괄 처리 횟수(Batch Size, BA)를 나타내는 입력 특징 행렬(IF Matrix)의 열 길이보다 상대적으로 큰 경우 W 브로드캐스트(WBC)를 선택하고, 가중치 행렬의 행 길이가 입력 특징 행렬의 열 길이보다 상대적으로 작은 경우 IF 브로드캐스트(IFBC)를 선택할 수 있다.
본 발명의 실시예들은, 학습 및 추론 모두에 대해 데이터 재사용을 동적으로 전환하는 PE 어레이 구조와 압축기를 이용함으로써, 외부 피크 메모리 대역폭과 전력 소비량을 현저하게 감소시킬 수 있다는 장점을 갖는다.
도 1은 딥러닝 강화학습의 수행 주체에 따른 처리 과정을 설명하기 위한 도면이다.
도 2는 본 발명이 속하는 기술 분야에서 활용될 수 있는 Actor-Critic 알고리즘을 설명하기 위한 도면이다.
도 3은 DRL 에이전트(Agent)에서 행렬(Matric) 연산시의 데이터 재사용을 설명하기 위한 도면이다.
도 4는 입력 특징 및 가중치의 데이터 재사용 방법의 차이를 도시한 도면이다.
도 5는 학습 중 동적 데이터 재사용 패턴의 동적 변화를 도시한 도면이다.
도 6은 DNN 칩에서 활용될 수 있는 PE 어레이(Array)를 예시한 도면이다.
도 7 및 도 8은 각각 본 발명의 실시예들이 활용할 수 있는 공간 분할 배분법 및 시간 분할 배분법을 예시한 도면이다.
도 9 내지 도 11은 본 발명의 실시예들이 활용할 수 있는 시공간 분할 배분법과 다양한 조합을 예시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치를 도시한 블록도이다.
도 13은 본 발명의 다른 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치의 구조를 도시한 도면이다.
도 14는 본 발명의 실시예들이 제안하는 압축기의 구조를 도시한 도면이다.
도 15는 본 발명의 실시예들이 제안하는 전환 PE(transposable Processing Element, tPE) 어레이의 구조를 도시한 도면이다.
도 16은 전환 PE 어레이 구조를 활용하여 W 브로드캐스트(WBC)와 IF 브로드캐스트(IFBC)를 동적으로 선택하는 방법을 설명하기 위한 도면이다.
도 2는 본 발명이 속하는 기술 분야에서 활용될 수 있는 Actor-Critic 알고리즘을 설명하기 위한 도면이다.
도 3은 DRL 에이전트(Agent)에서 행렬(Matric) 연산시의 데이터 재사용을 설명하기 위한 도면이다.
도 4는 입력 특징 및 가중치의 데이터 재사용 방법의 차이를 도시한 도면이다.
도 5는 학습 중 동적 데이터 재사용 패턴의 동적 변화를 도시한 도면이다.
도 6은 DNN 칩에서 활용될 수 있는 PE 어레이(Array)를 예시한 도면이다.
도 7 및 도 8은 각각 본 발명의 실시예들이 활용할 수 있는 공간 분할 배분법 및 시간 분할 배분법을 예시한 도면이다.
도 9 내지 도 11은 본 발명의 실시예들이 활용할 수 있는 시공간 분할 배분법과 다양한 조합을 예시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치를 도시한 블록도이다.
도 13은 본 발명의 다른 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치의 구조를 도시한 도면이다.
도 14는 본 발명의 실시예들이 제안하는 압축기의 구조를 도시한 도면이다.
도 15는 본 발명의 실시예들이 제안하는 전환 PE(transposable Processing Element, tPE) 어레이의 구조를 도시한 도면이다.
도 16은 전환 PE 어레이 구조를 활용하여 W 브로드캐스트(WBC)와 IF 브로드캐스트(IFBC)를 동적으로 선택하는 방법을 설명하기 위한 도면이다.
이하에서는 도면을 참조하여 본 발명의 실시예들을 구체적으로 설명하도록 한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 덧붙여, 명세서 전체에서, 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구비하다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
특별히 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 딥러닝 강화학습의 수행 주체에 따른 처리 과정을 설명하기 위한 도면이다. DRL 에이전트는 일반적으로 각각 학습과 추론을 수행하는 액터(Actor)와 러너(Learner)의 두 가지 컴포넌트를 통해 내부에 장착된 DNN이 관측한 환경 상태(State, St)를 입력으로 받아 스스로의 최적의 동작(Action, At)을 출력한다. 관측된 현재 상태(St)로부터 DRL 에이전트는 DNN 가중치(Weight, θ)와 정책(π, Policy)를 사용해 최적의 동작(At)을 결정한다. DRL을 처리하는 동안, 액터는 지속적으로 환경과 상호작용을 하며, 러너는 DNN을 정기적으로 학습시켜 환경으로부터의 보상(Reward, Rt)을 최대화한다. 엄밀히 말하자면, 현재 정책 따라 행동했을 때 얻게될 보상의 총합 Return-Gt(=Rt+γRt+1+γ2Rt+2+...)을 최대화하는 방향으로 학습한다(γ는 Discounting Factor로 0<γ<1의 값을 가진다. 이는 동물의 행동 양식처럼 현재의 행동으로부터 바로 얻을 수 있는 보상에 가중치를 더 두는 역할을 한다.).
액터는 환경의 상태(St)를 관측하고, 현재의 DNN 가중치(Weight, θ)와 그 정책(π, Policy)에 의해 결정된 Action(At)을 선택한다. DRL 에이전트가 액션(Action)을 수행한 후에 에이전트는 다음번에 관측된 외부 환경 상태(St+1)와 동시에 스칼라 보상(Rt)을 입력으로 받는다. 매번, 경험(Experience) 메모리에 저장된 경험(Experience)들을 샘플링하고 이를 이용하여 러너가 DNN을 학습시킨다. 안정된 DRL 에이전트의 학습을 위해 DRL 알고리즘에 널리 사용되는 "Experience Replay 기술"을 활용하기 위해 경험 메모리는 많은 경험(약 10,000개 이상)을 저장해야 한다. 러너는 여러 개의 무작위 경험 샘플을 일괄 처리(Batch) 형태로 페치(Fetch)하고, 손실 함수(Loss Function)을 활용하여 현재의 DNN에 의해 결정된 액션(Action)에 대한 보상을 극대화한다. 이후 러너는 손실 함수로부터 계산된 기울기(Gradient)를 이용하여 DNN 가중치를 업데이트한다.
일반적으로 DRL의 학습(Learning)은 크게 On-Policy Learning과 Off-Policy learning으로 나누어 볼 수가 있다. On-Policy Learning이란 학습하는 정책(Learner의 Policy)과 행동하는 정책(Actor의 Policy)이 같은 학습 방식을 말하며, 일반적으로 매 타임 스텝마다 얻은 경험(Expereince)으로 정책 DNN을 학습시키는 방법을 말한다. 반대로, Off-Policy란 이 둘의 정책이 반드시 같지 않은 학습 방식으로 DRL의 Action Generation을 여러 번 경험으로 축적한 후, 축적해둔 경험을 랜덤-샘플링하여 정책 DNN을 학습시키는 것을 말한다. 둘의 가장 큰 차이는 이전 경험을 사용하는 방식에서 큰 차이를 갖는다. On-Policy 학습 방식을 사용할 경우, 매번 현재의 경험으로부터 최선의 정책을 찾아, 그 정책으로 새로운 경험을 얻어내어 더 빠른 학습 속도를 갖지만, Local-minima에 빠져 더 이상 더 나은 정책을 찾지 못하는 상태에 빠지는 경우가 발생한다. 이를 보완하는 Off-Policy Learning은 이전에 축적된 경험을 여러 번 재사용하므로 경험 수집이 어려운 업무에 대해 효율적인 데이터 사용이 가능하다. 또한 랜덤 샘플링된 경험으로부터 학습하여 On-Policy Learning 대비 느린 학습속도를 갖지만 다양한 시행착오를 거쳐 Local-minima에 빠지지 않는 안정적인 학습을 제공한다.
DQN(Deep-Q Network)은 대표적인 Off-Policy Learning 알고리즘이며 Actor-Critic은 대표적인 On-Policy Learning 알고리즘이다(물론 Actor-Critic도 Off-Policy Learning이 가능하며 이 경우가 더 수렴을 잘하는 경우도 있다.).
DQN은 1개의 Main Q-network와 1개의 Target Network로 구성된 2개의 DNN network를 포함하고 있다. DQN은 Main Q-network을 통해 현재 상태 st로부터 액션(Action) at를 결정한다. 액터의 출력들을 {현재상태 st, 액션 at, 보상 Rt +1, 다음상태 st+ 1}의 집합으로 묶어서 별도의 메모리(리플레이 메모리)에 저장한 후, 리플레이 메모리로부터 무작위로 데이터 집합을 불러내어 Target Network를 학습시킨다. 이 Target network를 일정 주기마다 Main Q-network로 동기화 시키는데, 이를 통해 업데이트에 생기는 노이즈를 줄여 안정적인 DQN 학습을 제공한다. 아래의 수학식을 통해 Target Network를 학습한다.
여기서, Qm은 Main Q-network, 즉 액터 DNN을 가리키고 Qt는 Target Network를 가리키며 는 현재 학습 중인 Target network에서 구한다. (2)식의 앞의 첫 항은 다음 상태 st+1에서 현재 학습 중인 Target Network가 추론한 행동으로부터 얻을 수 있는 보상의 총합을 나타내며, 두 번째 항은 다음 상태 st+1에서 현재 Main Q-network가 추론한 행동으로부터 얻을 수 있는 보상의 총합을 나타낸다. 즉 다음 상태 st+1에서의 Target Network가 추론한 Q 값이 최대가 되는 액션 a와 현재 에이전트의 행동 정책으로부터 얻을 수 있는 Q 값의 차를 최소화함으로써 최대의 보상을 갖는 정책을 찾아낼 수 있다. 따라서 이를 손실 함수(Loss Function)로 사용하여 Target Network와 Main Q-network의 가중치(Weight) 값들을 갱신(Update)한다.
도 2는 본 발명이 속하는 기술 분야에서 활용될 수 있는 Actor-Critic 알고리즘을 설명하기 위한 도면이다. Actor-Critic 알고리즘에서는 DNN을 하나 더 만들어 Q 함수의 근사를 맡긴다. 즉, 정책(Policy)을 근사하는 기존의 Policy Network DNN (여기서 Policy Network는 DQN의 Main Q-network와 Target Network를 아우른다.)에 더하여 Q 값을 근사하는 Value Network DNN을 추가한 것이다. 각각의 Policy Network와 Value Network는 Main Q-network와 Target Network를 포함하여, 총 4개의 DNN을 사용한다. 이 경우 Policy Network와 Value Network가 완전히 독립적인 경우와 하나의 DNN의 앞쪽 여러 층들을 공유하며 마지막 몇 층만 독립하여 따로 설치한 경우로 나누어 볼 수가 있다.
Actor-Critic 알고리즘은 On-Policy Learning 과 Off-Policy Learning이 다 가능한데, 여기에서는 On-Policy Learning을 예로 설명하기로 한다. Policy Network의 출력으로부터 Cross-Entropy Error Function, 을 구할 수 있고 Value Network 출력으로부터 Time Difference Error, 를 구할 수가 있으며 이를 곱하여 를 최대화하도록 가중치(Weight) θ를 구하는 것으로 학습한다. Value Network의 학습은 출력 가 정확한 값을 갖도록 하여야 하는데 결국 실제 행동을 취해서 얻게 되는 행동가치 와 일치시키는 것으로 결국 으로 학습(learning)을 진행한다. Policy Network는 Cross-Entropy Error Function과 Time Difference Error의 곱으로 새로운 오류함수를 정의하고 이 오류함수로 Policy Network를 갱신(Update)한다.
이상에서 설명한 DQN 알고리즘에서는 액터의 Main DNN과 Target DNN으로 2개의 DNN이 필요하며, Actor-Critic 알고리즘에서는 Actor DNN, Critic DNN 등 복수개의 DNN들이 필요하다. 이하에서 기술되는 본 발명에서는 복수 개의 DNN을 지원하며 DQN 알고리즘과 Action-Critic 알고리즘 모두가 하나의 칩에서 동작하는 DRL CMOS 칩을 제안하도록 한다.
앞서, DRL의 경우 러너가 DNN을 추론에도 사용하지만 동시에 업데이트도 해야 하므로 단순 추론 작업보다 더 큰 최대 메모리 대역폭이 필요함을 지적하였다. 또한 복수 개의 DNN을 필요로 하기 때문에 칩상에 구현된 DNN 회로들을 공간적 및 시간적으로 별도의 DNN에 매핑하여야 하며 이 때문에 성능저하가 발생할 수 있음을 지적하였다.
설명의 편의를 위해, 2족 보행 시뮬레이션 로봇이 스스로 걷는 법을 학습하는 DRL 에이전트를 가정하자. 위 에이전트는 512개 뉴런/레이어 및 212개 입력 매개변수를 가진 4개의 완전 연결 은직(Hidden) 레이어로 구성되어 있다. 도 3은 DRL 에이전트(Agent)에서 FCL(Fully-Connecrted Layer) 및 RNN의 행렬(Matric) 연산시의 데이터 재사용을 설명하기 위한 도면으로, DRL 에이전트에서는 러너(Learner)에서 요구되는 최대 메모리 대역폭이 동일 DRL 에이전트 내의 액터(Actor)에서의 요구보다 10배 더 크다는 것을 보여준다. 도 4는 입력 특징 및 가중치의 데이터 재사용 방법의 차이를 도시한 도면이다. 메모리 대역폭 분석에 기초해 분석하여 보면 액터와 러너는 도 4와 같이 입력 특징(Input Feature, IF 또는 Activation)과 가중치(DNN Weight, W)의 데이터 재사용방법이 다르다. 일반적으로, DNN 연산은 IF 매트릭스와 W 매트릭스의 곱으로 간소화하여 표현할 수 있다. 만약 입력된 IF와 W 데이터를 다시 입력시킬 필요없이 계속 재사용하여 연산을 수행한다면, 동일한 IF와 W를 다시 페치(Fetch)할 필요가 없기 때문에, 입출력 대역폭이 감소하는 효과를 볼 수 있다.
도 3 및 도 4를 참조하면, 하나의 IF(원으로 표시)는 W 매트릭스 내 동일한 행에 위치한 W들(삼각형으로 표시)에 대해 재사용될 수 있다. 따라서 IF의 최대 재사용 횟수는 W 매트릭스의 행 길이로서, 한 레이어의 출력 채널(Output Channel, Co) 수와 같다. 마찬가지로 하나의 W 데이터의 최대 재사용 횟수는 IF 행렬의 열 길이와 같으며 이는 일괄 처리 횟수(Batch Size, B)와 동일하다. 액터는 환경과 상호작용하는 동안, 일반적으로 단일 IF를 입력으로 받기 때문에, IF 재사용이 더 효율적이다. 러너의 경우, 각 레이어별로 Co 크기가 다르기 때문에 상황에 따라 IF 재사용이 효율적이거나, W 재사용이 더 효율적일 수 있다.
도 5는 학습 중 동적 데이터 재사용 패턴의 동적 변화를 도시한 도면으로서, 러너 처리 중 레이어 별로 데이터 재사용 패턴의 동적 변화를 보여준다. 도면에서 볼 수 있듯이, 메모리 액세스 수는 IF 재사용과 W 재사용 사이에서 적응적 선택을 통해 ~x10까지 줄일 수 있다.
앞서 지적한 바와 같이, 이전의 DNN 하드웨어는 추론만 수행했으며, 이들의 데이터 병렬에는 고정된 데이터 경로만 있었기 때문에 메모리 액세스는 DNN 추론에만 최적화되어 있을 뿐, 학습에도 적응적인 데이터 재사용이 필요한 DRL 애플리케이션에는 최적화되지 않았다.
따라서, 이하에서 제시되는 본 발명의 실시예들은 다양한 DRL 알고리즘들에서 요구하는 복수 개의 DNN들을 고성능으로 구현시키기 위해 칩(Chip)에 존재하는 PE 어레이(Array)를 DNN에 공간적 분할, 시간적 분할, 시공간적 분할 및 복합 분할 매핑(Mapping)하는 방법을 제안한다. 또한, PE의 재구성성을 높혀 RNN(Recurrent Neural Network), FCL(Fully-Connected Layer), CNN(Convolution Neural Network) 등의 다양한 DNN 학습에 최적화되어 있는 에너지 효율적인 DRL 가속기를 제안한다. 특히, 학습에 적합한 DNN에서 W와 IF의 데이터 재사용 방법이 추론의 경우와 다르기 때문에, 새로운 재구성 가능한 PE 어레이인 전환 PE(Transposable PE, tPE) 어레이를 제안한다. 나아가, 러너에서의 경험(Experience)과 학습 중간 데이터(Intermediate Layer Data)를 압축하여 데이터를 줄일 수 있는 압축기를 제안한다.
도 6은 DNN 칩에서 활용될 수 있는 PE 어레이(Array)를 예시한 도면이다. 일반적인 DNN 칩은 도시된 바와 같이 PE 어레이들로 구성되어 있으며 PE 어레이는 다시 수개 내지 수천개의 PE들로 구성되어 있다. 이렇게 많은 수의 PE들을 공간적으로 분할하여 각각의 DNN에 할당할 수 있으며 이를 공간 분할 배분법이라 부른다.
도 7은 본 발명의 실시예들이 활용할 수 있는 공간 분할 배분법을 예시한 도면이다. 일정 개수의 PE를 액터에 할당하고, 일정 개수의 PE를 Critic에 할당하며, 알고리즘에서 필요로 하는 기타 DNN들에 정해진 개수의 PE들을 할당한다. 이러한 할당은 시간적으로 동적으로 변경할 수가 있어 각각의 DNN들의 연산 요구량에 맞추어 동작 중에도 재변경이 가능하다. 각각의 DNN들은 배정된 PE들을 사용하여 독립적으로 DNN 연산을 진행하게 되며 DNN 사이에 의존성(Dependency)가 적어서 동시에 병렬 처리가 가능하다. 하지만 처리가 완료된 DNN에 할당되었던 PE 어레이들은 다음번 처리 요구 전까지는 대기 상태에 놓이게 되어 PE의 활용도가 저하될 수 있다.
한편, 전체 PE 어레이들을 모두를 하나의 DNN을 처리하는데 사용하고, 이를 알고리즘에서 필요로 하는 DNN 들, 예를 들어, Actor DNN, Critic DNN 및 기타 DNN들이 시간적으로 번갈아 가면서 전체 PE 어레이를 사용하는 방법을 고려할 수 있는며, 이를 시간 분할 배분법이라 부른다.
도 8은 본 발명의 실시예들이 활용할 수 있는 시간 분할 배분법을 예시한 도면이다. 공간 분할 배분법에서와 같은 병렬 처리는 불가능하지만 모든 PE 어레이들이 하나의 DNN을 구현하고 있어 하나의 DNN의 처리속도는 빨라지는 장점이 존재한다. 특히 복수의 DNN들이 많은 층(layer)들을 공유하는 알고리즘의 경우 시간 분할을 활용하면 다른 DNN들은 최초의 DNN 연산의 중간결과를 받아서 마지막 몇 개의 자체 DNN층에 대해서만 연산하면 되므로 훨씬 간편하다.
그러나, 각각의 DNN들은 요구되는 연산량과 메모리 대역폭이 서로 달라서 이를 고려한 공간 분할 배분법과 시간 분할 배분법을 조합한 시공간 분할 배분법도 고려될 수 있다. 도 9를 참조하면, 시간 구간 t1-t2까지는 모든 PE 어레이들을 Actor DNN에 할당하고 시간 구간 t2-t3에서는 Critic DNN과 기타 DNN이 공간 분할 배분법에 의해 전체 PE들을 나누어 사용하게 된다. 이 경우 t3-t4 구간에서는 기타 DNN에 할당되었던 PE 어레이들이 유휴(Idle) 상태에 있어 PE의 활용도가 저하될 수가 있다. 이러한 PE 활용도의 저하를 막는 방법으로는 기타 DNN의 연산이 종료되면 이에 할당되었던 PE 어레이들을 다음 단계인 Actor DNN에 할당하여 Actor DNN 연산이 일찍 시작할 수 있도록 유도할 수 있다.
또한, 도 10을 참조하면, 공간 분할 배분법에 의한 병렬 처리를 더욱 발전시켜 전체의 PE 어레이들을 Actor DNN, Critic DNN 및 기타 DNN들로 배분하여 DNN 연산을 수행하며 수행이 종료된 PE 어레이들을 다른 DNN에 할당하여 PE 어레이의 활용도를 향상시킬 수 있다. 나아가, 상기된 다양한 방법들을 조합하여 한꺼번에 사용되는 복합 방법도 가능하다. 도 11에서와 같이 시간 분할, 시공간 분할 및 공간 분할이 모두 함께 사용될 수도 있다.
각각의 DNN들은 신경망의 구조 및 가중치(Weight) 값들이 서로 다르므로 시간 분할의 경우 이전 시간 DNN에 대한 값들이 후에도 사용된다면 이들을 메모리에 저장하고 후에 다시 불러와야 하며 이들을 제어하는 별도의 컨트롤러(Controller)가 칩 상에 집적되어야 한다.
이하에서는 본 발명의 실시예들이 제안하는 데이터 재사용을 동적으로 전환하는 DRL 가속 장치의 개요를 살펴본 후 구체적인 칩 구조를 순차적으로 기술하도록 한다.
도 12는 본 발명의 일 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치(300)를 도시한 블록도로서, 수행 주체(액터 및 러너)를 중심으로 개념적인 동작과 처리 방식을 설명한다. 이러한 DRL 가속 장치(300)는 CMOS 칩으로 구현될 수 있다.
액터(Actor) 회로 블럭(100)은, 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력한다. 러너(Learner) 회로 블럭(200)은, {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)한다.
여기서, 상기 액터 회로 블럭(100)은, 승산기(Multiplier) 및 누산기(Accumulator)를 조합한 MAC이 2차원 PE 어레이(Processing Element Array)를 형성하되, 복수 개의 PE 어레이들을 내부에 집적하여 외부로부터 입력되는 현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력할 수 있다. 또한, 상기 액터 회로 블럭(100)은, 러너(Learner) 동작 시, 상기 복수 개의 PE 어레이들이 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)할 수 있다. 이때, DNN은 RNN(Recurrent Neural Network), CNN(Convolutional Neural Network), FCL(Fully-Connected Layer) 등 다양한 알고리즘이 적용 가능하다.
또한, 구현의 관점에서, 상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor)를 더 포함하는 것이 바람직하다. 이러한 압축기는 상기된 다수의 데이터 쌍을 저장하는 메모리의 크기를 줄이고, 페치(Fetch) 및 스토어(Store)에 소요되는 메모리 대역폭을 감소시키기 위해 이 쌍들을 압축하고 압축을 푸는 별도의 하드웨어가 필요하기 때문에 안출된 것이다.
나아가, 상기 PE 어레이는, 액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성할 수 있다. 이는 앞서 도 3 내지 도 5를 통해 설명한 바와 같이, 학습에 적합한 DNN에서 W와 IF의 데이터 재사용 방법이 추론의 경우와 다르다는 점을 고려하여 안출되었다. 보다 구체적인 구조 및 전환 방식은 이후 도 16을 통해 자세히 설명하도록 한다.
한편, 앞서 설명한 바와 같이, 본 발명의 실시예들에 따른 DRL 가속 장치는 다양한 방식으로 PE 어레이에 할당 복수 개의 DNN들을 할당할 수 있다.
첫째, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 사용 가능한 PE들을 공간적으로 분할하고, 분할된 각각의 PE에 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 할당하여 병렬 처리할 수 있다. 구현의 관점에서, DNN 추론에 요구되는 연산량 또는 메모리 대역폭의 변화를 감지하고, 감지된 결과에 따라 상기 DNN들 각각에 할당된 PE의 수를 변화시키는 제어로직(Controller)을 더 포함하는 것이 바람직하다.
둘째, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 시간적으로 분할하여 사용 가능한 PE들을 순차적으로 할당하여 처리할 수 있다.
셋째, 액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 시공간분할에 따라 사용 가능한 PE들을 복수 개의 DNN에 매핑하여 병렬 처리하되, 먼저 종료된 DNN에 할당되었던 PE를 대기중인 다른 DNN에 순차적으로 할당하여 처리할 수 있다.
구현의 관점에서 두 번째 및 세 번째의 경우, 하나의 DNN의 연산이 종료되면 현재의 가중치 값, 입력 값 및 출력 값을 외부 메모리에 저장하고, 대기중인 다른 DNN이 먼저 종료된 DNN에 할당되었던 PE를 사용할 수 있도록 상기 대기중인 다른 DNN에서 요구되는 가중치 값, 입력 값 및 출력 값을 내부 또는 외부 메모리로부터 독출하는 제어로직(Controller)을 더 포함하는 것이 바람직하다.
도 13은 본 발명의 다른 실시예에 따른 데이터 재사용을 동적으로 전환하는 DRL 가속 장치의 구조를 도시한 도면으로서, 구체적인 칩 아키텍처를 제시하였다.
DRL 코어(Core)(또는 t-Core)(20)는, DRL 가속 장치 내에 복수 개(예를 들어, 64KB의 최상위 컨트롤러 4개) 마련되어 DRL(Deep reinforcement Learning)을 수행한다. 상위 공유 메모리(10)는, 상위 컨트롤러(Top Ctrlr)의 제어에 따라 상기 복수 개의 DRL 코어(20)와 온-칩 네트워크(On-Chip Network)를 통해 연결된다. 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor)가 실행되는 동안, 상기 상위 공유 메모리(10)는 DNN의 가중치(Weight) 값들을 상기 DRL 코어(20)로 로드(load)하며, {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner)가 실행되는 동안, 상기 복수 개의 DRL 코어(20)에서 공유되는 경험(Experience) 데이터가 상기 상위 공유 메모리(10)에 저장된다.
복수 개의 DRL 코어(20)는, DRL 코어를 제어하는 코어 컨트롤러(21), 상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor)(22) 및 현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력하는 PE 어레이(Processing Element Array)(23)를 각각 포함한다.
또한, 상기 복수 개의 DRL 코어(20)는, 상기 압축기(22)와 연결되어 가중치(Weight, W) 및 입력 특징(Input Feature, IF)를 전달받는 브로드캐스트 메모리(BMEM)(24)(64KB로 예시되었다.) 및 유니캐스트 메모리(UMEM)(26)(32KB로 예시되었다.)를 더 포함할 수 있다. 이러한 브로드캐스트 메모리(24) 및 유니캐스트 메모리(26)는 각각 B-버퍼(Buffer)(미도시) 및 U-버퍼(미도시)를 통해 상기 PE 어레이(23)에 입력 데이터를 제공할 수 있고, PE 어레이(23)의 출력은 누산 유닛(atiton Unit)에 입력되어 더해진다. 여기서, 상기 코어 컨트롤러(21)는, DNN 네트워크 구조에 따라 자동으로 상기 가중치 및 상기 입력 특징을 상기 브로드캐스트 메모리(24) 또는 상기 유니캐스트 메모리(26)로 페치(Fetch)하고, 액터 또는 러너 동작시 각각 가중치(W) 및 입력 특징(IF)의 데이터 재사용을 변화시키도록 상기 PE 어레이(23)의 구성을 설정할 수 있다.
또한, 상기 복수 개의 DRL 코어(20)는, 비선형 함수를 처리하는 활성화 유닛 및 가중치 업데이트 및 손실 계산을 위해 로그 함수, 덧셈 및 곱셈을 수행하는 1-D SIMD 유닛(28)을 더 포함할 수 있다.
도 14는 본 발명의 실시예들이 제안하는 압축기의 구조를 도시한 도면이다. 실시간 수집된 데이터를 압축 저장 및 로드하는 압축기(22)는 인코더와 디코더로 구성될 수 있다. 학습 시 그 값이 작은 에러와 ΔW로 인해 전체 데이터의 분포가 넓기 때문에, 입력 특징(IF)은 bfloat16으로 표현될 수 있다. 경험(Experience)으로 저장된 입력 특징의 지수부(Exponent) 데이터의 분포값으로 이는 좁은 범위에 고도로 집중되어 있다. 러너(Learner)의 20,480개의 경험(Experience)과 중간 레이터(Intermediate Layer) 데이터의 경우, 이러한 집중의 정도가 더 심한데, 제일 빈번하게 나타나는 3가지 지수 값(상위-3 지수)의 평균 비율은 각각 68%, 85%이다. 2b 코드 워드는 압축을 위해 추가한 데이터로, 현재 나타내고 있는 IF 데이터가 압축되었는지 여부를 나타낸다. 이 코드 워드를 통해 현재 노드가 상위-3 지수에 포함되는 지수를 갖고 있다면, 8-비트 지수부를 스킵(Skip)하며, 상위-3 지수에 포함되지 않는 지수를 갖고 있을 때는 지수부 데이터를 스킵할 수 없다. 코드 '00'는 현재 노드가 상위-3 지수 내에 속하지 않기 때문에 인덱싱을 건너뛸 수 없음을 나타낸다. 다른 코드 '01', '10' 및 '11'은 현재 노드의 인덱스가 각각 상위 1, 상위 2 및 상위 3개 인덱스에서 인덱스 값을 건너뛰고 있음을 나타낸다.
도 13 및 도 14를 참조하면, 상기 PE 어레이(23)가 DNN 연산을 처리하는 동안, 상기 압축기(22)는 출력 버퍼를 스캔하여 가장 자주 사용하는 세 가지 인덱스 값을 확인한다. 상기 출력 버퍼가 가득 찬 경우 상기 압축기(22)가 코드 워드(code word), 지수부(Exponent) 및 가수부(Mantissa)를 순차적으로 인코딩하며, 입력 특징(IF)이 상기 DRL 코어로 전송되면, 상기 압축기(22)(도 14의 Decompressor)가 상기 코드 워드를 스캔하고 순차적으로 입력된 입력 가수부와 지수부를 재결합하여 상기 입력 특징을 스트림-아웃(stream-out)한다. 다음의 표 1은 앞서 예시한 2족 로봇 워커에게 넘어지지 않고 걷도록 훈련할 수 있는 DRL 에이전트로 압축률을 측정한 결과로서, 측정 결과에 따르면 평균 압축률은 35%이다
도 15는 본 발명의 실시예들이 제안하는 전환 PE(transposable Processing Element, tPE) 어레이(23)의 구조를 도시한 도면으로서, 매트릭스 곱셈을 수행하는 강화학습 처리를 위한 2차원 전환 PE 어레이의 아키텍처를 보여준다. 첫 번째 행 PE의 B11, B21, B31 및 B41 데이터는 A1으로 곱할 수 있으며, 이 중 새로운 데이터는 각 사이클마다 브로드캐스트되어 병렬 매트릭스 연산을 수행할 수 있다. 16 4 4 4 전환(Transposable) PE 어레이를 통합하여 BMEM으로부터 브로드캐스트 데이터를 수신하는 행 버퍼를 공유한다. 그리고 각 PE 어레이는 유니캐스트 데이터를 제공하는 U-버퍼(Buffer)(27)에 연결된다. FP-FXP MAC는 16b bfloat타입 데이터와 16b 정수의 곱셈을 수행하며, 이는 각 PE에 집적되어 있다. 4개의 4b 곱셈과 2개의 8b 곱셈 결과는 정확도와 성능의 다른 요건에 따라 무게 비트 정밀도가 달라질 수 있도록 추가 비용 없이 동시에 병렬로 구해질 수 있다. 만약 유니캐스트 데이터가 모두 재사용되었다면, 새로운 유니캐스트 데이터가 U-버퍼를 통해 PE 어레이(23)로 입력된다.
PE 어레이(23)는, 러너(Learner) 동작 시, 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)할 수 있다. 이를 위해, 상기 PE 어레이(23)는, MAC이 2차원 배열로 구성되고, 각각의 행은 브로드캐스트 데이터를 수신하는 행 버퍼를 공유하여 입력값을 MAC을 통해 승산하되, 새로운 데이터가 매 사이클마다 브로드캐스트되어 병렬 매트릭스 연산을 수행하며, U-버퍼로부터 제공되는 유니캐스트 데이터가 모두 재사용되었다면 새로운 유니캐스트 데이터가 상기 U-버퍼를 통해 입력된다.
도 16은 전환 PE 어레이 구조를 활용하여 W 브로드캐스트(WBC)와 IF 브로드캐스트(IFBC)를 동적으로 선택하는 방법을 설명하기 위한 도면이다. 앞서 소개한 바와 같이, PE 어레이는, 액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성한다.
첫째, CO의 크기가 BA보다 큰 경우에는 IF의 재사용이 더 효율적이다. 이 경우 도 16의 (A)에 나타난 바와 같이 W 브로드캐스트를 채택한다. 동일한 행의 PE는 다른 배치의 동일한 입력 채널에 IF를 저장하고, 동일한 열의 PE는 동일한 배치의 다른 입력 채널에 IF를 저장한다. 예를 들어, DNN 처리(T=0) 시작 시에 PE0은 원의 IF(BA=0), Ci=0) 및 PE1은 직사각형의 IF(BA=1, Ci=0)를 저장한다. 그리고 PE4는 삼각형의 IF를 저장한다(BA=0, Ci=1). B-버퍼(Buffer)는 매 사이클마다 4개의 서로 다른 입력 채널의 4개의 서로 다른 W를 브로드캐스트하며, 동일한 열에 있는 PE의 결과는 누산 유닛(Accumulation Unit)에서 더해진다. 4개의 입력 채널의 W 브로드캐스트가 완료된 후, PE 어레이는 U-버퍼로부터 새로운 IF를 가져오고, PE 어레이는 DNN 처리를 계속한다. 즉, PE 어레이는, 출력 채널(Output Cahnnel, Co) 수를 나타내는 가중치 행렬(W Matrix)의 행 길이가 일괄 처리 횟수(Batch Size, BA)를 나타내는 입력 특징 행렬(IF Matrix)의 열 길이보다 상대적으로 큰 경우 W 브로드캐스트(WBC)를 선택하는 것이 바람직하다.
둘째, BA 크기가 CO보다 큰 경우에는 W의 재사용이 IF의 재사용보다 효율적이다. 이 경우 도 16의 (B)에 나타난 바와 같이 IF 브로드캐스트를 채택한다. PE0과 PE2는 서로 다른 출력 채널에 W를 저장하고, PE0과 PE4는 동일한 출력 채널에 W를 저장한다. 즉, PE 어레이는, 가중치 행렬의 행 길이가 입력 특징 행렬의 열 길이보다 상대적으로 작은 경우 IF 브로드캐스트(IFBC)를 선택하는 것이 바람직하다.
액터 동작 시 출력 채널의 크기보다 배치 크기가 커서 IF 브로드캐스트보다 W 브로드캐스트의 외부 메모리 액세스가 적다. 이 경우 W 브로드캐스트는 메모리 액세스 측면에서는 더욱 효율적인 것으로 보이지만, 많은 PE는 유휴(IDLE) 상태에 있어야 할 IF 데이터를 수신할 수 없어, W 브로드캐스트는 코어의 활용도가 낮기 때문에 IF 브로드캐스트보다 프레임률이 낮아진다. 그러므로 IF 브로드캐스트가 액터에게 더 효율적이다. 액터와 러너 동작 시, 코어 컨트롤러에 의해 전환 PE 어레이의 구성이 자동적으로 선택될 수 있다.
표 2는 본 발명의 실시예들에 따른 DRL 에이전트의 워커 시뮬레이션으로 제안된 계획을 측정하였다. IF 브로드캐스트(IFBC)만을 사용할 경우, 액터가 DRL의 처리 시간의 대부분을 차지하기 때문에 W 브로드캐스트(WBC)보다 적은 전력을 소비한다. 그러나 IFBC 전용의 경우는 WBC가 러너 처리 중에 IFBC보다 메모리 액세스에 더 효율적이기 때문에 WBC 전용 사례보다 높은 메모리 대역폭을 요구한다. 전환 PE 어레이를 활용해 전력 소비량과 피크 메모리 대역폭을 줄일 수 있도록 IFBC와 WBC를 적응적으로 선정한다. 또한 경험(Experience) 압축과 함께 전환 PE 어레이의 전력 소비량 및 피크 메모리 대역폭을 측정한다. 경험 압축과 함께 IFBC와 WBC의 적응형 선택을 통해 평균 전력 소비량은 31% 감소하고 최대 메모리 대역폭은 41% 감소하였음을 실험결과로서 얻을 수 있었다.
본 발명의 실시예들에서는 부동 소수점 시스템을 채택하고 데이터 압축 방식과 적응형 데이터 경로를 사용하여 대규모 메모리 대역폭과 DRL 처리의 서로 다른 데이터 재사용을 처리하였다. 그 결과 실시간 저전력 DRL 작동을 위해 정밀한 DNN 학습이 가능하다. 본 발명의 실시예들은 동적 환경에서의 자율적 DRL 작동을 실현하기 위해 일회용 PE 어레이와 경험(Experience) 압축기를 갖춘 DRL 가속기를 제안하였다. 또한 추론와 훈련을 위한 적응형 데이터의 재사용이 가능하여 전력 및 최대 메모리 대역폭이 각각 31%와 41% 감소함을 실험결과로서 얻을 수 있었다.
한편, 본 발명의 실시예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 액터 회로 블럭
200: 러너 회로 블럭
300: DRL 가속 장치
10: 상위 공유 메모리
20: DRL 코어
21: 코어 컨트롤러
22: 압축기
23: PE 어레이
24: 브로드캐스트 메모리(BMEM)
25: B-버퍼
26: 유니캐스트 메모리(UMEM)
27: U-버퍼
28: SIMD 유닛
200: 러너 회로 블럭
300: DRL 가속 장치
10: 상위 공유 메모리
20: DRL 코어
21: 코어 컨트롤러
22: 압축기
23: PE 어레이
24: 브로드캐스트 메모리(BMEM)
25: B-버퍼
26: 유니캐스트 메모리(UMEM)
27: U-버퍼
28: SIMD 유닛
Claims (20)
- 입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor) 회로 블럭; 및
{현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner) 회로 블럭;을 포함하는, DRL(Deep reinforcement Learning) 가속 장치. - 제 1 항에 있어서,
상기 액터 회로 블럭은,
승산기(Multiplier) 및 누산기(Accumulator)를 조합한 MAC이 2차원 PE 어레이(Processing Element Array)를 형성하되, 복수 개의 PE 어레이들을 내부에 집적하여 외부로부터 입력되는 현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력하는, DRL 가속 장치. - 제 2 항에 있어서,
상기 액터 회로 블럭은,
러너(Learner) 동작 시, 상기 복수 개의 PE 어레이들이 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)하는, DRL 가속 장치. - 제 2 항에 있어서,
액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 사용 가능한 PE들을 공간적으로 분할하고, 분할된 각각의 PE에 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 할당하여 병렬 처리하는, DRL 가속 장치. - 제 4 항에 있어서,
DNN 추론에 요구되는 연산량 또는 메모리 대역폭의 변화를 감지하고, 감지된 결과에 따라 상기 DNN들 각각에 할당된 PE의 수를 변화시키는 제어로직(Controller);을 더 포함하는, DRL 가속 장치. - 제 2 항에 있어서,
액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 상기 액터 및 러너를 위한 DNN들 및 기타 DNN들을 시간적으로 분할하여 사용 가능한 PE들을 순차적으로 할당하여 처리하는, DRL 가속 장치. - 제 2 항에 있어서,
액터 및 러너를 위한 DNN들 및 기타 DNN들을 상기 PE 어레이에 매핑(Mapping)하는 경우, 시공간분할에 따라 사용 가능한 PE들을 복수 개의 DNN에 매핑하여 병렬 처리하되, 먼저 종료된 DNN에 할당되었던 PE를 대기중인 다른 DNN에 순차적으로 할당하여 처리하는, DRL 가속 장치. - 제 6 항 및 제 7 항 중 어느 한 항에 있어서,
하나의 DNN의 연산이 종료되면 현재의 가중치 값, 입력 값 및 출력 값을 외부 메모리에 저장하고, 대기중인 다른 DNN이 먼저 종료된 DNN에 할당되었던 PE를 사용할 수 있도록 상기 대기중인 다른 DNN에서 요구되는 가중치 값, 입력 값 및 출력 값을 내부 또는 외부 메모리로부터 독출하는 제어로직(Controller);을 더 포함하는, DRL 가속 장치. - 제 1 항에 있어서,
상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor);를 더 포함하는, DRL 가속 장치. - 제 2 항에 있어서,
상기 PE 어레이는,
액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성하는, DRL 가속 장치. - DRL(Deep reinforcement Learning)을 수행하는 복수 개의 DRL 코어(Core); 및
상위 컨트롤러의 제어에 따라 상기 복수 개의 DRL 코어와 온-칩 네트워크를 통해 연결되는 상위 공유 메모리;를 포함하고,
입력 데이터를 수신하여 DNN(Deep Neural Network)을 통해 처리한 결과를 액션(Action)으로 출력하는 액터(Actor)가 실행되는 동안, 상기 상위 공유 메모리는 DNN의 가중치(Weight) 값들을 상기 DRL 코어로 로드하며,
{현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 이용하여 DNN의 가중치(Weight) 값들을 학습(Learning)하는 러너(Learner)가 실행되는 동안, 상기 복수 개의 DRL 코어에서 공유되는 경험(Experience) 데이터가 상기 상위 공유 메모리에 저장되는, DRL(Deep reinforcement Learning) 가속 장치. - 제 11 항에 있어서,
상기 복수 개의 DRL 코어는,
DRL 코어를 제어하는 코어 컨트롤러;
상기 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 다수의 데이터 쌍을 인코딩하거나 디코딩하는 압축기(Compressor); 및
현재 상태를 수신하며 DNN 추론을 통해 액션과 다음 상태를 출력하는 PE 어레이(Processing Element Array);를 각각 포함하는, DRL 가속 장치. - 제 12 항에 있어서,
상기 복수 개의 DRL 코어는,
상기 압축기와 연결되어 가중치(Weight, W) 및 입력 특징(Input Feature, IF)를 전달받는 브로드캐스트 메모리(BMEM) 및 유니캐스트 메모리(UMEM);를 더 포함하고,
상기 브로드캐스트 메모리 및 상기 유니캐스트 메모리는 각각 B-버퍼(Buffer) 및 U-버퍼를 통해 상기 PE 어레이에 입력 데이터를 제공하는, DRL 가속 장치. - 제 13 항에 있어서,
상기 코어 컨트롤러는,
DNN 네트워크 구조에 따라 자동으로 상기 가중치 및 상기 입력 특징을 상기 브로드캐스트 메모리 또는 상기 유니캐스트 메모리로 페치(Fetch)하고,
액터 또는 러너 동작시 각각 가중치 및 입력 특징의 데이터 재사용을 변화시키도록 상기 PE 어레이의 구성을 설정하는, DRL 가속 장치. - 제 12 항에 있어서,
상기 복수 개의 DRL 코어는,
비선형 함수를 처리하는 활성화 유닛; 및
가중치 업데이트 및 손실 계산을 위해 로그 함수, 덧셈 및 곱셈을 수행하는 1-D SIMD 유닛;을 더 포함하는, DRL 가속 장치. - 제 12 항에 있어서,
상기 PE 어레이가 DNN 연산을 처리하는 동안, 상기 압축기는 출력 버퍼를 스캔하고,
상기 출력 버퍼가 가득 찬 경우 상기 압축기가 코드 워드(code word), 지수부(Exponent) 및 가수부(Mantissa)를 순차적으로 인코딩하며,
입력 특징이 상기 DRL 코어로 전송되면, 상기 압축기가 상기 코드 워드를 스캔하고 순차적으로 입력된 입력 가수부와 지수부를 재결합하여 상기 입력 특징을 스트림-아웃(stream-out)하는, DRL 가속 장치. - 제 12 항에 있어서,
상기 PE 어레이는,
러너(Learner) 동작 시, 외부의 입력 대신 저장되어 있던 다수의 {현재 상태, 중간값, 액션, 보상, 다음 상태}를 포함하는 데이터 쌍을 독출하여 손실함수를 생성하고, 생성된 손실함수에 기초하여 역-전파(Back-Propagation) 연산을 수행하여 DNN의 가중치를 갱신(Update)하는, DRL 가속 장치. - 제 12 항에 있어서,
상기 PE 어레이는,
MAC이 2차원 배열로 구성되고,
각각의 행은 브로드캐스트 데이터를 수신하는 행 버퍼를 공유하여 입력값을 MAC을 통해 승산하되, 새로운 데이터가 매 사이클마다 브로드캐스트되어 병렬 매트릭스 연산을 수행하며,
U-버퍼로부터 제공되는 유니캐스트 데이터가 모두 재사용되었다면 새로운 유니캐스트 데이터가 상기 U-버퍼를 통해 입력되는, DRL 가속 장치. - 제 12 항에 있어서,
상기 PE 어레이는,
액터에서의 입력 방향과 러너에서의 입력 방향이 서로 상이하도록 구성됨으로써, 액터 또는 러너 동작시 각각 입력 특징(Input Feature, IF) 및 가중치(Weight, W)의 데이터 재사용을 변화시키는 전환 PE(transposable Processing Element, tPE) 구조를 형성하는, DRL 가속 장치. - 제 19 항에 있어서,
상기 PE 어레이는,
출력 채널(Output Cahnnel, Co) 수를 나타내는 가중치 행렬(W Matrix)의 행 길이가 일괄 처리 횟수(Batch Size, BA)를 나타내는 입력 특징 행렬(IF Matrix)의 열 길이보다 상대적으로 큰 경우 W 브로드캐스트(WBC)를 선택하고,
가중치 행렬의 행 길이가 입력 특징 행렬의 열 길이보다 상대적으로 작은 경우 IF 브로드캐스트(IFBC)를 선택하는, DRL 가속 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200021129A KR102498066B1 (ko) | 2020-02-20 | 2020-02-20 | 딥러닝 강화학습 가속기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200021129A KR102498066B1 (ko) | 2020-02-20 | 2020-02-20 | 딥러닝 강화학습 가속기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210106222A true KR20210106222A (ko) | 2021-08-30 |
KR102498066B1 KR102498066B1 (ko) | 2023-02-10 |
Family
ID=77502165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200021129A KR102498066B1 (ko) | 2020-02-20 | 2020-02-20 | 딥러닝 강화학습 가속기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102498066B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016263A (zh) * | 2022-05-27 | 2022-09-06 | 福州大学 | 连续微流控生物芯片下基于drl的控制逻辑设计方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100530A1 (en) * | 2013-10-08 | 2015-04-09 | Google Inc. | Methods and apparatus for reinforcement learning |
KR20180012439A (ko) * | 2016-07-27 | 2018-02-06 | 삼성전자주식회사 | 회선 신경망에서 가속기 및 이의 동작 방법 |
KR20190050698A (ko) * | 2017-11-03 | 2019-05-13 | 삼성전자주식회사 | 신경망의 최적화 방법 |
KR20190088093A (ko) * | 2017-12-29 | 2019-07-26 | 한양대학교 산학협력단 | 로봇을 위한 학습 방법 |
KR20190104564A (ko) * | 2017-02-09 | 2019-09-10 | 미쓰비시덴키 가부시키가이샤 | 위치 제어 장치 및 위치 제어 방법 |
KR20190141694A (ko) * | 2017-04-17 | 2019-12-24 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서 |
-
2020
- 2020-02-20 KR KR1020200021129A patent/KR102498066B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100530A1 (en) * | 2013-10-08 | 2015-04-09 | Google Inc. | Methods and apparatus for reinforcement learning |
KR20180012439A (ko) * | 2016-07-27 | 2018-02-06 | 삼성전자주식회사 | 회선 신경망에서 가속기 및 이의 동작 방법 |
KR20190104564A (ko) * | 2017-02-09 | 2019-09-10 | 미쓰비시덴키 가부시키가이샤 | 위치 제어 장치 및 위치 제어 방법 |
KR20190141694A (ko) * | 2017-04-17 | 2019-12-24 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 메모리 대역폭 활용을 감소시키기 위해 활성화 데이터의 압축 및 압축 해제를 사용하는 신경망 프로세서 |
KR20190050698A (ko) * | 2017-11-03 | 2019-05-13 | 삼성전자주식회사 | 신경망의 최적화 방법 |
KR20190088093A (ko) * | 2017-12-29 | 2019-07-26 | 한양대학교 산학협력단 | 로봇을 위한 학습 방법 |
Non-Patent Citations (2)
Title |
---|
J. Lee, C. Kim, S. Kang, D. Shin, S. Kim, and H.-J. Yoo, "UNPU: A 50.6 TOPS/W unified deep neural network accelerator with 1b-to-16b fully-variable weight bit-precision," in 2018 IEEE International Solid-State Circuits Conference-(ISSCC), 2018: IEEE, pp. 218-220. |
K. Ueyoshi et al., "QUEST: A 7.49 TOPS multi-purpose log-quantized DNN inference engine stacked on 96MB 3D SRAM using inductive-coupling technology in 40nm CMOS," in 2018 IEEE International Solid-State Circuits Conference-(ISSCC), 2018: IEEE, pp. 216-218. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016263A (zh) * | 2022-05-27 | 2022-09-06 | 福州大学 | 连续微流控生物芯片下基于drl的控制逻辑设计方法 |
CN115016263B (zh) * | 2022-05-27 | 2024-06-04 | 福州大学 | 连续微流控生物芯片下基于drl的控制逻辑设计方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102498066B1 (ko) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220012593A1 (en) | Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization | |
Tang et al. | Deep reinforcement learning with population-coded spiking neural network for continuous control | |
Hadidi et al. | Distributed perception by collaborative robots | |
Kim et al. | A 2.1 TFLOPS/W mobile deep RL accelerator with transposable PE array and experience compression | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
Wang et al. | E-LSTM: An efficient hardware architecture for long short-term memory | |
Park et al. | 9.5 A 6K-MAC feature-map-sparsity-aware neural processing unit in 5nm flagship mobile SoC | |
US20220092408A1 (en) | Neural network weight distribution using a tree direct-memory access (dma) bus | |
Chowdhury et al. | One timestep is all you need: Training spiking neural networks with ultra low latency | |
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
JP2024506073A (ja) | モノのインターネット機器ベースのタスク割り当て方法、ネットワーク訓練方法及びその装置 | |
KR102610842B1 (ko) | 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법 | |
GB2588980A (en) | Method and system for neutral network execution distribution | |
Houshmand et al. | Opportunities and limitations of emerging analog in-memory compute DNN architectures | |
CN116187391A (zh) | 神经网络模型的处理方法及装置 | |
KR102498066B1 (ko) | 딥러닝 강화학습 가속기 | |
CN111047045A (zh) | 机器学习运算的分配***及方法 | |
Liang et al. | Decentralized computation offloading and resource allocation in mec by deep reinforcement learning | |
Wang et al. | Row-wise accelerator for vision transformer | |
Meng et al. | QTAccel: A generic FPGA based design for Q-table based reinforcement learning accelerators | |
Hu et al. | Content-Aware Adaptive Device–Cloud Collaborative Inference for Object Detection | |
CN116702852B (zh) | 基于多阶段事件驱动的动态重构神经网络加速电路及*** | |
CN117436485A (zh) | 基于权衡时延和精度的多退出点的端-边-云协同***及方法 | |
Bacciu et al. | An experimental evaluation of reservoir computation for ambient assisted living | |
Pujol et al. | Efficient evolution of asymmetric recurrent neural networks using a PDGP-inspired two-dimensional representation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |