跳转到主内容
项目
C++HIPROCmAMD Ryzen AILLM InferenceOpenAI API

AIMA AMD395 Qwen3.6 35B Linux Engine — AMD395 原生推理引擎

为 AMD Ryzen AI Max+ 395 定制的 Qwen3.6-35B-A3B BF16 原生推理引擎:无需 Python、PyTorch、vLLM 或系统 ROCm,支持 262K 上下文、OpenAI 兼容 API、SSE 流式输出和函数调用。

分享:
AIMA AMD395 Qwen3.6 35B Linux Engine — AMD395 原生推理引擎

为什么做这个引擎

AMD Ryzen AI Max+ 395 把 Radeon 8060S GPU 和 128 GB 统一内存放进了一台桌面级设备。它有机会在本地直接运行 35B 级 BF16 模型,但通用推理框架带来的 Python 环境、PyTorch、ROCm 版本和动态库依赖,也会把部署变成一项长期维护工作。

这个项目选择了一条更窄、也更彻底的路线:不做通用框架,只把 Qwen3.6-35B-A3B 在 AMD395 Linux 上这一件事做成可交付的原生成品。

产品定位

AIMA AMD395 Qwen3.6 35B Linux Engine 是一个面向固定硬件和固定模型的 batch-1 BF16 推理引擎。它强调的不是“理论上能跑”,而是明确的产品边界、可复现的性能数据和可审计的发布包。

  • 目标硬件: AMD Ryzen AI Max+ 395 / Radeon 8060S(gfx1151
  • 目标模型: Qwen3.6-35B-A3B BF16
  • 目标系统: Linux x86-64
  • 服务接口: OpenAI 兼容的 Chat Completions API
  • 开源协议: Apache License 2.0

核心架构

可搬移的原生运行包

发布包包含静态启动器、原生推理引擎、固定版本的 ROCm、AOTriton、Composable Kernel 用户态依赖和自己的 glibc loader。部署机器不需要预装 Python、PyTorch、vLLM、Triton、Transformers,也不需要系统级 ROCm userspace。

完整运行包解压后约 366 MiB,压缩后约 101 MiB。Linux 内核驱动和 GPU 架构兼容性仍由宿主机负责,模型权重也需要用户单独取得。

模型常驻与 OpenAI 兼容接口

引擎启动时只加载一次模型,让权重、执行计划、KV/递归状态和 prefix cache 保持常驻。HTTP 服务支持:

  • /v1/chat/completions
  • 真正的逐 token SSE 流式输出
  • OpenAI function toolstool_choice 和并行工具调用
  • assistant 工具调用历史与 tool 响应
  • systemd 常驻服务和干净停机

262K 上下文,但边界写清楚

引擎验证了从 1K 到 131K 的固定上下文矩阵,以及总长度 262,144 token 的窗口端点。冷请求必须命中已发布的固定上下文;更长请求只有在严格延续已缓存 token 前缀时,才会使用 prefix extension。

这不是用模糊的“最高支持 262K”掩盖限制,而是把每个可用窗口和对应输出长度写进机器可读的产品契约。

实测性能

下表来自发布版原生引擎在 AMD395 目标机上的验证结果,单位为 token/s。

输入长度PrefillDecode(输出 1,024 token)
8,1921,65432.26
32,7681,35728.17
65,5361,18324.61
131,072871.419.53
261,120565.813.91

除了速度,发布门槛还包括:

  • 9 个上下文的全词表 KLD 最大值为 0.002174,低于 0.005 门槛,top-1 全部一致
  • 冻结测试样本的 128-token 输出逐 token 完全一致
  • 8K 上下文 command-to-ready 中位数为 44.69 s
  • 32K 上下文 exact-prefix TTFT 加速 2612x
  • 流式与非流式输出的 token/text 哈希一致

完整测量记录保存在仓库的 原生发布验证结果 中。

快速启动

tar --zstd -xf aima-engine-native-portable-*.tar.zst
cd aima-engine-native-portable-*
 
./bin/aima-engine serve \
  --model-dir /srv/models/Qwen3.6-35B-A3B \
  --context-tokens 8192 \
  --host 127.0.0.1 \
  --port 8000

服务启动后,可以直接访问:

curl -fsS http://127.0.0.1:8000/health
curl -fsS http://127.0.0.1:8000/v1/models

使用边界

  • 目标机需要 128 GB 内存,并按文档配置 96 GiB GTT pool
  • 只验证 Radeon 8060S / gfx1151,不是通用 AMD GPU 运行时
  • 模型 checkpoint 不随仓库和发布包分发
  • HTTP 服务没有内建鉴权,并提供 /shutdown,默认只应监听 127.0.0.1
  • 性能数字只代表仓库中写明的硬件、模型、上下文和发布版本

作者与仓库关系

项目由 关嘉伟 / Jiawei Guan(@skyguan92) 创建并维护。

两个仓库都保持公开;GitHub 提交记录、Python 包元数据和 CITATION.cff 使用同一个 skyguan92 作者身份。

标签:#C++#HIP#ROCm#AMD Ryzen AI#LLM Inference#OpenAI API