LibTorch JIT 추론 최적화: InferenceMode부터 Executor 설정까지 한눈에!

Bean·2025년 6월 12일
0

인공지능

목록 보기
49/123

PyTorch C++ (LibTorch)을 사용할 때, JIT 기반의 추론 성능을 최적화하거나 실행 경로를 제어하고 싶다면 꼭 알아야 할 설정들이 있습니다.
이 글에서는 다음과 같은 핵심 함수 및 옵션들이 각각 어떤 역할을 하는지, 언제 사용해야 하는지를 쉽게 정리해드립니다.


✅ 1. c10::InferenceMode guard(true);

🔧 역할

PyTorch 연산을 추론 모드(Inference Mode)로 설정합니다.
이 모드에서는 Autograd와 관련된 모든 context를 비활성화하여 메모리와 연산 오버헤드를 줄입니다.

🚀 효과

  • torch::NoGradGuard보다 더 빠르고 가볍습니다.
  • 추론 전용 코드라면 무조건 사용하는 것이 좋습니다.

💡 사용 예

c10::InferenceMode guard(true); // enables inference mode

✅ 2. torch::jit::getProfilingMode() / setProfilingMode(bool)

🔧 역할

JIT의 ProfilingExecutor 사용 여부를 설정합니다.
true로 설정하면 JIT이 입력을 여러 번 관찰하여 최적화 가능한 실행 그래프를 자동으로 구성합니다.

⚠️ 주의사항

  • true: 초기 실행 시 "warm-up"이 필요해 성능 저하 가능
  • false: 고정된 실행 경로 → 초기 실행이 빠르지만 덜 유연함

💡 사용 예

torch::jit::setProfilingMode(false);

✅ 3. torch::jit::getExecutorMode() / setExecutorMode(bool)

🔧 역할

어떤 종류의 Executor를 사용할지 지정합니다.

  • true: ProfilingExecutor (동적 최적화)
  • false: SimpleExecutor (단순 실행, 빠른 초기 성능)

📊 비교표

모드설명초기 속도
true (기본값)ProfilingExecutor, 동적 최적화느릴 수 있음
falseSimpleExecutor, 고정 실행 경로빠름

✅ 4. torch::jit::setGraphExecutorOptimize(bool)

🔧 역할

TorchScript 그래프에 대한 정적 최적화 여부를 제어합니다.
예를 들어, 그래프 fusion, dead code 제거 등 고급 최적화 기능을 켜거나 끌 수 있습니다.

💡 사용 예

torch::jit::setGraphExecutorOptimize(false);

⚠️ 사용 팁

  • true: 성능 최적화 목적
  • false: 디버깅이나 정확한 실행 경로 추적 시 유용

🧠 요약 비교표

설정기본값설명
c10::InferenceMode(true)없음추론 시 autograd 완전 비활성화
setProfilingMode(true)여러 번 실행하며 입력 특성 분석
setExecutorMode(true)ProfilingExecutor 사용
setGraphExecutorOptimize(true)TorchScript 그래프 정적 최적화 실행

🧪 실전 예시: 빠른 추론을 위한 설정 조합

다음은 추론 성능 향상 및 디버깅을 위해 자주 사용되는 설정 조합입니다:

c10::InferenceMode guard(true);  // 추천: Autograd 완전 비활성화
torch::jit::setProfilingMode(false);  // 실행 경로 고정
torch::jit::setExecutorMode(false);   // SimpleExecutor 사용
torch::jit::setGraphExecutorOptimize(false);  // 디버깅 시 유용

📝 마무리

LibTorch의 JIT 추론은 다양한 설정을 통해 성능과 안정성의 균형을 맞출 수 있습니다.
프로덕션에서는 빠른 추론을 위해 최적화된 설정을, 개발 및 디버깅 시에는 실행 경로를 고정하거나 단순화하는 것이 좋습니다.


profile
AI developer

0개의 댓글