Arm이 기계 학습 전용 프로세서 「Arm ML」를 투입에



기계 학습에 특화된 새로운 IP 코어

기계 학습에 특화된 Arm ML 프로세서

 Arm이 마침내 기계 학습 (ML : 기계 학습) 전용 프로세서 IP를 공식적으로 발표한다. Arm의 "Arm ML 프로세서 (Machine Learning Processor) '는 최근 각사로부터 잇달아 등장하고있다"신경망 프로세서 (NPU)」와 같이, 신경망 (Neural Network : NN)를 저전력 고성능에 실행한다. CPU 나 GPU, DSP의 확장이 아니라 처음부터 ML 처리 전용으로 설계된 전용 아키텍처이다. Arm은 Arm ML을 투입하는 것을 올해 (2018 년) 2 월에 발표했지만, 드디어 기술적 인 세부 사항을 공개했다.

 Arm ML은 다른 Arm IP 코어와 마찬가지로 확장 가능한 코어에서 16 코어까지 IoT (The Internet of Things)에서 자동차, 심지어 서버 측까지의 확장 성을 갖추고있다. IoT과 모바일에 대응하기 위해 전력 효율은 7nm 공정시 1W 당 3 TOPS (trillion operations per second)로 매우 높다. ML의 인화 렌스 (Inference : 추론)에 최적화 된 아키텍처로 성능은 최대 구성이라면 4.6 TOPS (Trillion Operations Per Second)의 성능이다.

확장 가능한 고효율 Arm ML 프로세서
전체 구성이라면 4.6 TOPS (Trillion Operations Per Second)의 Arm ML

 모바일 대상에 포함시켰다 NPU (Neural Processing Unit)는 많지만, Arm ML에 몇 가지 두드러진 특징이있다. 신경망은 "CNN (Convolutional Neural Network)"에 적합한 구조를 가지고 있지만, 'Recurrent Neural Network (RNN)」나 「Long / Short-Term Memory Network (LSTM)」등 다른 네트워크 모델에도 대응할 수있는 유연성을 가진다. 따라서 CNN이 향하고있는 이미지 인식뿐만 아니라 LSTM과 RNN을 사용 음성이나 자연 언어 등 다양한 인식 처리에 사용하는 것이 가능하고, 향후 새로운 NN에도 대응할 수있다.

 Arm ML은 전력 효율을 높이기 위해 데이터 정확도는 INT8 (8-bit 정수) 만하고, 부동 소수점 연산은 지원하지 않는다. 유연한 처리를 위해, 적화 유닛 (Multiply-Accumulate : MAC) 어레이와 MAC 확장 한 프로세서의 2 개의 유닛을 구비한다. 인화 렌스의 전력 효율 향상의 핵심 "가지 치기 (Pruning : 전정)"하드웨어에서 지원하고 정리하여 압축 된 데이터를 저장하는 SRAM을 포함한다. 여러 컴퓨팅 엔진의 구성으로 확장 가능하게하기위한 제어용 동기화 유닛 (Sync Unit)를 포함한다.

 한마디로 말하자면, Arm ML은 현재의 NPU 중에서는 최첨단 기능과 성능을 갖추고있다. 예를 들어, 가지 치기는 메모리 압축뿐만 아니라 컴퓨 테이션의 압축도 지원한다. 성능 범위에서 "iPhone X / 8"가 내장 NPU "Neural Engine"은 600 GOPS (Giga Operations Per Second)에서 Arm ML의 최대 구성은 7 배 이상이된다.

 그러나 Arm ML은 올해 (2018 년) 중반 소프트 매크로 인 RTL (Register Transfer Level)의 출시이기 때문에 Arm ML 탑재 칩의 등장은 2019 년경이다. 2019 년 NPU로는 표준 레인지의 성능과 기능이 될지도 모른다.

정리에 하드웨어 인식 MAC 컨볼 루션 엔진

 Arm ML 프로세서는 연산 코어 '컴퓨팅 엔진 (Compute Engine)'을 중심으로 구성되어있다. Arm ML은 최대 16 개까지의 컴퓨팅 엔진으로 구성 할 수있다. 각 컴퓨팅 엔진은 128 개의 8-bit 적화 유닛 (Multiply-Accumulate : MAC)를 갖춘 어레이 "MAC 컨볼 루션 엔진 (MAC convolution engine) '와 16-way의 MAC 유닛을 갖춘 프로세서 「프로그래머블 레이어 엔진 (Programmable layer engine : PLE) "을 포함한다.

Arm ML 프로세서 코어의 전체 구성
컴퓨팅 엔진의 개요

 Arm ML은 ML 프로세서 전체를 제어하는 ​​MCU 인 제어 장치가 각 컴퓨팅 엔진에 작업에서 작업을 파견한다. 컴퓨팅 엔진 끼리는 브로드 캐스트 네트워크에 연결되어 있으며, 동기화 장치가 컴퓨팅 엔진 간의 동기화를 제어한다. 호스트 인터페이스는 ACE-Lite에서 CPU와 I / O 일관성을 가지고 간다. 즉, Arm ML 코어 CPU 코어의 캐시를 스눕 수 있지만, 그 반대는 할 수 없다.

 개별 컴퓨팅 엔진은 데이터를 저장하는 용량이 구성 가능 SRAM을 포함한다. "무게 (무게 : weight)"데이터의 저장과 '활성화 (activation) "데이터의 저장과 처리는 내부 SRAM에서 행한다. 컴퓨팅 엔진 내에서 피쳐 맵로드 유닛이 SRAM에서지도를 읽고 웨이트 디코더 (Weight decoder)를 정리하여 압축 된 무게 데이터를 읽고 디코딩을 수행한다.

제로 값의 데이터를 압축하여 필요한 메모리 용량을 줄이기
피쳐 맵과 웨이트의 압축에 의해 전력을 대폭 저감 할 수
인화 렌스 프로세서의 효율성의 핵심 정리
데이터의 공유에서 불필요한 메모리 읽기를 감소

 데이터는 연산 어레이 인 MAC 컨볼 루션 엔진에 보내진다. MAC 컨볼 루션 엔진은 1D의 벡터 구성의 MAC 유닛 배열되어있다. NN의 2D 매트릭스 연산이 1D 배열에 매핑되는 점은 GPU (Volta 이외)의 구현과 비슷하다. NPU에 많은 2D 어레이 구성이 아닌 것은 가지 치기에 대한 하드웨어 지원을 촉진하기 위하여지도 모른다.

 MAC 어레이는 인풋과 아웃풋은 8-bit하지만 내부 정밀도는 확장하고있다. 8-bit하고있는 것은 현재 NN 도구에서 인화 레퍼런스 용으로 지원되는 정밀도의 주류가 8-bit이다 때문이라고한다. MAC 배열은 룩업 테이블을 사용하는 것으로, 정리 된 부분의 연산을 건너 뛰고 빈 연산 슬롯을 채우기에 연산 처리량을 올리는 구조를 갖추고있다. 따라서 Arm ML의 ML 성능은 액면가의 연산 성능 이상으로 높아진다. Arm ML의 MAC 어레이 및 정리 대응에 대해서는 다른 글에서 좀 더 자세히 설명하고 싶다.

다용도 프로세서 PLE도 탑재

 Arm ML 컴퓨팅 엔진은 MAC 배열과는 별도로 프로그램 레이어 엔진 (Programmable layer engine : PLE)라고 부른다 마이크로 컨트롤러를 포함한다. PLE의 실체는 Arm의 MCU (마이크로 컨트롤러)를 기반으로 신경망을위한 확장 엔진을 추가 한 프로세서이다. 벡터 명령과 NN위한 명령을 추가하고, 16 레인의 벡터 엔진을 갖추고있다. PLE는 MAC 배열에서 독립적 인 프로세서이며, 전용 SRAM 워킹 메모리도 내장한다.

컴퓨팅 엔진에 탑재 된 PLE
임베디드 프로세서를 확장 한 PLE 아키텍처

 PLE는 한마디로 신경망 속에서 MAC 어레이에 적합하지 않은 모든 작업을 행하는 장치이다. NN 풀링 및 활성화의 제어 또한 가지 치기 등에 의한 압축 데이터 실행 제어 등을 PLE가 행한다. NPU는이 부분을 전용 하드 와이어 해지고있다 프로세서도 있지만, Arm은 프로그래머블 프로세서함으로써 유연성을 갖게했다. 컴퓨팅 엔진을 제어하는 ​​마이크로 컨트롤러에 NN 연산 기능까지 갖게 한 것이 PLE이라고 볼 수있다.

 Arm ML 전체 디자인을 보면 이미지 인식 CNN을 초기 목표로 개발 된 것으로 보인다. 하지만 PLE를 위해 다른 신경망 모델에 유연하게 대응할 수있다. 이것은 어떤 모델이 유행할지 예상이 어려운 현재의 ML에서 중요한 기능이다. 그러나 현재 인화 렌스 NPU는 다른 신경망 모델에 대한 유연한 대응을 진행하고 있기 때문에, Arm ML이 등장 할 무렵에는 다른 NPU도 비슷한 유연성을 갖추고있을 가능성이있는 .

Arm 기계 학습 솔루션을 보조하는 OD 프로세서

 Arm은 기계 학습 일반 Arm ML 프로세서의 도입과 동기화하여 객체 인식 전용 "개체 디텍션 (Object Detection : OD) 프로세서」도 개정한다. Arm은 OD 프로세서를 이미 출시하고 있으며, Hive와 Hikvision의 보안 카메라에 내장 코어로 채용되고있다. Arm은 Arm ML 동시에 OD 프로세서도 제 2 세대로 강화하여 Arm ML과 ​​조합 구성을 가능하게한다.

실시간 성이 높은 OD 프로세서
Arm ML 나 GPU의 조합도 가능

 OD 프로세서는 이미지와 동영상 속에서 사람이나 얼굴, 자동차 나 도로 표지판 등을 확인한다. 객체 탐지 ​​전문함으로써 실시간으로 정확한 디텍션을 가능하게한다. Arm ML과 ​​함께 예를 들어, 동영상 속에서 OD 프로세서가 얼굴을 인식하고, ML 프로세서가 사람의 얼굴을 인식하고 있습니다.

 2 세대 OD 프로세서는 풀 HD 60 프레임의 동영상 속의 군중에서 실시간으로 개별 얼굴 부분을 감지하는 등의 처리가 가능해진다. 개체 크기는 50x60 픽셀까지 Arm ML과 ​​함께 개체 탐지를 Arm ML에서 오프로드하여 Arm ML의 NN을 고도화시킬 수있다.

ML위한 소프트웨어 스택도 정비

 Arm은 급속히 기계 학습에 대한 대응을 진행하고있다. CPU에서는 Cortex-A 시리즈에 기계 학습을 지원하기위한 내적 (dot product) 명령을 추가합니다. GPU에서도, 최근 내적 명령을 추가 ML 성능을 대폭 향상시켰다. 이번 ML 전용 Arm ML을 투입하여 Arm은 ML 내용은 CPU와 GPU, NPU의 세 가지 솔루션을 나란히하게된다. 각각 성능 범위와 형상 및 전력 효율성이 크게 다르다. 인화 컨퍼런스에서 에너지 효율이 가장 높은 것은 Arm ML하지만 교육도 장치 측에서 수행하게되면 CPU와 GPU 쪽이 적합하다고 생각된다.

 예상 Arm ML의 구현 패턴으로 먼저 스마트 폰과 태블릿 용 모바일 SoC에 도입 생각할 수있다. CPU와 GPU 이외에 제 3의 프로세서로 Arm ML NPU 코어가 탑재되는 경우 다. ML 워크로드의 전력 효율이 매우 높은 Arm ML 코어로 오프로드하여 기계 학습에 의한 인식 처리를 용이하게한다.

 또한 Arm ML은 공간 구성도 가능하기 때문에, IoT를위한 내장 칩에 탑재가 예상된다. Arm ML의 최대 구성의 성능 범위는 향후 자동차도 시야에 넣을 수있다. 서버 사이드의 인화 레퍼런스 용으로는 에너지 효율성이 무기가된다.

 또한 Arm은 기계 학습을위한 소프트웨어 스택도 서비스한다. Arm의 ML 솔루션에 최적화 된 라이브러리를 제공함으로써 기존의 프레임 워크이다 TensorFlow 및 Caffe / Caffe2, mxnet 또는 Android NNAPI에서 투명하게 Arm이나 파트너의 ML 하드웨어에 액세스 할 수 있도록한다.

Arm의 ML 솔루션을 어느 정도 추상화 라이브러리를 제공
Arm의 이기종 (Heterogeneous : 이종 혼합) 한 ML 솔루션을 지원하는 소프트웨어 스택
Arm 종합 기계 학습 솔루션
Android의 NNAPI 지원
결국 런타임 최적의 하드웨어를 선택할 수 있도록하는

https://pc.watch.impress.co.jp/docs/column/kaigai/1123327.html



+ Recent posts