NVIDIA / NVIDIA/TensorRT-LLM

[Usage]: Benchmark Qwen3-FP8 series models on H800 but got unexpected low performance

Open
#7,364 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Performance question
Dominant language
Python
Stars
14.7k
Forks
2.8k
Avg merge
2d 23h
Merged PRs (30d)
489

Description

System Info

System Information:

  • OS: Linux
  • Python version: 3.10
  • CUDA version: 12.8
  • GPU model(s): H800
  • Driver version: 570.133.20
  • TensorRT-LLM version: nvcr.io/nvidia/tensorrt-llm/release:1.1.0rc1

Detailed output:
I followed the guide https://nvidia.github.io/TensorRT-LLM/commands/trtllm-serve/run-benchmark-with-trtllm-serve.html to benchmark the default performance on H800 with Qwen/Qwen3-30B-A3B-FP8 model.

Here is the steps I performed:

docker run --runtime nvidia --gpus all --ipc=host --name tensorrt-llm --rm  -v /mnt/huggingface_hub/:/root/.cache/huggingface_hub  --env "HF_HOME=/root/.cache/huggingface_hub"  --env "HF_HUB_OFFLINE=1"  -p 8000:8000  -it nvcr.io/nvidia/tensorrt-llm/release:1.1.0rc1 /bin/bash

In the container, I edit the config as following:

enable_attention_dp: false
cuda_graph_config:
  enable_padding: true
  max_batch_size: 1024

And launched the server by:

trtllm-serve serve Qwen/Qwen3-30B-A3B-FP8  --host 0.0.0.0  --port 8000  --max_batch_size 1024  --tp_size 1     --extra_llm_api_options /tmp/config.yml

I used the vLLM benchmark_serving scripts to benchmark the server:

python vllm/benchmarks/benchmark_serving.py --model Qwen/Qwen3-30B-A3B-FP8 --base-url http://0.0.0.0:8000 --dataset-name sharegpt --dataset-path /nvme1/shared/ShareGPT_V3_unfiltered_cleaned_split.json --ignore-eos --num-prompts 10000

The results showed as below, which is much lower than I expected. Did I do something wrong?

Namespace(backend='vllm', base_url='http://0.0.0.0:8000', host='127.0.0.1', port=8000, endpoint='/v1/completions', dataset_name='sharegpt', dataset_path='/nvme1/shared/ShareGPT_V3_unfiltered_cleaned_split.json', no_stream=False, max_concurrency=None, model='Qwen/Qwen3-30B-A3B-FP8', tokenizer=None, use_beam_search=False, num_prompts=10000, logprobs=None, request_rate=inf, burstiness=1.0, seed=0, trust_remote_code=False, disable_tqdm=False, profile=False, save_result=False, save_detailed=False, append_result=False, metadata=None, result_dir=None, result_filename=None, ignore_eos=True, percentile_metrics='ttft,tpot,itl', metric_percentiles='99', goodput=None, request_id_prefix='benchmark-serving', custom_output_len=256, custom_skip_chat_template=False, sonnet_input_len=550, sonnet_output_len=150, sonnet_prefix_len=200, sharegpt_output_len=None, random_input_len=1024, random_output_len=128, random_range_ratio=0.0, random_prefix_len=0, hf_subset=None, hf_split=None, hf_output_len=None, top_p=None, top_k=None, min_p=None, temperature=None, tokenizer_mode='auto', served_model_name=None, lora_modules=None, ramp_up_strategy=None, ramp_up_start_rps=None, ramp_up_end_rps=None)
Starting initial single prompt test run...
Initial test run completed. Starting main benchmark run...
Traffic request rate: inf RPS.
Burstiness factor: 1.0 (Poisson process)
Maximum request concurrency: None
100%|████████████████████████████████████████████████████████████████████████████████| 10000/10000 [12:44<00:00, 13.08it/s]
============ Serving Benchmark Result ============
Successful requests:                     10000     
Benchmark duration (s):                  764.43    
Total input tokens:                      2205227   
Total generated tokens:                  2028045   
Request throughput (req/s):              13.08     
Output token throughput (tok/s):         2653.01   
Total Token throughput (tok/s):          5537.80   
---------------Time to First Token----------------
Mean TTFT (ms):                          411352.61 
Median TTFT (ms):                        456690.74 
P99 TTFT (ms):                           735033.44 
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          294.92    
Median TPOT (ms):                        301.68    
P99 TPOT (ms):                           537.27    
---------------Inter-token Latency----------------
Mean ITL (ms):                           292.94    
Median ITL (ms):                         287.58    
P99 ITL (ms):                            1119.66   
==================================================
How would you like to use TensorRT-LLM

I want to run inference of a [specific model](put Hugging Face link here). I don't know how to integrate it with TensorRT-LLM or optimize it for my use case.

Specific questions:

  • Model:
  • Use case (e.g., chatbot, batch inference, real-time serving):
  • Expected throughput/latency requirements:
  • Multi-GPU setup needed:
Before submitting a new issue...
  • Make sure you already searched for relevant issues, and checked the documentation and examples for answers to frequently asked questions.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the documented trtllm-serve serve command and the /tmp/config.yml options, then inspect vllm/benchmarks/benchmark_serving.py and reproduce the reported Qwen/Qwen3-30B-A3B-FP8 run. Compare the resulting throughput and latency with the expected H800 benchmark; the issue is complete when the cause of the low performance or a confirmed configuration problem is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, linux, python
Domain
ai, backend, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.