预发布 / 持续构建版本:这是实验性构建,不是稳定版本。
hexagon: 修复 IM2COL patch-embed DMA 环形缓冲区溢出 (#30189) * hexagon: 修复 IM2COL patch-embed DMA 环形缓冲区溢出 精确切分(stride == kernel,无 pad/dilation)的 IM2COL DMA 内核 为每个输出行发出 IC*KH 个 DDR->VTCM 描述符,但不检查 dma_queue_push() 的返回值,然后弹出 IC*KH 次。每线程 DMA 环形缓冲区有 256 个条目,向满的环形缓冲区推送会返回 false 并丢弃传输,因此当 IC*KH > 255 时, VTCM 暂存缓冲区的其余行从未被写入,陈旧数据(通常是 NaN/inf) 泄漏到输出中。 解决方案是当环形缓冲区满时退役最旧的描述符,正如同一文件中 blocked 内核已经做的那样,并使用 dma_queue_flush() 等待。 为进行测试,添加了 IC*KH > 256 的精确切分测试用例(2D 1x1、2D 2x2 patch embed 和 1D,F16 和 F32 dst),在没有此修复的情况下这些测试在 HTP 上会失败。 * 应用来自 @max-krasnyansky 的建议 --------- 协作者: Max Krasnyansky网站: - https://llama.app
证明(Attestations): - https://github.com/ggml-org/llama.cpp/attestations/54222989
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