Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
개발자

"마침내 약속 지켰다" MS, '엔드투엔드' ARM 개발 환경 공개

Simon Bisson | InfoWorld 2022.11.01
오래 걸리긴 했지만 마이크로소프트가 마침내 ARM 기반 윈도우를 위한 일체의 개발자 툴 모음을 제공한다는 약속을 지켰다. 하드웨어부터 소프트웨어까지, ARM 전용 플랫폼 기능에 대한 지원도 포함된다. 시기적으로도 딱 맞다. 최신 세대의 서피스(Surface) 기기에서는 인텔 i7과 같은 하드웨어에 마이크로소프트의 퀄컴 기반 SQ3 프로세서가 탑재되기 때문이다.
 
ⓒ Getty Images Bank

ARM에 초점을 둔 마이크로소프트 전략에서 가장 흥미로운 부분은 윈도우에 들어가는 머신러닝 기반 애플리케이션과의 연동이다. 마이크로소프트는 서피스를 발표하면서 SQ3의 신경망 처리 장치(NPU)를 사용한 실시간 오디오 및 비주얼 처리, 사전 학습된 모델을 사용한 배경 흐림 및 잡음 제거 기능을 시연했다. 마이크로소프트에 따르면 SQ3 NPU는 초당 15조 번의 연산을 실행할 수 있다고 하니, 개발자가 코드에서 활용할 수 있는 여지도 그만큼 풍부하다. CPU에서 모델을 실행하는 경우에 비해 80~90배, GPU보다는 20배 더 빠른 속도다.
 

신경망 처리로 AI 가속화

NPU는 윈도우에서 보면 새롭지만 하이퍼스케일 클라우드에서는 핵심적인 요소다. 자체 NPU를 탑재한 ARM 시스템 온 칩은 마이크로소프트 CEO 사티아 나델라가 말하는 “인텔리전트 엣지”의 중요한 부분이다. 마이크로소프트는 인텔 NPU 하드웨어와 NXP ARM 프로세서를 사용하는 애저 퍼셉트(Azure Percept) IoT 어플라이언스에서 이미 이와 같은 구성을 실현했다. 클라우드에서 머신러닝 모델을 구축, 학습한 다음 표준 형식으로 내보내고 NPU 하드웨어를 활용하는 로컬 런타임에서 실행하는 방식이다.

마이크로소프트의 자체 모델은 그렇다 치고, 우리가 직접 모델을 만들려면 어떻게 해야 할까? 아직 확실치 않은 부분도 남아 있지만 전체적인 그림은 대부분 드러났다.

먼저 비용 부담이 낮은 개발자 하드웨어로 시작해야 한다. ARM 기반 서피스 프로 9와 그 전의 서피스 프로 X는 우수한 하드웨어지만 고급형 개인용 기기로 만들어졌기 때문에 개발자 하드웨어로는 썩 적합하지 않다. 마이크로소프트도 이 부분을 인식하고 올해 초 빌드(Build)에서 ARM 기반 개발자 하드웨어인 '프로젝트 볼테라(Volterra)'를 발표했다.
 
프로젝트 볼테라 ⓒ Microsoft

이 하드웨어는 몇 차례의 공급망 관련 지연 이후 현재 599달러의 저렴한 가격에 윈도우 데브 키트(Dev Kit) 2023이라는 이름으로 판매되고 있다. 스냅드래곤 8cx Gen 3 프로세서와 32GB RAM, 512GB 스토리지를 탑재했다. 5G 연결은 없지만 ARM 기반 윈도우 디바이스에 사용되는 모바일 하드웨어의 변형을 사용한 ARM 기반 NUC라고 생각하면 된다.

이 제품은 적층이 가능하게 디자인됐으므로 개발자는 책상에 두 대 이상의 기기를 두고 더 쉽게 코딩, 빌드, 테스트할 수 있다. 성능과 저장 용량은 비주얼 스튜디오 인스턴스와 테스트를 실행하기에 충분하다. 더 복잡한 작업은 애저에서 실행되는 암페어 알트라(Ampere Altra) 서버에 맡기면 된다.
 

윈도우의 NPU

마이크로소프트는 NPU를 윈도우의 미래로 제시하는 만큼 이와 같은 ARM 기반 시스템과 같은 NPU 중심의 개발 플랫폼이 필요하다. 퀄컴은 AI 엔진 NPU에 대해 29 TOPS를 주장하며, “얇고 가벼운 노트북에서 실행되는 클라우드급 모델”을 지원한다고 말한다. 이러한 작업을 CPU에서 NPU로 넘기면 8개의 ARM 코어와 GPU에서 NPU 출력을 사용하고 렌더링해서 애플리케이션의 응답성을 유지할 수 있다. 마이크로소프트가 최근 서피스 발표 행사에서 시연한 샘플 애플리케이션은 이 방식이 실제로 어떻게 작동하는지를 보여줬다. SQ3의 NPU가 복잡한 오디오와 비디오 작업을 관리하고, 결과는 기존 카메라 애플리케이션을 통해 합성되어 팀스(Teams)와 같은 툴에 표시된다.

마이크로소프트 NPU 지원의 중심은 이식 가능한 신경망 형식인 ONNX(Open Neural Network Exchange)다. ONNX를 사용하면 애저 머신러닝 플랫폼의 컴퓨팅 역량을 활용해 모델을 구축하고 학습시킨 다음 내보내 윈도우 기기에서 윈도우 ML 또는 ML.NET API를 통하거나 퀄컴 뉴럴 프로세싱 SDK를 사용해 직접 로컬로 실행할 수 있다.

현재 윈도우 ARM 기기는 NPU에 액세스하려면 퀄컴 툴을 사용해야 한다. 마이크로소프트와 퀄컴이 AI 엔진 API를 위한 다이렉트컴퓨트(DirectCompute) 래퍼에서 손을 잡는다면 윈도우 ML과 ML.NET을 지원할 가능성이 높지만, 현재로서는 퀄컴 기반 ARM 기기 또는 인텔 하드웨어에서 ONNX를 실행하려면 별도의 애플리케이션 버전을 빌드해야 한다. 퀄컴에 최적화된 .NET ONNX 런타임 라이브러리 버전은 이미 있으므로 고수준 툴에서 비교적 쉽게 구현할 수 있을 것이다.

마이크로소프트와 퀄컴은 윈도우 데브 키트 2023 하드웨어에서 NPU 애플리케이션을 만들 수 있는 일체의 툴체인을 제공한다. 비주얼 스튜디오 2022의 ARM 빌드가 프리뷰 버전으로 제공되고 ARM에 최적화된 .NET 7 릴리스도 예정돼 있다. 또한 스냅드래곤 뉴럴 프로세싱 엔진(SNPE)이라는 예전 이름으로 자주 언급되는, AI용 퀄컴 뉴럴 프로세싱 SDK의 비공개 윈도우 릴리스에 등록할 수 있다.
 

윈도우 데브 키트 하드웨어에서 NPU 애플리케이션 만들기

8cx AI 엔진 NPU에서 모델을 실행하는 방법은 간단하지는 않다. 최적화된 사전 학습된 모델에서 ONNX 파일을 생성하려면 퀄컴 NPU 툴의 리눅스와 윈도우 버전이 모두 필요하다. 윈도우 11과 WSL2가 ARM 바이너리를 지원하므로 데브 키트 시스템에서 이런 작업을 할 수 있다. 먼저 우분투 WSL 환경을 설정한 다음 퀄컴 툴을 설치하고 리눅스 환경에서 이를 사용하도록 구성하면 된다. 물론 아무 우분투 시스템이나 사용하면 된다. 복잡한 모델의 경우 애저 ARM 인스턴스를 사용해 모델을 처리하는 편이 나을 수 있다. 

먼저 리눅스 시스템에 파이썬 3를 설치한 다음 깃허브에 나온 안내에 따라 pip를 사용해 ONNX 툴을 설치한다. 이제 SNPE 툴을 설치할 수 있다. 먼저 압축된 배포 파일을 디렉터리에 풀고 SNPE의 종속성 검사기를 실행해 SDK를 실행하는 데 필요한 모든 요소가 준비되었는지 확인한다. 모든 사전 요건을 갖췄다면 구성 스크립트를 사용해 ONNX와 함께 사용하기 위한 환경 변수를 설정한다. 

이제 퀄컴 NPU와 함께 사용하기 위한 기존 ONNX 모델을 처리할 준비가 됐다. 모델과 샘플 파일을 레이블 데이터와 함께 다운로드한다. 마이크로소프트가 사용하는 예제는 이미지 인식기이므로 ONNX 모델을 SNPE의 내부 DLC 형식으로 변환하기 전에 샘플 이미지를 전처리하기 위한 SNPE 툴이 필요하다. 이 프로세스가 완료되면 SNPE를 사용해 모델을 양자화한 다음 코드에서 사용할 준비가 된 ONNX로 래핑된 DLC 파일을 내보낸다. 

WSL에서 윈도우로 ONNX 파일을 복사한다. 이제 누겟(Nuget)에서 Microsoft.ML.OnnxRuntime.Snpe 패키지를 설치할 수 있다. 기존 마이크로소프트 ONNX 런타임 툴의 최적화된 버전이므로 비교적 간단히 기존 코드에 추가하거나 새 앱에 빌드해 넣을 수 있다. 필요하다면 예제 윈도우 SNPE 리포지토리의 이 C# 코드는 기본적인 콘솔 애플리케이션에서 샘플 ONNX 모델을 사용하는 데도 도움이 될 것이다. 

퀄컴의 머신 러닝 툴과 마이크로소프트 ARM 플랫폼 조합은 1세대 윈도우 NPU 하드웨어를 위한 코드를 빌드하는 데 충분하다. 윈도우 11에 포함된 마이크로소프트의 자체 NPU 기반 비디오 및 오디오 기능에서 코딩을 위한 아이디어를 얻을 수 있겠지만 하드웨어 신경망 가속기로 할 수 있는 일은 많다. 예를 들어 어도비 크리에이티브 툴에 사용되는 것과 같은 이미지 처리 툴의 속도를 높이거나, 네트워크 엣지의 윈도우 11 IoT 엔터프라이즈에서 실행되는 NPU 가속 ARM 하드웨어를 사용해 데이터를 애저 IoT 허브로 보내기 전에 전처리할 수 있다. 

지금은 새로운 방향의 윈도우에 있어 초기 단계다. 마이크로소프트가 상단 기간 내부적으로 사용해온 툴이 이제 완전히 공개된 만큼 책상 위와 엣지, 클라우드에서 새로운 세대의 ARM 기반 윈도우 시스템을 활용할 수 있다.
editor@itworld.co.kr
 Tags ARM
Sponsored
IDG 설문조사

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.