SwiftFusion: Scalable Sequence Parallelism for Distributed Inference of Diffusion Transformers on GPUs
본 논문은 최신 방법 대비 최대 1.77 배의 속도 향상을 달성하기 위해 지연 및 동기화 병목 현상을 극복하기 위해 새로운 토러스 어텐션과 일측 통신을 활용하는 확산 트랜스포머를 위한 토폴로지 인식 분산 추론 엔진인 StreamFusion 을 소개합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
거대한 다층 케이크(고품질 이미지 또는 비디오) 를 수천 개의 작은 단계가 필요한 레시피로 구워낸다고 상상해 보세요. AI 세계에서는 이 "케이크"가 **확산 트랜스포머 (Diffusion Transformer, DiT)**에 의해 생성됩니다.
문제는 케이크가 커질수록 (해상도가 높아지거나 비디오 길이가 길어질수록) 단일 주방 오븐 (단일 GPU) 이 작업량을 감당하지 못한다는 것입니다. 속도가 너무 느려지고 재료 (데이터) 가 너무 많은 공간을 차지하기 때문입니다. 그래서 우리는 여러 개의 오븐 (여러 GPU) 팀을 고용하여 함께 일하게 합니다.
그러나 오븐을 나란히 배치하는 것만으로는 부족합니다. 오븐들은 재료를 끊임없이 주고받아야 합니다. 만약 오븐들이 구워내는 시간보다 그릇을 주고받는 데 더 많은 시간을 보낸다면, 전체 과정이 느려집니다. 이것이 SwiftFusion이 해결하는 문제입니다.
다음은 해당 논문이 세 가지 주요 개념을 사용하여 그들의 해결책을 설명하는 방식입니다:
1. "고속도로 vs. 흙길" 문제 (토폴로지 인식 스케줄링)
당신의 오븐 팀이 두 그룹으로 나뉘어 있다고 상상해 보세요:
- A 그룹: 같은 주방에 있는 오븐들. 초고속이고 넓은 컨베이어 벨트 (인트라 머신 네트워크) 로 연결됨.
- B 그룹: 다른 건물에 있는 오븐들. 더 느리고 좁은 흙길 (인터 머신 네트워크) 로 연결됨.
이전 방법들은 무거운 작업을 위해 느린 흙길을, 가벼운 작업에는 빠른 컨베이어 벨트를 사용하려 했습니다. 이는 좁은 골목으로 거대한 소파를 옮기려는 것과 같아 교통 체증을 유발했습니다.
SwiftFusion 의 해결책: 그들은 전략을 뒤집었습니다.
- 빠른 컨베이어 벨트를 재료의 무겁고 지저분한 주고받기에 사용합니다 (Ring Attention).
- 느린 흙길은 대형 상자의 조직화된 대량 운송에만 사용합니다 (Ulysses Attention).
작업을 올바른 "길"에 매칭함으로써 느린 연결의 마비를 방지합니다.
2. "조립 라인" 트릭 (토러스 어텐션)
이전 방법들에서는 오븐들이 줄을 서서 기다려야 했습니다. 오븐 1 이 오븐 2 에게 그릇을 전달하고, 오븐 2 가 작업을 끝낼 때까지 기다린 후, 오븐 2 가 오븐 3 에게 전달하는 방식이었습니다. 이는 오븐들이 단순히 기다리는 많은 "유휴 시간"을 만들어냈습니다.
SwiftFusion 의 해결책: 이를 바쁜 조립 라인으로 바꿉니다.
전체 그릇이 도착하기를 기다렸다가 작업을 시작하는 대신, 그릇을 조각으로 나눕니다.
- 오븐 1 이 이웃으로부터 재료의 첫 번째 조각을 받자마자 즉시 해당 조각을 구워냅니다.
- 그 첫 번째 조각을 구워내는 동안, 동시에 두 번째 조각을 받습니다.
- 두 번째 조각이 도착할 때쯤이면 오븐은 즉시 그것을 구울 준비가 되어 있습니다.
이를 **토러스 어텐션 (Torus Attention)**이라고 합니다. 이는 배달 트럭이 나머지 농산물을 내리는 동안 셰프가 채소를 다지기 시작하는 것과 같습니다. "기다리는 시간" (통신) 과 "작업 시간" (계산) 을 겹쳐서 시간 낭비를 없앱니다.
3. "셀프 서비스" 배달 (일측 통신)
이전 시스템에서는 재료를 주고받기 위해 "악수"가 필요했습니다. 오븐 1 이 "나는 이것을 보내고 있다!"라고 외치면, 오븐 2 는 "받기 준비가 되었다!"라고 외쳐야 했습니다. 이 끊임없는 외침과 기다림은 많은 소음과 지연 (동기화 오버헤드) 을 만들어냈습니다.
SwiftFusion 의 해결책: NVSHMEM 이라는 특수 라이브러리를 사용하여 "셀프 서비스" 모델로 전환했습니다.
- 이제 오븐 1 은 허가를 구하지 않고도 오븐 2 의 카운터에 재료 트레이를 미끄러뜨릴 수 있습니다.
- 오븐 2 는 준비가 되면 언제든지 그 트레이를 가져갈 수 있습니다.
- 이로써 끊임없는 외침과 기다림이 필요 없어져 주방 전체가 훨씬 더 매끄럽게 운영됩니다.
결과
이 논문은 고해상도 이미지와 긴 비디오 생성에 이 새로운 시스템을 테스트했습니다. 그들은 이 세 가지 트릭을 사용함으로써 다음을 발견했습니다:
- SwiftFusion 은 현재 가장 좋은 방법들보다 평균적으로 1.35 배 더 빠릅니다.
- 최선의 경우, 1.77 배 더 빠릅니다.
- 더 많은 메모리 (재료) 가 필요한 것이 아니라, 재료를 이동하는 더 지적인 방식이 필요했을 뿐입니다.
요약하자면, SwiftFusion 은 "주방"을 더 잘 조직화하고, 오븐들이 기다리는 동안 작업하게 하며, 오븐들 사이의 불필요한 "악수"를 제거함으로써 AI 이미지 및 비디오 생성 속도를 높입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.