我这边这几天把 Z100L 这张卡折腾通了,先说结论:
Z100L 现在已经可以不用 Docker,通过 vLLM 跑起 Gemma4。
走的不是海光私有 demo 路线,而是尽量贴近通用开源栈:
底层继续用海光 DTK/HIP
上层改成 自编 PyTorch + 源码版 vLLM
然后针对 gfx906 做少量兼容修正
关键不是换掉海光底层,而是把上层尽量拉回主流路线。
我最后能跑通,主要靠这几点:
修通 gfx906 下的 TRITON_ATTN prefill/decode 路径
把首请求的 warmup 内化,避免第一次请求容易出错
对 Gemma4 + torch.compile 做特殊兼容
gfx906 + Gemma4 下不再强行走坏掉的 fullgraph=True
改成 partial compile
并且把已知会出错的 Gemma4Model.forward 自动切回 eager
这样做之后,Gemma4 在这张卡上就不是“能启动但会乱算”,而是能稳定出正确 token。
最终测试结果:
最小模型 google/gemma-4-E2B-it
不用 Docker
vLLM + TRITON_ATTN
已经能稳定输出正确结果
例如测试 prompt 最终返回首 token Open
更大的 Gemma 4 26B A4B AWQ 4bit
也已经能在这张 32G Z100L 上跑起来
实测最大 prompt 大约 21967 tokens
短文本生成速度实测大约 9.58 tok/s
所以现在这张卡的状态,不再是“只能跑 vendor demo”,而是已经证明:
Z100L 可以沿着更通用的 PyTorch + vLLM 路线使用 Gemma4。
如果后面有人也在折腾这张卡,我的建议是:
不要继续在脏源码树上硬修
不要搞 fake CUDA / fake nvcc
不要优先追海光 demo
先把 HIP runtime、干净 PyTorch、再到 vLLM 一层层打通
---
下周发教程,以下二维码是海光卡群,有兴趣的可以加入
--------------------------------------------------
