geniex-bench 用于测量原始推理吞吐量——TTFT、prefill 速度和 decode 速度——在真实骁龙硬件上运行。它是一个独立二进制文件,无需安装 GenieX CLI:下载压缩包、解压即可运行。
前提条件
- Windows ARM64
- Linux ARM64
- 骁龙 X Elite 或 X2 Elite 设备,运行 Windows ARM64。参见支持的平台。
- PowerShell(任意版本)。
- 已下载的模型。可先运行
geniex pull,也可通过--mm-data-dir让geniex-bench在首次使用时自动下载。
第一步:下载并解压
- Windows ARM64
- Linux ARM64
打开 PowerShell 并运行:验证二进制文件可正常启动:
windows
windows
若需固定到特定版本,可替换 URL 中的文件名——参见固定版本。
第二步:运行首次基准测试
最少需要--plugin、--device 和 -m 三个参数。模型参数支持本地路径或模型管理器 id(首次使用时自动下载):
- Windows ARM64
- Linux ARM64
windows
geniex-bench 运行 1 次预热 + 5 次正式测量,使用 512 个随机输入 token,生成 128 个 token,温度为 0.0(确定性输出)。数字为 5 次运行的中位数 ± 标准差。
第三步:对比计算后端
使用--device cpu、--device npu 和 --device hybrid 分别测试同一模型,以找到最适合你工作负载的路径。
- Windows ARM64
- Linux ARM64
windows
Qualcomm AI Hub 模型(
--plugin qairt)仅支持 NPU——--device cpu、gpu 或 hybrid 会被静默转换为 npu。解读测试结果
每行[ok ] 输出包含三个指标:
ttft 和 prefill 主要受并行度影响(NPU/GPU 上的批量计算);decode 主要受内存带宽影响(每次一个 token,每步读取全部权重)。在骁龙上,hybrid 通过将每个算子路由到最优后端来缩小两个阶段之间的差距。
对于 --plugin qairt,prompt_tokens 和 prefill_tps 基于补齐后的长度(ceil(n / 128) × 128)计算,因为 QAIRT 引擎会将输入 id 补齐到 128 token 的 prefill 块。这是预期行为——补齐后的计数反映了引擎实际执行的工作量。
公平对比模型
对比两个模型或配置时,应保持以下变量不变:
默认值已针对可重现比较进行了优化(温度 0.0、种子 42、5 次测量)。如需调整,请谨慎操作——更大的
-n 可以更好地反映 decode 曲线,而更大的 -c 可以测试模型在更长上下文下的性能。
常见错误:
- 将
Q4_0结果与Q8_0结果进行比较。较大的文件每个 decode 步骤需要加载更多权重数据,因此速度更慢,与计算后端无关。 - 将
--device cpu(ngl=0)与--device npu(ngl=-1,全部 layer offload)进行比较。如需纯 CPU 基准,始终使用--device cpu。 - 首次运行后忘记重新运行。第一次运行包含模型下载时间(仅影响挂钟时间,不影响报告中的
ttft/prefill/decode数字,这些数字在引擎内部测量)。
将结果保存为 JSON
添加--output-json 以写入机器可读的报告:
bash
运行模型矩阵
若要在单个 session 中扫描多个(模型, 设备) 组合——分摊插件初始化开销——可使用 --matrix-file:
bash
cell_id、plugin、device、model_path_or_id。每行在 --output-json-dir 中生成一个 JSON 文件。
固定版本
上方 URL 始终指向最新稳定版本。如需固定特定版本,可替换文件名中的版本号(例如v0.3.19):
下一步
Was this page helpful?