Skip to content

【Zig 日报】项目分享:Zig INferenCe Engine — LLM inference for AMD RDNA3/RDNA4 GPUs via Vulkan #315

@jiacai2050

Description

@jiacai2050

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 在中文群体中的使用,有多种方式可以参与进来:

  1. 供稿,分享自己使用 Zig 的心得
  2. 改进 ZigCC 组织下的开源项目
  3. 加入微信群Telegram 群组

Metadata

Metadata

Assignees

No one assigned

    Labels

    日报daily report

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions