GTC에 신경망 칩의 포스터가 전시

 

GPU가 딥 러닝의 주역으로 각광받고 있습니다. 미국 산호세에서 4월 4일부터 7일까지 열리는 GPU Technology Conference(GTC)'에선 신경망에 의한 딥 러닝에 초점이 맞춰졌습니다. NVIDIA가 주최하는 GTC는 당연히 GPU가 주역이지만 그 중에서도 특이한 발표가 이루어졌습니다. 그것은 GPU가 아니라 신경망을 처리하는 초 저전력 프로세서입니다.

 

1.jpg

 

GTC가 열린 San Jose McEnery Convention Center

 

2.jpg

 

Eyeriss : An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks

 

3.png

 

Eyeriss라고 이름이 붙은 이 프로세서는 신경망에 최적화된 168​개의 프로세싱 유닛이 있습니다. GPU로 치자면 168코어 프로세서인 것입니다. NVIDIA의 GPU / SoC와 비교하면 192 코어를 탑재하는 테그라 K1 수준이며, 소비 전력은 테그라 K1이 10.2W인데 이건 278mW밖에 안 됩니다. 이걸로 AlexNet 같은 DCINN을 처리합니다. 모바일 GPU의 1/10 수준 전력으로 모바일 GPU와 같은 수준의 DCNN이 가능한 것이 특징입니다.

 

4.png

 

Eyeriss는 모바일 GPU도 쓰기 어려운 임베디드 분야에서 CNN을 실현하는 게 목적입니다. 자동차보다 더 작은 드론, 스마트폰, 그 외에 다양한 임베디드에서 저전력으로 CNN을 실현합니다. 이를 위해 모바일 GPU의 1/10 이하인 100mW 대의 소비 전력을 목표로 합니다. 또 반도체의 다이 크기도 매우 적게 억제합니다.

 

5.png

 

Eyeriss의 목표는 GPU와 다른 레이어에서 CNN을 가져오는 것입니다. 테그라처럼 모바일 GPU를 탑재할 수 없는 저전력 기기에서도 고급 CNN을 실행하는 하드웨어를 제공합니다. 이런 전력 절감을 위해 초점을 맞춘 건 회선 레이어의 절감이라고 하네요.

 

6.png

 

DCNN은 딥 러닝 구조를 구축

 

 

회선 과정에서 데이터 재사용을 위해 버퍼를 탑재

 

DCNN은 업청난 수의 입력 이미지와 필터가 더해져 이미지 데이터가 출력됩니다. 필터가 더해진 데이터는 수백만이 넘지요. 문제는 이런 반대한 데이터를 읽고 쓰느라 전력 소비가 커진다는 것입니다.

 

7.png

 

여기에선 CNN 과정에서 많은 요소를 재사용할 수 있도록 하드웨어를 만들어, 불피룡한 데이터 읽기나 계산을 줄여 전력을 크게 줄일 수 있었다고 합니다.

 

8.png

 

먼저 회선에서 필터와 이미지 데이터를 재사용할 수 있습니다. 이러한 데이터를 일일이 오프 칩 메모리에 로드하지 않아도 온칩 버퍼를 통해 데이터 이동을 줄일 수 있습니다. 프로세서도 CNN에 가장 적합한 토ㅡㄹ로지가 됩니다.

 

9.png

 

Eyeriss의 온칩 버퍼는 108KB로 그리 많진 않습니다. 그러나 데이터 흐름을 CNN에 최적화해 이정도 버퍼량으로도 효과를 낼 수 있습니다. 또 실제 제품에선 용도에 따라 버퍼 용량과 프로세스 수도 조정이 가능할 거라 합니다. Eyeriss의 프로토타입 칩은 저전력 용이나 실제론 같은 아키텍처로 대형 칩을 만드는 것도 가능하며, 이 경우 버퍼 용량도 클 것입니다.

 

 

CNN의 데이터 흐름에 최적화 된 프로세서 어레이

 

10.png

 


GPU와 같은 SIMT (Single Instruction, Multiple Thread) 형 아키텍처는 스트림 형 처리에 적합하지만, CNN 같은 확산 처리에 곡 맞는다고 할 순 없습니다. 그래서 Eyeriss 행(Row)과 열(Column)의 Mesh 구조에 프로세싱 엔진(Processing Engine : PE)을 배치했습니다.

 

11.png

 

이 PE 네트워크로 먼저 필터의 무거운 데이터를 읽어들입니다. 각 행마다 필터의 가중치를 읽어 PE에 전송합니다. 이렇게 하면 같은 행과 열에 있는 PE 필터에 복사됩니다.

 

12.png

 

이렇게 복사를 계속해 나가며 필터링을 반복해 열을 통해 전송합니다.

 

13.png

 

이 밖에 Eyeriss는 기록을 참조해 데이터를 가져오거나 건너 뛰는 기능을 갖춥니다. 또 외부 메모리 대역폭을 줄이기 위해 하드웨어에 의한 이미지 데이터 압축 기능도 갖춥니다.

 

14.png

 

연산 유닛은 32비트 부동소수점 연산 유닛이 아닌 16비트 정수 연산입니다. 그 결과 Eyeriss는 소비 전력을 크게 줄일 수 있게 됐습니다. Eyeriss 테스트 칩은 65nm 공정으로 제조되며 동작 클럭은 250MHz, 코어 크기는 3.5 × 3.5mm로 매우 작습니다. 피크 오퍼레이션은 84GOPS에 전력 소비는 300mW 이하입니다.

 

 

NVIDIA도 GPU 외에 전용 프로세서에 신경쓰는

 

지금가지 신경망의 하드웨어화에선 뉴런 결합을 반도체에 재현하려는 시도가 많았습니다. 그러나 Eyeriss는 그것과 다릅니다. 뉴런의 네트워크를 컴퓨터에서 소프트웨어 시뮬레이션한 CNN을 하드웨어적으로 지원하는 칩을 만든 것입니다. CNN이 일반화되는 딥 러닝 시대에 잘 맞는 칩입니다.

 

사실 신경망을 하드웨어로 실현하려는 시도는 Eyeriss 외에도 여러 논문이 발표된 바 있으며, 조만간 임베디드에 Eyeriss 같은 CNN 최적화 상용 칩이 다수 등장할 가능성이 높습니다. Eyeriss은 시작에 불과하며 앞으론 딥 러닝 내장 칩이 일반화될 것입니다.

 

딥 러닝의 합습 단계에선 유연성과 확장성이 중요하기에 GPU 같은 병렬 프로세서가 높은 성능을 냅니다. Eyeriss 같은 내장 딥 러닝 디바이스에 탑재해 인식을 처리하는 칩이 나뉠 것으로 보입니다.

 

Eyeriss는 MIT(Massachusetts Institute of Technology)의 연구 프로젝트입니다. 이 논문에는 MIT의 교수인 Joel Emer이 참가했는데, 이분은 Digital Equipment Corporation에서 VAX 나 Alpha를 개발했으며 나중엔 인텔에서 멀티 코어를 연구했지요. 지금은 MIT의 교수와 NVIDIA의 연구원을 겸임하고 있습니다.

 

이처럼 Eyeriss는 NVIDIA가 직접 개발한 것은 아니지만 NVIDIA가 얽혀 있습니다. 또한 GTC 2016에도 Eyeriss 프로젝트를 대대적으로 홍보한 바 있지요. NVIDIA가 GPU 뿐만 아니라 전용 칩 솔루션에 신경쓰고 있음을 알 수 있습니다.

 

15.png

 

Eyeriss의 블럭 다이어그램

기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.