性能#

重要提示

NIM VLM 性能基准测试的综合指南正在开发中。在此期间,鼓励开发者参考NIM for LLM Benchmarking Guide

性能分析#

您可以使用 genai-perf 工具,该工具来自 perf_analyzer,以在模拟生产负载下对 VLM 的性能进行基准测试。

重要提示

根据您的需求更新模型名称。例如,对于 meta/llama-3.2-11b-vision-instruct 模型,您可以使用以下命令

执行以下命令,使用 genai-perf 命令行工具运行性能基准测试。genai-perf 的快速入门指南可以在这里找到。

首先,运行安装了 genai-perf 的容器

export TOKENIZER_PATH=...    # this is where tokenizer.json for the model is located

docker run -it --net=host --gpus=all  -v ${TOKENIZER_PATH}:/workspace/tokenizer nvcr.io/nvidia/tritonserver:24.10-py3-sdk

重要提示

我们建议将 TOKENIZER_PATH 设置为从 HuggingFace 拉取的模型的检查点目录 (例如,这里 针对 meta/llama-3.2-11b-vision-instruct)。该目录必须包含模型的 config.json 以及所有与 tokenizer 相关的文件 (即,tokenizer.json, tokenizer_config.json, 和 special_tokens_map.json)。

重要提示

以下命令已使用 genai-perf 24.10 版本进行测试。

export CONCURRENCY=8                 # number of requests sent concurrently
export MEASUREMENT_INTERVAL=300000   # max time window (in milliseconds) for genai-perf to wait for a response
export INPUT_SEQ_LEN=5000            # input seqence length (in the number of tokens)
export OUTPUT_SEQ_LEN=5000           # output sequence length (in the number of tokens)
export IMAGE_WIDTH=1120              # width of images used in profiling
export IMAGE_HEIGHT=1120             # height of images used in profiling

genai-perf profile \
    -m meta/llama-3.2-11b-vision-instruct \
    --concurrency ${CONCURRENCY} \
    --tokenizer /workspace/tokenizer \
    --endpoint v1/chat/completions \
    --endpoint-type vision \
    --service-kind openai \
    --streaming -u http://127.0.0.1:8000 \
    --num-prompts 100 \
    --measurement-interval ${MEASUREMENT_INTERVAL} \
    --synthetic-input-tokens-mean ${INPUT_SEQ_LEN} \
    --synthetic-input-tokens-stddev 0 \
    --output-tokens-mean ${OUTPUT_SEQ_LEN} \
    --extra-inputs max_tokens:${OUTPUT_SEQ_LEN} \
    --extra-inputs min_tokens:${OUTPUT_SEQ_LEN} \
    --extra-inputs ignore_eos:true \
    --artifact-dir tmp/ \
    -v --image-width-mean ${IMAGE_WIDTH} --image-width-stddev 0 --image-height-mean ${IMAGE_HEIGHT} --image-height-stddev 0 --image-format png \
    -- --max-threads ${CONCURRENCY}

genai-perf 的完整文档可以在这里找到。

基准测试结果#

ISL: 文本输入序列长度;OSL: 文本输出序列长度;TTFT: 首个 token 的时间;ITL: token 间延迟

最小延迟 数字是在并发 1 (单流) 的情况下捕获的。 最大吞吐量 数字是在最大并发饱和吞吐量的情况下测量的。

图像尺寸: 1120x1120px

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

198

7.4

7598

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

29.3

2.72

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

202

8.4

8602

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

28.1

2.04

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

367

13.7

14067

20000

2000

2690

15.5

33690

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

55.1

1.04

20000

2000

41.0

0.11

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

531

9.7

10231

20000

2000

1839

10.7

23239

60000

2000

6830

12.4

31630

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

53.3

1.59

20000

2000

55.1

0.24

60000

2000

63.3

0.07

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

60000

2000

7421

12.6

32621

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

60000

2000

82.7

0.06

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

1142

14.9

16042

20000

2000

4626

16.5

37626

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

24.3

0.32

20000

2000

44.7

0.08

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

531

17.4

17931

20000

2000

2119

18.2

38519

60000

2000

6347

19.0

44347

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

48.3

1.17

60000

2000

48.5

0.08

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

60000

2000

8404

25.2

58804

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

60000

2000

32.0

0.03

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

1060

36.6

37660

20000

2000

7120

38.0

83120

60000

2000

26692

41.1

108892

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

77.5

0.39

20000

2000

76.4

0.05

60000

2000

75.5

0.02

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

1121

26.9

28021

20000

2000

5081

27.5

60081

60000

2000

17640

29.4

76440

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

94.6

0.59

20000

2000

102.6

0.11

60000

2000

114.8

0.04

ISL

OSL

平均 TTFT (毫秒)

平均 ITL (毫秒)

平均请求延迟 (毫秒)

1000

1000

1102

40.4

41502

ISL

OSL

平均 ITL (毫秒)

请求吞吐量 (reqs/秒)

1000

1000

66.7

0.12

并非所有性能数据都在上面提供。 更多数据将随时间添加到此页面。