forked from EngineX-Cambricon/enginex-mlu370-vllm
1. 非page模式max_num_seqs自动调优工具
对于MLU370X8平台,在unpage模式下,可以通过调整max_num_seqs来提升性能。tune_max_num_seqs.py通过自动调参来搜索最佳max_num_seqs值。
- 用法示例
搜索固定配置下,使吞吐量最大
max_num_seqs值,其中参数部分保持与benchmark_latency.py/benchmark_throughput.py一致。
python tools/utils/tune_max_num_seqs.py --backend vllm --input-len 1024 --output-len 1024 --model /Path/to/Llama-2-70b-chat-hf/ -tp 1 --max-model-len 4096 --dtype float16 --num-prompts 10
通过执行上述命令,可以搜索得到最优max_num_seqs配置,在构建LLM对象时,作为参数传入使用。
2. vLLM调度分析辅助工具
首先,设置环境变量开启调度profiling:export VLLM_SCHEDULER_PROFILE=true
对于离线测试,测试结束后,会自动保存数据并打印出当前已经运行请求的信息
对于在线测试,获取调度数据的步骤如下:
- 启动server
- 运行client端测试
- 等待client测试结束后,立即运行:python3 tools/utils/post_scheduler_view_action.py --host [server端ip地址] --port [server端口号] --action save,请求server端将数据保存下来
- server端会打印出当前已经运行请求的信息
- 如果想再次运行client测试(基于现有server),先运行:python3 tools/utils/post_scheduler_view_action.py --host [server端ip地址] --port [server端口号] --action init,恢复server端,然后重复2、3、4