파이토치로 학습한 모델을 작은 기기에 배포하는 개발자는 다른 프레임워크 형식으로 바꾸는 단계를 없앨 수 있게 됐다. ExecuTorch의 새 백엔드는 Arm 마이크로컨트롤러의 CPU를 지원해, 신경망 가속기가 없는 기기에도 같은 도구 흐름으로 배포하도록 한다.
1. 모델 변환 대신 같은 도구 안에서 준비한다
기존 Arm 지원이 Ethos-U 신경망 가속기를 향했다면, 이번에는 Cortex-M CPU 실행 경로가 추가됐다. 다른 프레임워크로 옮기지 않는다는 뜻이지, 기기에 맞춘 내보내기와 수치를 작은 정수로 표현하는 양자화까지 생략한다는 뜻은 아니다.
백엔드는 실행 전에 모델의 연산을 Cortex-M용 최적화 연산 모음인 CMSIS-NN 호출로 바꾼다. 기본 명령어만 쓰는 코어부터 신호 처리 명령어와 벡터 연산을 지원하는 코어까지 겨냥하며, 코어별 연산 선택은 컴파일할 때 끝낸다.
2. 실행 비용을 사전 준비로 옮긴다
연산 연결 구조인 그래프의 최적화, 가중치 배치, 메모리 계획도 미리 수행한다. 모델이 계산하는 다차원 수치 배열인 텐서와 임시 버퍼의 자리를 정해 추론 중 텐서용 동적 메모리 할당을 없앤다. 실행 부담을 줄이는 대신 개발자는 목표 CPU와 명령어 지원, 메모리 용량을 알아야 하며, 필요하면 빠른 메모리에 놓을 데이터도 지정한다.
배포 순서는 내보내기, 보정 데이터를 이용한 양자화, 재내보내기, 기기용 연산으로 변환, 파일 저장이다. 전용 양자화기가 CMSIS-NN의 배치 요구에 맞는 8비트 정수 그래프를 만든다. 다음은 원문 예제의 내보내기 부분이다.
# 1. Export
model = MyModel().eval()
example_inputs = (torch.randn(1, 1, 49, 10),)
exported = torch.export.export(model, example_inputs)결과 파일을 런타임 및 CMSIS-NN 라이브러리와 함께 펌웨어에 넣으면 기기에서 미리 준비한 그래프를 실행한다.
3. 가속기가 처리하지 못한 연산도 이어서 실행한다
Ethos-U가 있는 기기에서는 지원 연산을 가속기에 넘기고 나머지는 같은 그래프 안에서 CPU가 맡는다. CPU 연산의 양자화·데이터 배치·형상 조건이 맞으면 CMSIS-NN으로 실행하고, 맞지 않으면 가속되지 않은 범용 커널, 즉 연산을 실제 실행하는 구현 코드를 쓴다. 일부 연산이 가속기에서 빠져도 배포 경로는 남지만, 그 구간까지 가속된다고 볼 수는 없다.
4. 같은 조건에서 지연 시간과 메모리를 본다
작성자들은 소형 기기용 추론 시험인 MLPerf Tiny의 다섯 모델 중 네 모델을 측정했다. 빠진 다섯 번째 시험은 연속 깨우기 단어 감지로, 여러 프레임을 추론할 시험 기반이 필요하다. 따라서 이번 단일 추론 수치가 연속 입력 작업까지 검증한 것은 아니다. 아래 표는 같은 하드웨어와 양자화 조건에서 모델별 지연 시간과 메모리 요구량을 보여 준다.
표: 네 모델의 추론 지연 시간과 메모리 사용량. 플래시 코드는 필요한 연산만 포함한 코드 크기, 플래시 총합은 모델까지 포함한 총량이다.
조건: Alif Ensemble E8, Cortex-M55 고성능 단일 코어 400 MHz, Ethos-U NPU 미사용, CortexMQuantizer로 INT8 양자화, Alif ML Embedded Evaluation Kit, 필요한 연산만 빌드, GCC 15.2.1, 코어 런타임 -Oz·커널 -O3, 로그 비활성화. 공식 제출이 아닌 자체 측정이므로 MLCommons 공개 순위 결과와 직접 비교할 수 없다.
단위: 지연 시간 ms, 메모리 KiB
| 모델 | 지연 시간 | 최대 RAM | 플래시 코드 | 플래시 총합 |
|---|---|---|---|---|
| DS-CNN | 5.825 | 26.00 | 36.03 | 73.70 |
| MobileNet v1 0.25 | 21.450 | 85.15 | 36.03 | 289.10 |
| ResNet-8 | 15.290 | 55.14 | 29.82 | 119.59 |
| 오토인코더 | 1.208 | 5.20 | 14.97 | 287.00 |
이 조건에서 네 모델은 모두 RAM 90 KiB 미만을 썼다.
5. 실제 기기에서는 메모리 배치도 성능을 바꾼다
조건: 사람 검출 데모, Renesas EK-RA8D1, Cortex-M85 480 MHz, INT8 µYOLO, 128×128 RGB 입력
최대 RAM은 254 KiB, 총 플래시는 640 KiB였다. 비용이 큰 연산의 가중치를 CPU에 밀접하게 연결된 데이터 메모리인 DTCM에 두고 명령어 캐시를 켜자 추론 지연 시간이 191 ms에서 24 ms로 줄었다.
데모의 전체 처리량인 초당 12.7프레임은 추론 시간과 구별해야 한다.
계산이나 가중치마다 서로 다른 비트 수를 쓰는 혼합 정밀도의 적용 범위 확대, 부동소수점 커널 연결, 추가 연산 지원과 하드웨어 검증은 후속 과제로 제시됐다.
이번 변화의 가치는 변환 도구를 줄이는 데 있으며, 실제 배포 성능은 목표 기기의 연산 지원과 메모리 배치를 함께 검토해야 판단할 수 있다.
