Nvidia tensorrt llm trtllm serve config guide
Skill autohandai/community-skills/nvidia-tensorrt-llm-trtllm-serve-config-guide
A collection of curated, useful, and safe skills for Autohand Code CLI Agent
npx -y skills add autohandai/community-skills --skill nvidia-tensorrt-llm-trtllm-serve-config-guideAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate a source-backed starting `trtllm-serve --config` YAML for basic aggregate single-node PyTorch serving, aligned with checked-in TensorRT-LLM configs and deployment docs. Preserves explicit latency / balanced / throughput objectives. Excludes disaggregated, multi-node, and non-MTP speculative configs.
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Serve Config Guide
Scope: aggregate/IFB (in-flight batching) colocated prefill+decode, single node, PyTorch backend, non-speculative by default; DeepSeek-R1 MTP is the standard mode (all checked-in configs include it).
Input: model, GPU, ISL (input sequence length), OSL (output sequence length), concurrency, TP, performance objective (Min Latency | Balanced | Max Throughput | unspecified).
Output: repo-grounded starting YAML for trtllm-serve --config.
If the request is adjacent but out of scope, provide a best-effort answer using the nearest in-scope config as a starting point, clearly label inferred vs. verified fields, and point to the relevant feature doc in docs/source/features/ (e.g., speculative-decoding, disagg-serving, parallel-strategy) or examples/llm-api/.
Constraints
-
Speculative exclusion: Exclude configs containing
speculative_configby default. Exception: exact checked-in DeepSeek-R1 MTP configs (models withdecoding_type: MTPinexamples/configs/). When including MTP, copy the fullspeculative_configblock verbatim — never interpolate speculative fields. -
Objective preservation: Preserve the user's stated objective through config selection. Use
database.pyprofile labels (Min Latency,Balanced,Max Throughput; plusLow Latency/High Throughputin smaller sets) as selection aids. If a config is unlabeled, treat it as a default starting point — do not claim it matches a specific objective. If the only match conflicts with the stated objective, call out the mismatch. -
Source preference: Prefer checked-in configs over interpolation. When docs and configs disagree, prefer the config for the exact scenario and note the mismatch. Mark any interpolation as unverified.
Response Format
For exact matches: Config → Source → Launch command
For interpolated configs: Config → Source used as starting point → What to benchmark (single list of knobs worth sweeping, not per-field unverified tags)
Step 0: Lock Objective and Decode Mode
Identify the user's objective (Min Latency | Balanced | Max Throughput | unspecified) and decode mode (non-speculative or DeepSeek-R1 MTP per Constraint 1). Preserve both through the remaining steps.
Step 1: Exact Database Match
Search examples/configs/database/lookup.yaml for an exact (model, gpu, isl, osl, concurrency, num_gpus) match. Use database.py as a loader/helper.
- Apply speculative exclusion.
- When multiple recipes exist at different concurrency points, use profile labels to match the user's objective per objective preservation.
- Prefer an exact match that also matches the stated objective over manual tuning.
Step 2: Nearest Checked-In Config
If no exact match, widen the search to also include examples/configs/curated/lookup.yaml.
Apply the same constraints as Step 1. Additionally:
- A partial match from
database/is preferred over a partial match fromcurated/for the same model (database configs are benchmark-tuned). - Exclude disaggregated-only or prefill-only entries (e.g.,
qwen3-disagg-prefill.yaml). - For curated configs, only treat intent as explicit when the repo labels it (e.g.,
*-latency.yaml,*-throughput.yaml, or guide text). - If no in-scope config matches the stated objective, pick the nearest same-model starting point and call out the mismatch.
Step 3: Read Model Docs
Search docs/source/deployment-guide/ and examples/models/core/ for the model's deployment guide and README. Read both before adjusting knobs.
Excluded sources: Do NOT use docs/source/legacy/ tuning values or benchmark numbers — those were measured on the TensorRT engine-building backend and do not transfer to PyTorch backend serving.
DeepSeek-V3 caveat: For DeepSeek-V3/V3.2-Exp, use examples/models/core/deepseek_v3/README.md, not the R1 deployment guide.
Step 4: Adjust Source-Backed Fields
Commonly scenario-dependent fields (adjust only these, guided by the checked-in source):
max_batch_size, max_num_tokens, max_seq_len, enable_attention_dp, attention_dp_config.*, kv_cache_config.free_gpu_memory_fraction, moe_expert_parallel_size (MoE), moe_config.backend (when guide specifies), stream_interval, num_postprocess_workers, cuda_graph_config.max_batch_size/batch_sizes, and MTP-specific fields when using DeepSeek-R1 MTP configs.
Do not assume other fields are constant across models/GPUs. For tuning notes, read references/knob-heuristics.md.
Validation Checklist
-
trust_remote_code: truecalled out as trust boundary when present -
max_num_tokens>= ISL + chat template overhead (requests rejected if violated) - If interpolated: single "What to benchmark" section listing knobs to sweep, not per-field unverified tags
What ships with it: 2 files
17.8 KB alongside SKILL.md
references/
- knob-heuristics.md5.9 KB
- LICENSE11.9 KB