b8888
요약
이번 업데이트는 llama.cpp의 SYCL 백엔드를 대폭 개선하여, 특히 MoE(Mixture-of-Experts) 모델과 BF16 연산에 대한 안정성과 성능을 높였습니다. 기존에는 큰 어휘 사전을 가진 모델에서 메모리 부족 오류가 발생할 수 있었으나, 이를 실제 라우팅된 행의 개수 기반으로 버퍼 크기를 조정하여 해결했습니다. 또한, DNNL 라이브러리를 활용해 BF16xBF16 -> F32 고속 경로를 추가함으로써, 대규모 매트릭스 연산 시 메모리 오버헤드를 줄이고 안정적인 추론을 가능하게 했습니다.
핵심 포인트
- MoE 모델의 Out-of-Memory 문제를 해결하기 위해 `mul_mat_id` 스테이징 버퍼 크기를 실제 라우팅된 행 수(`ids->ne[1] * n_ids`) 기반으로 조정했습니다.
- BF16 연산에 대한 DNNL Fast Path를 추가하여, BF16xBF16 -> F32 변환 과정에서 발생하던 대용량 메모리 할당 오류(Out-of-Memory)를 방지하고 성능을 개선했습니다.
- SYCL 백엔드 지원 범위를 확장하여 macOS/iOS (Apple Silicon 및 Intel), Linux (Ubuntu, s390x 포함), Android, Windows 등 다양한 플랫폼과 최신 GPU 아키텍처(CUDA 12/13)를 포괄적으로 지원합니다.
- BF16 데이터를 활용하는 모든 연산에서 안정성을 확보하고, `ggml_get_to_bf16_sycl` 함수 등을 통해 BF16 데이터 타입을 일관되게 처리하도록 개선했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기