AI Briefing

graph_reused로 CUDA 체크 제거

ggml: add graph_reused by am17an · Pull Request #21764 · ggml-org/llama.cpp

·2026.04.16 21:45

핵심 내용

llama.cpp의 ggml에 graph_reused를 넣어 CUDA의 O(n) 변경 체크를 줄였다.

자세히 보기

ggml의 ggml_cgraph에 reused 상태를 추가해, 백엔드가 그래프 재사용 여부를 더 직접적으로 판단할 수 있게 했다.

핵심은 CUDA 백엔드가 graph_reuse 호출 때마다 그래프 변경 여부를 확인하던 O(n) props change check를 우회하는 것이다. 그래프 재사용이 보장되는 상황에서는 이 검사가 중복이므로, 이를 생략해 약간의 오버헤드를 줄인다.

실측 결과도 제시됐다.

  • RTX 5090 기준
  • gemma4 ?B Q4_0, gpt-oss 20B MXFP4 MoE, qwen35 27B Q4_K_M, qwen35moe 35B.A3B Q4_K_S 등에서 테스트
  • 대체로 1.02x~1.07x 수준의 향상
  • 가장 큰 경우는 qwen35moe 35B.A3B Q4_K_S에서 206.56 t/s vs 194.52 t/s

리뷰 과정에서는 단순한 reuse flag보다 graph GUID / versioning이 더 적절한지, split graph와 main graph를 어떻게 식별할지 논의가 이어졌다. tensor-overrides처럼 하나의 백엔드 안에 여러 split이 생길 수 있어, split별 식별자 분리가 필요하다는 지적도 나왔다.

결국 이 패치는 단순한 플래그 추가가 아니라, 그래프 식별과 재사용 계약을 어떻게 정의할지를 둘러싼 llama.cpp/ggml 내부 설계 논의까지 포함한 최적화 작업이다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.