15P by ninebow 2023-09-10 | favorite | 댓글과 토론

지난 몇 년간 GPU 속도가 폭발적으로 증가하며 딥러닝 워크로드의 최적화 방법 또한 변화하고 있습니다. PyTorch에서도 torch.compile()과 같이 최적화 기능들을 추가하고 있지만, LLM을 비롯한 일부 워크로드에서는 개선이 진행 중입니다.

(torch.compile()의 개선을 기다리는 동안) 바로 적용할 수 있는 최적화 방법인 CUDA Graph를 소개하고 적용한 글을 발견하여 번역해보았습니다. (⚠️주의: 글 말미에 원문을 작성한 LLM 추론 플랫폼 개발/서비스 기업 Fireworks.ai의 홍보가 일부 포함되어 있습니다.)

이 글에서는 아래와 같은 순서로 CUDA Graph을 소개하고 있습니다:

  • 기존의 최적화 방법인 CPU/GPU 중첩(overlap)에 대한 소개

  • CPU 오버헤드가 발생하는 구간들

  • CPU 오버헤드 최적화를 위한 기법들 및 CUDA Graph

  • LLaMA2-7B 모델에 CUDA Graph 적용 사례 소개

  • CUDA Graph로 인한 성능 이득 소개

  • 부록: 현 시점(PyTorch 2.0.1)에서의 torch.compile() 사용 시의 이슈와 해결 방법