피드로 돌아가기
Accelerating Stable Diffusion Inference on Intel CPUs
Hugging Face BlogHugging Face Blog
AI/ML

Intel이 Sapphire Rapids CPU에서 OpenVINO, IPEX, AMX 가속기를 조합해 Stable Diffusion 추론 레이턴시를 32.3초에서 5.05초로 84% 단축

Accelerating Stable Diffusion Inference on Intel CPUs

2023년 3월 28일8intermediate

Context

Stable Diffusion 모델은 다중 기가바이트 규모의 대형 모델로 CPU 기반 추론 시 높은 레이턴시를 가지고 있다. Intel Xeon Sapphire Rapids는 새로운 하드웨어 가속 기능을 제공하지만 기본 설정에서는 이전 세대 Ice Lake 대비 32.3초 대 45초 수준의 개선만 제공한다.

Technical Solution

  • OpenVINO를 통한 모델 포맷 변환: PyTorch 모델을 OpenVINO 포맷으로 변환하고 bfloat16 자동 최적화 적용 (2배 가속)
  • 고정 해상도 재구성: 동적 입력 형태를 512x512 고정 해상도로 reshape해 추가 3.5배 가속
  • Intel Extension for PyTorch(IPEX) 적용: 모델 그래프를 최적화하고 bfloat16 데이터 타입으로 변환
  • AMX 타일 매트릭스 곱셈 유닛(TMMU) 활성화: torch.cpu.amp.autocast로 bfloat16 혼합 정밀도 계산 활성화 (2배 이상 가속)
  • DPMSolverMultistepScheduler 적용: 추론 스텝 수를 20으로 유지하면서 denoising 스케줄러 변경으로 추가 가속
  • jemalloc 시스템 라이브러리 설치: 기본 메모리 할당 라이브러리를 고성능 라이브러리로 교체

Impact

  • OpenVINO 적용: 32.3초 → 16.7초 (2배 가속)
  • OpenVINO + 고정 해상도 reshape: 16.7초 → 4.7초 (3.5배 추가 가속)
  • IPEX + AMX 활성화: 11.9초 → 5.4초 (2배 이상 가속)
  • 최종 최적화(IPEX + AMX + DPMSolverMultistepScheduler): 32.3초 → 5.05초 (6.5배 가속)
  • Sapphire Rapids + 최적화 대 Ice Lake + 기본 설정 비교: 약 10배 성능 향상

Key Takeaway

CPU 기반 생성형 AI 추론 최적화는 단일 기법보다 OpenVINO(포맷 변환) + 고정 형태 최적화 + IPEX(그래프 최적화) + AMX 가속기 + 알고리즘 수준 최적화(스케줄러 변경)의 조합을 통해 8배 이상의 누적 성능 향상을 달성할 수 있다.


CPU 기반 Stable Diffusion 배포 환경에서 OpenVINO 변환 후 응용 프로그램의 해상도를 고정하고, IPEX와 torch.cpu.amp.autocast(dtype=torch.bfloat16)로 AMX 가속기를 활성화한 뒤, DPMSolverMultistepScheduler를 적용하면 30초대 레이턴시를 5초 이하로 단축할 수 있다.

원문 읽기