预发布 / 持续构建版本:这是实验性构建,不是稳定版本。
CUDA: 修复主版本号进位时 CCCL 版本守卫失效的问题 (#29453) * CUDA: 修复主版本号进位时 CCCL 版本守卫失效的问题 该守卫此前独立地比较主版本号和次版本号组件: CCCL_MAJOR_VERSION >= 3 && CCCL_MINOR_VERSION >= 1 每当切出新的主版本系列时,次版本号会重置为 0,因此在 CCCL 4.x 上 该表达式求值为 4 >= 3 && 0 >= 1,即 false。STRIDED_ITERATOR_AVAILABLE 不再被定义,argsort 便静默回退到 init_offsets 路径。没有任何警告且构建仍然成功,所以这个 回归是一次悄无声息的性能损失,而非编译错误。 CCCL 已经将版本号以 MMMmmmpp 形式的单个打包整数暴露出来,其自身的版本头文件正是这样使用的: CCCL_VERSION = MAJOR * 1000000 + MINOR * 1000 + PATCH 因此 3.4.3 即 3004003,">= 3.1" 就是简单的 ">= 3001000"。只需 一次比较,不会再有组件运算出错的可能。 对照一个手写的 "version >= 3.1" 参考实现,在 2.9.9、 3.0.0、3.1.0、3.1.99、3.2.0、3.4.3、3.9.9、3.99.99、4.0.0、4.2.7 和 5.0.0 上进行了检查:没有分歧。旧守卫在 4.0.0 和 5.0.0 上结果不一致。 在 RTX 4070 (sm_89)、CUDA 13.4、CCCL 3.4.3 上验证: - cmake --build build --config Release: exit 0 - test-backend-ops test -o ARGSORT -b CUDA0: 98/98 passed, CUDA0 OK 请注意,回归测试通过本身并不能证明守卫仍然 被采纳,因为回退路径同样会通过测试。对实际的翻译单元进行预处理 可以确认编译进去的是跨步迭代器分支:counting_iterator 存在,init_offsets 不存在。 Signed-off-by: Heitor * Update ggml/src/ggml-cuda/argsort.cu * Apply suggestion from @ORippler --------- Signed-off-by: Heitor Co-authored-by: Oliver Simons网站: - https://llama.app
证明(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/53997029
macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, 启用 KleidiAI) 已禁用 - macOS Intel (x64) - iOS XCFramework
Linux: - Ubuntu x64(CPU) - Ubuntu arm64(CPU) - Ubuntu s390x(CPU) - Ubuntu x64(Vulkan) - Ubuntu arm64(Vulkan) - Ubuntu x64(CUDA 12) - CUDA 12.8 库 - Ubuntu x64(CUDA 13) - CUDA 13.4 库 - Ubuntu arm64(CUDA 13) - CUDA 13.4 库 - Ubuntu x64(ROCm 10.0) - Ubuntu x64(OpenVINO) - Ubuntu x64(SYCL FP32) - Ubuntu x64(SYCL FP16) - Linux arm64(Snapdragon:CPU、Adreno GPU、Hexagon NPU) - 设置指南
Android: - Android arm64(CPU) - Android arm64(Snapdragon:CPU、Adreno GPU、Hexagon NPU) - 设置指南
Windows 平台: - Windows x64 版本(CPU) - Windows arm64 版本(CPU) - Windows arm64 版本(OpenCL Adreno) - Windows x64 版本(CUDA 12) - CUDA 12.4 DLL 文件 - Windows x64 版本(CUDA 13) - CUDA 13.4 DLL 文件 - Windows arm64 版本(CUDA 13) - CUDA 13.4 DLL 文件 - Windows x64 版本(Vulkan) - Windows arm64 版本(Vulkan) - Windows x64 版本(OpenVINO) - Windows x64 版本(SYCL) - Windows x64 版本(ROCm 10.0)
openEuler: - DISABLED - openEuler x86 架构 (310p) - openEuler x86 架构 (910b, ACL Graph) - openEuler aarch64 架构 (310p) - openEuler aarch64 架构 (910b, ACL Graph)
UI: - UI