본문으로 건너뛰기

© 2026 Molayo

llama.cpp헤드라인2026. 05. 30. 03:47

CUDA: PDL 디스패치(dispatch)를 보호하기 위해 호스트 측에서 PTX 버전 확인 ([#23530](https://github.com

요약

llama.cpp 프로젝트에서 CUDA PDL 디스패치 오류를 해결하기 위해 호스트 측에서 PTX 버전을 확인하는 로직을 추가했습니다. 또한 해시 분포 개선을 위해 MurmurHash3 mixer를 구현하고 코드 품질을 개선했습니다.

핵심 포인트

  • CUDA 아키텍처 구분 한계를 극복하기 위해 ptxVersion 확인 로직 도입
  • sm_90/sm_120 환경에서의 잘못된 PDL 디스패치 버그 수정
  • MurmurHash3 mixer 구현을 통한 더 나은 해시 분포 확보
  • 코드 포매팅 및 std::size_t 일관성 유지 작업 수행

CUDA: PDL 디스패치(dispatch)를 보호하기 위해 호스트 측에서 PTX 버전 확인 (#23530)

  • CUDA: PDL 디스패치 (dispatch)를 보호하기 위해 호스트 측에서 PTX 버전 확인

__CUDA_ARCH_LIST__만 확인하는 것은 JIT (Just-In-Time) 컴파일에 충분하지 않습니다. 이 변수는 예를 들어 sm_90, sm_90a 또는 sm_90f를 위해 컴파일하는 것을 구분하지 못하기 때문입니다 (즉, forward-jittable PTX와 아키텍처/패밀리 특정 PTX를 구분하지 못함).

따라서 DCMAKE_CUDA_ARCHITECTURES="89;90a"로 컴파일할 때 버그가 발생할 수 있으며, 현재 코드는 forward-JIT 모드에서 sm_90/sm_120 환경의 PDL로 잘못 디스패치(dispatch)하게 됩니다.

이 PR은 런타임에 들어오는 커널의 cudaFuncAttributes::ptxVersion을 확인하여 이 문제를 해결합니다. 디바이스 코드(device-codes)는 항상 ptxVersion보다 크거나 같으므로(이를 위반하는 것은 CUDA/nvcc의 심각한 버그임), ptxVersion만 확인하는 것으로 충분합니다. 참조: https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#gpu-code-code-code

  • 더 나은 해시 분포를 위해 MurmurHash3 mixer 구현

매직 상수(Magic constants)는 boost에서 가져왔습니다:
https://github.com/boostorg/container_hash/blob/2698b43803c012601e6bb1a6116e83767b97986c/include/boost/container_hash/detail/hash_mix.hpp#L19-L65

  • ggml/src/ggml-cuda/common.cuh 업데이트

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

  • 리뷰 의견 반영, 시드(seed)를 0이 아니게 설정

  • 코드 포매팅(code-formatting) 적용

  • 일관성을 위해 std::size_t를 size_t로 교체


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

macOS/iOS:

macOS/iOS:

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