본문으로 건너뛰기

© 2026 Molayo

arXiv논문2026. 06. 09. 11:25

SNN-MLIR: NIR에서 Bare-Metal C로 뉴로모픽 SNN을 컴파일하기 위한 MLIR Dialect

요약

SNN 모델의 파편화 문제를 해결하기 위해 NIR을 기반으로 하는 새로운 MLIR dialect인 snn-mlir을 제안합니다. 이 툴체인은 학습된 SNN을 시뮬레이션 및 임베디드 타겟용 C11 코드로 변환하여 하드웨어 배포를 용이하게 합니다.

핵심 포인트

  • NIR 기반의 프레임워크 독립적 SNN 컴파일 브릿지 제공
  • 부동 소수점 및 양자화 데이터 모두 지원하는 타입 다형성 연산
  • 의존성 없는 C11 코드를 생성하여 임베디드 타겟 이식성 확보
  • Python 프런트엔드를 통한 자동 리스케일링 연산 삽입

스파이킹 신경망 (Spiking neural networks, SNNs)은 각각 고유한 모델 형식을 가진 다양한 프레임워크 (SnnTorch, Lava, Norse 등)에서 점점 더 많이 학습되고 있습니다. 뉴로모픽 중간 표현 (Neuromorphic Intermediate Representation, NIR)은 학습된 SNN 모델을 교환하기 위한 공통적이고 프레임워크에 독립적인 형식을 제공함으로써 이러한 파편화 문제를 해결합니다. NIR은 교환 문제를 해결하지만, 거기서 멈춥니다. NIR은 네트워크에 대한 설명을 제공할 뿐, 이를 실행하기 위한 경로를 제공하지는 않습니다. 각 백엔드 (backend)는 중간에 공유되거나 변환 가능한 컴파일러 표현 형식이 없는 상태에서 여전히 배포를 직접 구현해야 하는 상황에 놓여 있습니다.

본 논문은 NIR-MLIR-C 컴파일 브릿지와 함께 SNN을 위한 out-of-tree MLIR dialect인 snn-mlir을 제시합니다. 이 dialect는 부동 소수점 (f32/f64) 및 양자화 (quantized) 데이터 모두에서 동일하게 작동하는 작은 집합의 타입 다형성 (type-polymorphic) 연산을 제공하므로, 단일 중간 표현 (intermediate representation)이 시뮬레이션과 하드웨어 지향적 배포 모두에 사용될 수 있습니다. Python 프런트엔드 (front end)는 모든 NIR 파일을 읽어 dialect IR을 생성하며, 레이어 전반에 걸쳐 양자화 스케일 (quantization scales)을 일관되게 유지하기 위해 리스케일링 (rescaling) 연산을 자동으로 삽입합니다. 참조 로워링 패스 (reference lowering pass)는 해당 dialect를 표준 linalg 및 arith 연산으로 변환하며, 이 툴체인 (toolchain)은 C를 지원하는 모든 CPU 또는 임베디드 타겟에서 컴파일 및 실행 가능한, 독립적이고 의존성이 없는 C11 코드를 생성합니다.

우리는 참조 출력에 대한 수치적 충실도 (numerical fidelity), CPU 타겟 간의 이식성 (portability), 그리고 양자화 비용을 평가합니다. 현재 범위는 CPU 백엔드를 사용하는 피드포워드 (feedforward), 완전 연결 네트워크 (fully-connected networks)입니다. snn-mlir은 Apache-2.0 라이선스 및 LLVM-exception 하에 오픈 소스로 공개되었으며, 이미 Github에서 사용할 수 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0