본문으로 건너뛰기

© 2026 Molayo

llama.cpp헤드라인2026. 06. 27. 03:47

sched : 분할 계산 (split compute) 중 동기화(synchronizations) 감소 재도입 ([#20793](https://g

요약

llama.cpp 프로젝트에서 분할 계산(split compute) 시 발생하는 동기화(synchronization)를 줄이기 위한 최적화 작업이 도입되었습니다. CUDA 백엔드에서 비동기 복사 기능을 강화하여 토큰 간 동기화 오버헤드를 감소시키고 성능을 향상시킵니다.

핵심 포인트

  • CUDA 백엔드에서 비동기 복사(async copy) 도입을 통한 성능 향상
  • CPU-to-CUDA 복사 기능 추가 및 동기화 요구 사항 완화
  • Vulkan 등 다른 백엔드에서도 적용 가능한 동기화 단순화 구조 채택
  • hip/MUSA 백엔드 관련 스케줄러 강화 및 버그 수정

sched : 분할 계산 (split compute) 중 동기화(synchronizations) 감소 재도입 (#20793)

  • CUDA: 토큰 간 동기화 감소를 통해 성능 향상 (#17795)

  • ggml_backend_cuda_cpy_tensor_async()에 CPU-to-CUDA 복사 기능 추가

  • 지원되는 백엔드(현재는 CUDA)에서 입력 복사 간의 동기화 요구 사항을 완화하는 함수 추가

  • 동기식 복사(synchronous copy)를 비동기식 복사(async copy) 함수로 교체

  • 비-CUDA 빌드에서도 컴파일이 가능하도록 매크로 가드(macro guards) 추가

  • 링크 충돌(linking conflicts)을 방지하기 위해 ggml-backend.cpp의 백엔드 감지 로직 재작업

  • 링크 문제를 피하기 위해 백엔드 및 버퍼 유형에 대한 비동기 CUDA 복사 시의 체크 요구 사항을 버퍼 유형만 확인하도록 완화

  • 기타 소규모 정리

  • 명시적 동기화(explicit syncs) 완화에 대한 선택적 적용(opt-in)을 더 일반화함. HtoD 복사와 그래프 실행 간의 동기화가 필요한 Vulkan과 같은 백엔드도 이제 이 변경 사항을 채택할 수 있음.

  • GGML_DEVICE_TYPE_CPU를 통한 CPU->CUDA 백엔드 비동기 복사에 대해 더 엄격한 체크를 재도입

  • ggml_backend_sched_split 초기화 시 ggml_backend_sync_mode의 초기화 수정

  • saaasg 패턴을 준수하도록 동기화 단순화

  • @ggerganov의 제안 적용 (src->buffer를 buf_src로 변경)

Co-authored-by: Georgi Gerganov ggerganov@gmail.com

  • @ggerganov의 제안 적용 (src->buffer를 buf_src로 변경) v2

Co-authored-by: Georgi Gerganov ggerganov@gmail.com


Co-authored-by: Georgi Gerganov ggerganov@gmail.com

Co-authored-by: Johannes Gäßler johannesg@5d6.de

  • hip 백엔드 파이프라인 병렬화 (pipeline parallel) 버그를 수정하기 위해 멀티 GPU (multi-GPU) 설정에 싱글 GPU (single-GPU) 동기화 (synchronizations)를 추가합니다.

  • 스케줄러 강화 (Scheduler Hardening): copy_from_host CPU 분할(split) -> GPU 분할 (split) 최적화에서 hip/MUSA를 제외합니다.

  • 스케줄러 강화 (Scheduler Hardening): 비동기(non-async) 백엔드를 위해 기존의 추가 동기화 (synchronizations)를 다시 추가합니다.

  • copy_from_host의 hip/musa 제외에 대한 면책 조항을 추가합니다. 이는 예방 차원이며, 눈에 보이는 성능 영향 (perf-impact)은 없으며, 언제든 별도로 재검토될 수 있음을 강조합니다.


Co-authored-by: Georgi Gerganov ggerganov@gmail.com
Co-authored-by: Johannes Gäßler johannesg@5d6.de

macOS/iOS:

Linux:

Linux:

Android:

Windows:

Windows:

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)**

UI:

AI 자동 생성 콘텐츠

본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0