端到端分析
此方法可以在单个文件中收集所有跟踪信息,同时精确控制跟踪收集的开始和停止时间。通过将所有分析数据整合到一个文件中,简化了分析过程。然而,这可能会导致生成较大的跟踪文件,在浏览器或 Perfetto 等工具中加载和分析时可能会更加困难。为了避免生成过大的跟踪文件,我们建议在不需要完整跟踪时,单独使用端到端 (E2E) 分析中包含的方法。
E2E 分析在单次运行中捕获所有相关数据,结合了
由于 E2E 分析过程中会收集大量数据,PyTorch 分析器中的 Python 堆栈事件默认是禁用的。如果您需要 Python 堆栈事件,请使用 通过异步服务器进行的 PyTorch 分析 或 通过脚本进行的 PyTorch 分析,这两种方法默认都会收集这些事件。
虽然您可以收集硬件跟踪,但我们不建议在 E2E 分析期间这样做,因为它会显著增加跟踪文件的大小。有关硬件级别分析,请参阅 本文档。
要执行 E2E 分析,请使用以下任一过程。
单请求服务器分析
-
禁用硬件跟踪以减小跟踪文件大小。如果您想收集硬件跟踪,请跳过此步骤。
hl-prof-config --use-template profile_api --hw-trace off
export HABANA_PROFILE=1
-
启用 E2E 分析。
export VLLM_PROFILER_ENABLED=full
-
设置输出目录。
export VLLM_TORCH_PROFILER_DIR=/tmp
-
启动 vLLM 服务器。以下示例使用 facebook/opt-125m 模型,TP=1,并将最大批处理大小设置为 128。
VLLM_PROMPT_SEQ_BUCKET_MAX=128 VLLM_PROMPT_SEQ_BUCKET_MIN=128 \
python3 -m vllm.entrypoints.openai.api_server --port 8080 \
--model "facebook/opt-125m" --tensor-parallel-size 1 \
--max-num-seqs 128 --dtype bfloat16 \
--max-model-len 256
-
等待预热完成并开始分析。
curl -X POST https://:8080/start_profile
-
发送分析请求。
curl https://:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "facebook/opt-125m",
"prompt": "San Francisco is a",
"max_tokens": 7,
"temperature": 0
}'
-
停止分析。
curl -X POST https://:8080/stop_profile
多请求服务器分析
-
禁用硬件跟踪以减小跟踪文件大小。如果您想收集硬件跟踪,请跳过此步骤。
hl-prof-config --use-template profile_api --hw-trace off
export HABANA_PROFILE=1
-
启用 E2E 分析。
export VLLM_PROFILER_ENABLED=full
-
设置输出目录。
export VLLM_TORCH_PROFILER_DIR=/tmp
-
启动 vLLM 服务器。以下示例使用 facebook/opt-125m 模型,TP=1,并将最大批处理大小设置为 128。
VLLM_PROMPT_SEQ_BUCKET_MAX=128 VLLM_PROMPT_SEQ_BUCKET_MIN=128 \
python3 -m vllm.entrypoints.openai.api_server --port 8080 \
--model "facebook/opt-125m" --tensor-parallel-size 1 \
--max-num-seqs 128 --dtype bfloat16 \
--max-model-len 256
-
安装 datasets 包。
-
使用 vLLM 服务发送分析请求。
vllm bench serve \
--backend vllm \
--model "facebook/opt-125m" \
--port 8080 \
--dataset-name "random" --random-input-len 128 --random-output-len 4 \
--random-range-ratio 1.0 \
--ignore-eos \
--profile \
--max-concurrency "4" \
--request-rate "inf" \
--num-prompts 4 \
--percentile-metrics "ttft,tpot,itl,e2el"
脚本分析
-
禁用硬件跟踪以减小跟踪文件大小。如果您想收集硬件跟踪,请跳过此步骤。
hl-prof-config --use-template profile_api --hw-trace off
export HABANA_PROFILE=1
-
启用 E2E 分析。
export VLLM_PROFILER_ENABLED=full
-
设置输出目录。
export VLLM_TORCH_PROFILER_DIR=/tmp
-
通过指示 LLM 对象开始和停止分析来在脚本中启用跟踪。
from vllm import LLM, SamplingParams
llm = LLM(model="facebook/opt-125m")
llm.start_profile() # Start profiling
outputs = llm.generate(["San Francisco is a"])
llm.stop_profile() # Stop profiling
结果
执行 E2E 分析会生成一个 vllm(...).pt.trace.json.gz 文件,该文件可以使用 Perfetto 打开。

此文件提供有关主机间隙、提示和解码持续时间、重新编译事件以及 Python 执行时间的信息。