一、背景
需要在昇腾 ARM 节点上做 vLLM/MindIE 服务化性能测试。测试侧工具使用 AISBench,并叠加 aisbench_auto_tools_prefix 自动测试脚本,用于生成 GSM8K 格式数据集、执行 prefix cache 压测、统计命中率和导出结果 CSV。
本次构建在 Intel Mac 上进行,通过 Docker Buildx + QEMU 产出 linux/arm64 镜像,再导出 tar.gz 部署到 ARM/NPU 服务器。
二、构建方案
AISBench 官方已提供 aarch64 镜像,因此没有在镜像内重新编译整套 AISBench 依赖,而是以官方 aarch64 镜像作为基础层:
- 基础镜像:ghcr.io/aisbench/aisbench_benchmark:v3.1-20260630-master-ubuntu22.04-py310-aarch64
- GHCR 直连不稳定时,改用华为云 OBS 的官方离线包加载:
- 文件:ais_bench_benchmark_image_v3.1-20260630-master-ubuntu22.04-py310-aarch64.tar.gz
- 将 aisbench_auto_tools_prefix 复制到镜像内 /opt/aisbench_auto_tools_prefix
- 使用 config.docker.py 覆盖默认 config.py,路径对齐 AISBench 官方镜像结构
三、镜像内容
| 组件 | 版本/路径 |
|---|---|
| 操作系统 | Ubuntu 22.04 |
| 架构 | arm64 / aarch64 |
| Python | 3.10.12 |
| AISBench | v3.1-20260630-master |
| torch | 2.12.0+cpu |
| transformers | 5.12.1 |
| pandas | 2.3.3 |
| AISBench 工作目录 | /benchmark |
| 自动测试工具 | /opt/aisbench_auto_tools_prefix |
| 默认输出目录 | /workspace/outputs |
| 默认数据集目录 | /datasets |
四、构建过程
首先加载官方 aarch64 基础镜像:
docker load -i ais_bench_benchmark_image_v3.1-20260630-master-ubuntu22.04-py310-aarch64.tar.gz
然后执行 ARM64 构建:
docker buildx build \
--platform linux/arm64 \
--load \
-f Dockerfile.arm64 \
-t aisbench-arm64:latest \
.
Dockerfile 的关键步骤:
ARG AISBENCH_IMAGE=ghcr.io/aisbench/aisbench_benchmark:v3.1-20260630-master-ubuntu22.04-py310-aarch64
FROM ${AISBENCH_IMAGE}
COPY . /opt/aisbench_auto_tools_prefix
RUN cp config.docker.py config.py \
&& python3 -m compileall -q . \
&& python3 aisbench_test.py --help >/dev/null
WORKDIR /workspace
ENTRYPOINT ["python3", "/opt/aisbench_auto_tools_prefix/aisbench_test.py"]
五、验证结果
构建完成后在 QEMU 下验证了以下内容:
- uname -m 返回 aarch64
- python3 -V 返回 Python 3.10.12
- torch/transformers/pandas 均可正常导入
- ais_bench --help 正常输出
- 自动工具生成的 vllm_api_chat_temp 配置可被 ais_bench --search 解析
- gsm8k_gen_0_shot_cot_str_perf 性能数据集配置可被正常找到
最终镜像大小约 2.38GB。
六、使用与导出
运行压测示例:
docker run --rm --platform linux/arm64 --network host \
-v /host/dataset:/datasets \
-v /host/model_weights:/workspace/model_weights \
-v /host/output:/workspace/outputs \
aisbench-arm64:latest \
--input_len 2048 --output_len 2048 --data_num 160 --concurrency 40 --request_rate 10
需要修改模型服务信息时,可以挂载自定义 config.py:
-v /host/config.py:/opt/aisbench_auto_tools_prefix/config.py
其中关键配置为:
MODEL_NAME = "模型名"
MODEL_PATH = "/workspace/model_weights"
HOST_IP = "服务IP"
HOST_PORT = "8004"
导出到 ARM 服务器:
docker save aisbench-arm64:latest | gzip > aisbench-arm64.tar.gz
docker load -i aisbench-arm64.tar.gz
简记。







