Huny's Dev Blog

huny.dev
libtorch_cpu arm64 build

libtorch_cpu arm64 build

ARM64용 LibTorch v2.0.0 CPU-only 빌드 튜토리얼. Amazon Linux 2023에서 의존성 설치, cmake 구성, Lite Interpreter 최적화와 XNNPACK/QNNPACK 활성화, 배포 구조 정리.

Hun Jang
Hun Jang Oct 10, 2025


아마존 리눅스 2023 aarch64에서 LibTorch v2.0.0CPU-only + Lite Interpreter로 빌드한 기록이다. 배포 zip(libtorch-shared-with-deps-…)과 동일한 레이아웃은 cmake --install로 만든다.

대상 환경

  • OS: Amazon Linux 2023 (aarch64)
  • 인스턴스: c6g, c7g 권장
    • c6g: Graviton2, Arm Neoverse N1
    • c7g: Graviton3, 더 높은 단일·다중 스레드 성능
    • 메모리 16GB 이상, 스왑 8–16GB 확보 권장

버전 고정

  • PyTorch/LibTorch: v2.0.0
  • Python: 3.8–3.11 중 하나. 여기서는 3.9 사용

빌드 로그(명령)

산출물 구조

  • DCMAKE_INSTALL_PREFIX="$PWD/out/libtorch"로 설치되며 다음과 같이 정리된다.

기존 CMake 프로젝트는 CMAKE_PREFIX_PATH=/abs/path/to/out/libtorch 지정 후 find_package(Torch REQUIRED)로 그대로 쓴다.

옵션 해설(요지)

  • DBUILD_PYTHON=OFF
    • 파이썬 패키지 생략. C++ 배포 전용.

  • DBUILD_LITE_INTERPRETER=ON
    • 모바일 러ntime 경량화. 첫 호출 지연 및 메모리 사용 축소.

  • DUSE_CUDA/ROCM/MPS/NCCL/DISTRIBUTED=OFF
    • GPU·분산 비활성. CPU-only 보장.

  • DUSE_XNNPACK=ON -DUSE_QNNPACK=ON
    • Arm용 연산 최적화 활성. Android와 유사한 실행 특성.

  • DUSE_MKLDNN=OFF
    • Intel oneDNN 비활성. Arm 환경에서 불필요.

  • DUSE_OPENMP=ON
    • 멀티스레딩 사용.

  • DBUILD_SHARED_LIBS=ON
    • 공유 라이브러리로 배포.

  • DCMAKE_INSTALL_RPATH='$ORIGIN/../lib'
    • 실행 시 상대 경로로 lib/를 찾게 함. 배포 편리.

메모

  • 첫 추론 지연을 줄이려면 TorchScript + optimize_for_mobile + channels_last로 모델을 사전 최적화한 후 사용하면 효과가 크다.
  • ninja -C build install만으로 배포 zip과 유사한 libtorch/ 레이아웃을 재현한다.
  • c7g가 c6g 대비 지연·처리량 모두 유리했다. 예산 허용 시 c7g를 기본값으로 삼는다.

You might also like

BlogPro logo
Made with BlogPro