GPU를 절대 차단하지 마세요! 새로운 @modal 블로그 게시물에서는 AI 추론의 비효율성 중 주요한 부분인 호스트 오버헤드에 대해 살펴보겠습니다. 우리는 @sgl_project와 협력하여 호스트 오버헤드를 줄이고 GPU 정지를 방지한 세 가지 사례를 포함했습니다. 1마이크로초도 중요합니다. https://t.co/ZeumrZpSKE
추론에 대해 말씀드리자면, 저는 GPU를 큰 배에, CPU를 항해사에 비유하고 싶습니다. 항해사는 배에게 어디로 가야 할지 알려줘야 합니다. 만약 배가 멈춰 서서 항해사가 다음에 무엇을 해야 할지 지시할 때까지 기다린다면, 그건 정말 나쁜 일입니다! 자원과 시간을 낭비하는 겁니다.
AI 추론에서 호스트 오버헤드가 발생하는 주요 원인은 CPU와의 불필요한 동기화로, 보트가 항해자를 기다리게 됩니다.
@sgl_project와 같은 프로덕션 엔진은 호스트/장치 동기화의 가장 명백한 사례를 피합니다. 우리는 약간의 영리함으로 동기화를 피할 수 있는 두 가지 특별한 사례를 발견했습니다. - 장치에 일부 위치 임베딩 구성 - 호스트에서 일부 KV 캐시 페이지 길이를 다시 계산합니다.
여기의 PR: hgithub.com/sgl-project/sg… github.com/sgl-project/sg…
호스트 오버헤드를 줄이는 또 다른 주요 방법은 커널을 _융합_하는 것입니다. 즉, 여러 개의 별도 GPU 커널 실행을 하나로 바꾸는 것입니다. 각 발사로 인한 오버헤드는 불과 1마이크로초 정도이지만, 모든 마이크로초가 중요합니다!
우리는 소규모 VLM에서 큰 커널 실행 오버헤드를 갖는 특정 op를 파악했습니다. 이는 우리가 훨씬 더 많이 배포하는 것을 보고 있는 것입니다(참고: @Alibaba_Qwen). 그래서 우리는 @PyTorch 컴파일러를 사용하여 커널을 자동으로 융합했고, 실행 시간을 40us에서 5us로 단축했습니다.
자세한 내용은 이 PR에서 확인하세요github.com/sgl-project/sg…th
토치 컴파일은 일반적으로 추론 지연 시간을 빠르게 줄이는 데 매우 유용합니다. 이에 대해서는 여기에 적혀 있습니다. https://t.co/MN072QDXzz
아직도 깎아야 할 마이크로초가 많이 남았고 최적화되지 않은 CPU 코드의 족쇄로부터 GPU를 보호해야 할 때도 많습니다! 하지만 @modal 팀은 고객이 대화형 AI 애플리케이션을 제공하는 데 도움이 되는 진전을 이미 이루었다는 점에 매우 기쁩니다. 블로그를 여기에서 읽어보세요: https://t.co/ZeumrZqqAc



