b8943
요약
이 커밋은 `llama.cpp`의 공통(common) 모듈을 대대적으로 리팩토링하여 코드 구조와 의존성을 개선했습니다. 주요 변경 사항으로는 디버깅 관련 로직(`abort_on_nan`)을 전역 멤버 변수에서 `base_callback_data`로 이동시키고, Pimpl 패턴을 사용하여 헤더 파일의 의존성을 줄인 것입니다. 이러한 리팩토링은 컴파일 시간을 단축하고 모듈 간의 결합도를 낮추는 데 기여합니다.
핵심 포인트
- 공통(common) 모듈의 구조적 개선 및 리팩토링을 통해 코드 품질 향상.
- 디버깅 관련 플래그(`abort_on_nan`)를 템플릿 매개변수 대신 `base_callback_data` 멤버로 통합하여 LTO 호환성 문제 해결.
- Pimpl 패턴 적용 및 private impl struct 사용으로 헤더 의존성을 줄여 전이적 의존성(transitive dependencies)을 감소시킴.
- 다양한 아키텍처와 플랫폼(macOS, Linux, Android, Windows 등)에 대한 광범위한 빌드 지원 목록을 업데이트함.
common: llama-common 에서 누락된 export 수정 (#22340)
common: common/debug 를 리팩토링하여 abort_on_nan 을 base_callback_data 로 이동
bool abort_on_nan 을 템플릿 매개변수로 전달하는 것은 불필요하며 LTO 와 문제를 일으킵니다. 대신 base_callback_data 의 멤버로 두어야 합니다.
cont : common 정리 - debug.h 에서 pimpl 사용으로 헤더 의존성 감소
common_debug_cb_user_data 의 데이터 멤버 (std::regex, std::vector<uint8_t>) 를 debug.cpp 의 private impl struct 으로 이동시킴. 이를 통해 debug.h 를 포함하는 모든 번역 단위 (translation unit) 에 대한 common.h 와 from debug.h 의 include 를 제거하여 전이적 의존성 (transitive dependencies) 을 줄임.
Assisted-by: llama.cpp:local pi
Co-authored-by: Georgi Gerganov ggerganov@gmail.com
macOS/iOS:
- macOS Apple Silicon (arm64)
- macOS Apple Silicon (arm64, KleidiAI enabled)
- macOS Intel (x64)
- iOS XCFramework
Linux: - Ubuntu x64 (CPU)
- Ubuntu arm64 (CPU)
- Ubuntu s390x (CPU)
- Ubuntu x64 (Vulkan)
- Ubuntu arm64 (Vulkan)
- Ubuntu x64 (ROCm 7.2)
- Ubuntu x64 (OpenVINO)
- Ubuntu x64 (SYCL FP32)
- Ubuntu x64 (SYCL FP16)
Android: - Android arm64 (CPU)
Windows: - Windows x64 (CPU)
- Windows arm64 (CPU)
- Windows x64 (CUDA 12) - CUDA 12.4 DLLs
- Windows x64 (CUDA 13) - CUDA 13.1 DLLs
- Windows x64 (Vulkan)
- Windows x64 (SYCL)
- Windows x64 (HIP)
openEuler: - openEuler x86 (310p)
- openEuler x86 (910b, ACL Graph)
- openEuler aarch64 (310p)
- openEuler aarch64 (910b, ACL Graph)
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기