b11509: CUDA: 주요 버전 전환 시 CCCL 버전 가드 오류 수정 (#29453)
요약
CUDA 라이브러리에서 주요 버전 전환 시 CCCL(CUDA C Communication Library)의 버전 가드 오류를 수정했습니다. 기존 방식은 Major와 Minor 버전을 독립적으로 비교하여, 새로운 Major 시리즈 시작 시 Minor가 0으로 재설정되는 문제로 인해 성능 저하를 유발했습니다. 이를 단일 패킹된 정수 형태로 통합하여 정확성을 높였습니다.
핵심 포인트
- CCCL 버전 가드 오류 수정: 주요 버전 전환 시 발생하던 문제를 해결함.
- 기존 방식의 한계: Major/Minor 독립 비교는 Minor 재설정 문제에 취약했음.
- 개선된 방법론: CCCL_VERSION을 단일 패킹 정수(packed integer)로 통합하여 정확도를 높임.
- CUDA: 주요 버전 전환 시 CCCL 버전 가드 오류 수정
이전의 가드는 major 및 minor 구성 요소를 독립적으로 비교했습니다:
CCCL_MAJOR_VERSION >= 3 && CCCL_MINOR_VERSION >= 1
Minor가 새로운 Major 시리즈가 시작될 때마다 0으로 재설정되기 때문에, CCCL 4.x의 경우 이는 4 >= 3 && 0 >= 1, 즉 false로 평가됩니다. 이로 인해 STRIDED_ITERATOR_AVAILABLE이 더 이상 정의되지 않게 되고 argsort는 init_offsets 경로로 조용히 폴백(fallback)합니다. 경고 메시지는 발생하지 않고 빌드는 여전히 성공하지만, 이는 컴파일 오류라기보다는 조용한 성능 저하입니다.
CCCL은 이미 버전을 MMMmmmpp 형태의 단일 패킹된 정수(packed integer)로 노출하며, 이는 자체 버전 헤더가 사용하는 방식이기도 합니다:
CCCL_VERSION = MAJOR * 1000000 + MINOR * 1000 + PATCH
따라서 3.4.3은 3004003이며,
AI 자동 생성 콘텐츠
본 콘텐츠는 llama.cpp Releases의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기