-
Notifications
You must be signed in to change notification settings - Fork 1
【Zig 日报】项目分享:Zig INferenCe Engine — LLM inference for AMD RDNA3/RDNA4 GPUs via Vulkan #315
Copy link
Copy link
Open
Labels
日报daily reportdaily report
Description
Zinc 旨在解决 AMD 消费级显卡(尤其是最新的 RDNA3/RDNA4 架构,如 RX 9070 等)在运行大语言模型(LLM)推理时面临的生态缺失问题。
1. 核心问题
- 生态脱节: AMD 的 ROCm 框架主要支持数据中心级显卡(如 MI 系列),对消费级显卡支持不佳。
- 性能浪费: 消费级显卡(500-1500美元)拥有极高的内存带宽(如 576 GB/s),但在推理任务中往往被闲置。
- 工具局限: 现有的
vLLM依赖 ROCm;llama.cpp的 Vulkan 后端对 RDNA4 缺乏针对性优化,且不支持张量并行或高效的并行请求处理。
2. ZINC 的解决方案
ZINC 是一个基于 Zig 语言和 Vulkan API 开发的推理引擎,其特点包括:
- 深度硬件适配: 专门针对 RDNA4 的内存层级结构(如 Wave64 调度、架构感知平铺等)编写着色器(Shaders),目标是达到理论内存带宽的 90% 以上。
- 高性能生产化: 支持连续批处理(Continuous Batching) 和 Paged KV Cache,允许多个用户同时高速使用。
- TurboQuant 技术: 提供 KV 缓存压缩(最高 5 倍),可在有限的显存中容纳更多会话。
- 易用性: 无需 ROCm 或 CUDA,单二进制文件运行,提供 OpenAI 兼容接口,支持 GGUF 模型格式。
3. 当前性能与瓶颈
- 测试基准: 在 AMD Radeon AI PRO R9700 上运行 Qwen3.5-35B 模型。
- 现状: 目前推理速度约为 7.6 tok/s。
- 瓶颈: 速度较慢的主要原因是 CPU 与 GPU 之间的同步开销过大(每生成一个 Token 需要约 120 次往返通信),导致 GPU 实际处于闲置状态。
- 目标: 通过将推理图完整记录为单个命令缓冲区并实现 GPU 端 MoE 调度,目标速度为 110+ tok/s。
4. 独特的开发模式:AI 自我优化循环
ZINC 包含一个有趣的自改进循环:
- 利用 AI Agent(如 Claude)在真实的 RDNA4 硬件上进行自动化的“构建-部署-测试-分析-修改”循环。
- 已运行超过 186 个周期,自动修复了多项关于 Q4_K/Q5_K 量化、混合专家模型(MoE)路由和状态空间模型(SSM)的底层 Bug,显著提升了输出的连贯性。
5. 项目状态与后续规划
- 已完成: Vulkan 基础设施、GGUF 解析、原生分词器、OpenAI API 兼容服务器、基本的 GPU 推理。
- 下一步: 修复 GPU SSM 着色器正确性、实现 GPU 端的 MoE 专家调度、进行内核性能调优以及完善连续批处理功能。
总结: ZINC 试图通过绕过 ROCm 庞大的驱动栈,直接利用 Vulkan 释放 AMD 消费级显卡在 LLM 推理上的巨大潜力,让廉价显卡也能胜任生产级的 AI 服务。
加入我们
Zig 中文社区是一个开放的组织,我们致力于推广 Zig 在中文群体中的使用,有多种方式可以参与进来:
- 供稿,分享自己使用 Zig 的心得
- 改进 ZigCC 组织下的开源项目
- 加入微信群、Telegram 群组
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
日报daily reportdaily report