Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
376 changes: 376 additions & 0 deletions .claude/agents/perf-test-sync.md

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions jenkins/scripts/perf/local/submit.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,6 @@ def generate_sbatch_params(args, hardware_config, work_dir):
f"#SBATCH --segment={total_nodes}",
f"#SBATCH --ntasks={total_gpus}",
f"#SBATCH --ntasks-per-node={gpus_per_node}",
f"#SBATCH --gpus-per-node={gpus_per_node}",
f"#SBATCH --gres=gpu:{gpus_per_node}",
f"#SBATCH --partition={args.partition}",
f"#SBATCH --time={args.time}",
f"#SBATCH --account={args.account}",
Expand Down
4 changes: 4 additions & 0 deletions tests/integration/defs/perf/test_perf_sanity.py
Original file line number Diff line number Diff line change
Expand Up @@ -1384,9 +1384,13 @@ def _parse_disagg_config_file(self, config_file_path: str, config_file: str):
for concurrency in concurrency_values:
client_config_data = {
"concurrency": concurrency,
<<<<<<< HEAD
"iterations": 1 if benchmark_mode == "gen_only" else benchmark.get("multi_round", 1),
=======
"iterations": 1
if benchmark_mode == "gen_only"
else benchmark.get("multi_round", 1),
>>>>>>> upstream/main
Comment on lines +1387 to +1393

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n '^(<<<<<<<|=======|>>>>>>>)' tests/integration/defs/perf/test_perf_sanity.py
sed -n '1384,1395p' tests/integration/defs/perf/test_perf_sanity.py

Repository: NVIDIA/TensorRT-LLM

Length of output: 613


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Check copyright header
echo "=== Copyright Header ==="
head -5 tests/integration/defs/perf/test_perf_sanity.py

# Confirm conflict markers are still present
echo ""
echo "=== Conflict Markers Check ==="
rg -n '^(<<<<<<<|=======|>>>>>>>)' tests/integration/defs/perf/test_perf_sanity.py

# Show the exact conflict region
echo ""
echo "=== Conflict Region (lines 1385-1396) ==="
sed -n '1385,1396p' tests/integration/defs/perf/test_perf_sanity.py

Repository: NVIDIA/TensorRT-LLM

Length of output: 1020


Resolve the merge-conflict block at lines 1387–1393 before merge.

The file contains unresolved conflict markers (<<<<<<<, =======, >>>>>>>), preventing the perf suite from importing or running.

Suggested fix
                 "concurrency": concurrency,
-<<<<<<< HEAD
-                "iterations": 1 if benchmark_mode == "gen_only" else benchmark.get("multi_round", 1),
-=======
                 "iterations": 1
                 if benchmark_mode == "gen_only"
                 else benchmark.get("multi_round", 1),
->>>>>>> upstream/main
                 "isl": benchmark.get("input_length", 1024),

Also update the copyright header year from 2022-2025 to 2022-2026.

🧰 Tools
🪛 Flake8 (7.3.0)

[error] 1387-1387: SyntaxError: invalid syntax

(E999)

🪛 GitHub Actions: Release Checks

[error] 1387-1394: pre-commit (ruff) failed with exit code 1 due to SyntaxError caused by unresolved merge conflict markers (e.g., '<<<<<<< HEAD' / '=======' / '>>>>>>> upstream/main').


[error] 1387-1387: pre-commit (ruff-format) failed with exit code 2: Failed to parse file at line 1387 (Expected an expression or a '}').

🪛 Ruff (0.15.10)

[warning] 1387-1387: Expected an expression or a '}'

(invalid-syntax)


[warning] 1387-1387: Expected an expression or a '}'

(invalid-syntax)


[warning] 1387-1387: Expected an expression or a '}'

(invalid-syntax)


[warning] 1387-1387: Expected an expression or a '}'

(invalid-syntax)


[warning] 1388-1388: Expected :, found string

(invalid-syntax)


[warning] 1388-1388: Expected ,, found :

(invalid-syntax)


[warning] 1388-1388: Expected :, found ,

(invalid-syntax)


[warning] 1389-1389: Expected ,, found ==

(invalid-syntax)


[warning] 1389-1389: Expected ,, found ==

(invalid-syntax)


[warning] 1389-1389: Expected ,, found ==

(invalid-syntax)


[warning] 1389-1389: Expected ,, found =

(invalid-syntax)


[warning] 1393-1393: Expected ,, found >>

(invalid-syntax)


[warning] 1393-1393: Expected ,, found >>

(invalid-syntax)


[warning] 1393-1393: Expected ,, found >>

(invalid-syntax)


[warning] 1393-1393: Expected ,, found >

(invalid-syntax)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/integration/defs/perf/test_perf_sanity.py` around lines 1387 - 1393,
Remove the merge-conflict markers around the "iterations" entry in
tests/integration/defs/perf/test_perf_sanity.py and keep the intended expression
(i.e., the conditional that sets "iterations" to 1 when benchmark_mode ==
"gen_only" and otherwise uses benchmark.get("multi_round", 1)); ensure the final
line has no <<<<<<<, =======, or >>>>>>> tokens and is syntactically correct.
Also update the copyright header year range from "2022-2025" to "2022-2026"
wherever it appears in the file.

"isl": benchmark.get("input_length", 1024),
"osl": osl,
"random_range_ratio": benchmark.get("benchmark_ratio", 0.0),
Expand Down
192 changes: 111 additions & 81 deletions tests/integration/test_lists/qa/llm_perf_multinode.txt

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions tests/integration/test_lists/waives.txt
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,11 @@ accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16_4gpus[pp4-mt
disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6057459)
disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] SKIP (https://nvbugs/6057460)
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-v32-fp4_32k4k_con2048_ctx1_dep4_gen1_dep32_eplb288_mtp1_ccb-UCX] SKIP (https://nvbugs/6085022)
<<<<<<< HEAD
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp2_ccb-UCX] SKIP (https://nvbugs/6060119)
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con64_ctx1_pp8_gen1_dep32_eplb0_mtp3_ccb-UCX] SKIP (https://nvbugs/6060119)
=======
>>>>>>> upstream/main
Comment on lines +314 to +318

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Resolve leftover merge-conflict markers in the waive list.

Line 314 and Line 318 still contain Git conflict markers. This is a merge blocker and can break waive-list parsing in CI.

Suggested fix
-<<<<<<< HEAD
 perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp2_ccb-UCX] SKIP (https://nvbugs/6060119)
 perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con64_ctx1_pp8_gen1_dep32_eplb0_mtp3_ccb-UCX] SKIP (https://nvbugs/6060119)
-=======
->>>>>>> upstream/main
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<<<<<<< HEAD
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp2_ccb-UCX] SKIP (https://nvbugs/6060119)
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con64_ctx1_pp8_gen1_dep32_eplb0_mtp3_ccb-UCX] SKIP (https://nvbugs/6060119)
=======
>>>>>>> upstream/main
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp2_ccb-UCX] SKIP (https://nvbugs/6060119)
perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb200_deepseek-r1-fp4_128k8k_con64_ctx1_pp8_gen1_dep32_eplb0_mtp3_ccb-UCX] SKIP (https://nvbugs/6060119)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tests/integration/test_lists/waives.txt` around lines 314 - 318, Remove the
leftover Git conflict markers ('<<<<<<< HEAD', '=======', '>>>>>>>
upstream/main') from the waive list and resolve the duplicate block so the file
contains only the intended SKIP entries (e.g. the two
perf/test_perf_sanity.py::test_e2e[...] SKIP lines referencing nvbugs/6060119)
without any conflict markers; edit the block that includes
'perf/test_perf_sanity.py::test_e2e[disagg_upload-…] SKIP
(https://nvbugs/6060119)' to keep the correct entries and delete the conflict
markers and the redundant empty section.

full:sm89/accuracy/test_llm_api_pytorch.py::TestGemma3_1BInstruct::test_fp8_prequantized[torch_compile=False] SKIP (https://nvbugs/6070878)
full:sm89/accuracy/test_llm_api_pytorch.py::TestGemma3_1BInstruct::test_fp8_prequantized[torch_compile=True] SKIP (https://nvbugs/6070878)
accuracy/test_llm_api_pytorch.py::TestGPTOSS::test_w4_1gpu[v1_kv_cache-True-True-triton-auto] SKIP (https://nvbugs/6026676)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

metadata:
model_name: deepseek_r1_0528_fp4_v2
precision: fp4
model_dir_name: DeepSeek-R1-0528-FP4-v2
supported_gpus:
- GB300
benchmark_type: 128k8k
slurm:
partition: <partition>
account: <account>
job_time: 01:00:00
job_name: agg-ctx-only
extra_args: --gres=gpu:4
numa_bind: true
hardware:
gpus_per_node: 4
environment:
container_mount: <container_mount>
container_image: <container_image>
model_path: <model_path>
trtllm_repo: ''
build_wheel: false
work_dir: <full_path_to_work_dir>
worker_env_var: TLLM_LOG_LEVEL=INFO TRTLLM_SERVER_DISABLE_GC=1 TRTLLM_WORKER_DISABLE_GC=1
TRTLLM_ENABLE_PDL=1 ENROOT_ALLOW_DEV=yes MIMALLOC_PURGE_DELAY=0
server_env_var: TRTLLM_SERVER_DISABLE_GC=1
profiling:
nsys_on: false
accuracy:
enable_accuracy_test: false
server_configs:
- name: deepseek-r1-fp4_128k8k_ctx_pp4_fp4_bs1
tensor_parallel_size: 1
pipeline_parallel_size: 4
context_parallel_size: 1
moe_expert_parallel_size: 1
enable_attention_dp: false
max_batch_size: 1
max_num_tokens: 131104
max_seq_len: 131104
kv_cache_config:
enable_block_reuse: false
free_gpu_memory_fraction: 0.4
dtype: fp8
print_iter_log: true
disable_overlap_scheduler: true
moe_config:
backend: TRTLLM
client_configs:
- name: deepseek-r1-fp4_128k8k_ctx_pp4_fp4_bs1_client
concurrency_list: '1'
input_length: 131072
output_length: 8192
dataset_file: <dataset_file>
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

metadata:
model_name: deepseek_r1_0528_fp4_v2
precision: fp4
model_dir_name: DeepSeek-R1-0528-FP4-v2
supported_gpus:
- GB200
- GB300
benchmark_type: 128k8k
slurm:
partition: <partition>
account: <account>
job_time: 01:00:00
job_name: agg-ctx-only
extra_args: --gres=gpu:4
numa_bind: true
hardware:
gpus_per_node: 4
environment:
container_mount: <container_mount>
container_image: <container_image>
model_path: <model_path>
trtllm_repo: ''
build_wheel: false
work_dir: <full_path_to_work_dir>
worker_env_var: TLLM_LOG_LEVEL=INFO TRTLLM_SERVER_DISABLE_GC=1 TRTLLM_WORKER_DISABLE_GC=1
TRTLLM_ENABLE_PDL=1 ENROOT_ALLOW_DEV=yes MIMALLOC_PURGE_DELAY=0
server_env_var: TRTLLM_SERVER_DISABLE_GC=1
profiling:
nsys_on: false
accuracy:
enable_accuracy_test: false
server_configs:
- name: deepseek-r1-fp4_128k8k_ctx_pp8_fp4_bs1
tensor_parallel_size: 1
pipeline_parallel_size: 8
context_parallel_size: 1
moe_expert_parallel_size: 1
enable_attention_dp: false
max_batch_size: 1
max_num_tokens: 131104
max_seq_len: 131104
kv_cache_config:
enable_block_reuse: false
free_gpu_memory_fraction: 0.4
dtype: fp8
print_iter_log: true
disable_overlap_scheduler: true
moe_config:
backend: TRTLLM
client_configs:
- name: deepseek-r1-fp4_128k8k_ctx_pp8_fp4_bs1_client
concurrency_list: '1'
input_length: 131072
output_length: 8192
dataset_file: <dataset_file>
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

metadata:
model_name: deepseek_r1_0528_fp4_v2
precision: fp4
model_dir_name: DeepSeek-R1-0528-FP4-v2
supported_gpus:
- GB200
- GB300
benchmark_type: 1k1k
slurm:
partition: <partition>
account: <account>
job_time: 01:00:00
job_name: agg-ctx-only
extra_args: --gres=gpu:4
numa_bind: true
hardware:
gpus_per_node: 4
environment:
container_mount: <container_mount>
container_image: <container_image>
model_path: <model_path>
trtllm_repo: ''
build_wheel: false
work_dir: <full_path_to_work_dir>
worker_env_var: TLLM_LOG_LEVEL=INFO TRTLLM_SERVER_DISABLE_GC=1 TRTLLM_WORKER_DISABLE_GC=1
TRTLLM_ENABLE_PDL=1 ENROOT_ALLOW_DEV=yes MIMALLOC_PURGE_DELAY=0
server_env_var: TRTLLM_SERVER_DISABLE_GC=1
profiling:
nsys_on: false
accuracy:
enable_accuracy_test: false
server_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4
tensor_parallel_size: 4
pipeline_parallel_size: 1
context_parallel_size: 1
moe_expert_parallel_size: 4
enable_attention_dp: true
max_batch_size: 4
max_num_tokens: 4608
max_seq_len: 2251
kv_cache_config:
enable_block_reuse: false
free_gpu_memory_fraction: 0.85
dtype: fp8
print_iter_log: true
disable_overlap_scheduler: true
client_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4_client
concurrency_list: '1'
input_length: 1024
output_length: 1024
dataset_file: <dataset_file>
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

metadata:
model_name: deepseek_r1_0528_fp4_v2
precision: fp4
model_dir_name: DeepSeek-R1-0528-FP4-v2
supported_gpus:
- GB200
- GB300
benchmark_type: 1k1k
slurm:
partition: <partition>
account: <account>
job_time: 01:00:00
job_name: agg-ctx-only
extra_args: --gres=gpu:4
numa_bind: true
hardware:
gpus_per_node: 4
environment:
container_mount: <container_mount>
container_image: <container_image>
model_path: <model_path>
trtllm_repo: ''
build_wheel: false
work_dir: <full_path_to_work_dir>
worker_env_var: TLLM_LOG_LEVEL=INFO TRTLLM_SERVER_DISABLE_GC=1 TRTLLM_WORKER_DISABLE_GC=1
TRTLLM_ENABLE_PDL=1 ENROOT_ALLOW_DEV=yes MIMALLOC_PURGE_DELAY=0
server_env_var: TRTLLM_SERVER_DISABLE_GC=1
profiling:
nsys_on: false
accuracy:
enable_accuracy_test: false
server_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4_v1
tensor_parallel_size: 4
pipeline_parallel_size: 1
context_parallel_size: 1
moe_expert_parallel_size: 4
enable_attention_dp: true
max_batch_size: 4
max_num_tokens: 4608
max_seq_len: 2251
kv_cache_config:
enable_block_reuse: true
free_gpu_memory_fraction: 0.85
dtype: fp8
print_iter_log: true
disable_overlap_scheduler: true
client_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4_v1_client
concurrency_list: '1'
input_length: 1024
output_length: 1024
dataset_file: <dataset_file>
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

metadata:
model_name: deepseek_r1_0528_fp4_v2
precision: fp4
model_dir_name: DeepSeek-R1-0528-FP4-v2
supported_gpus:
- GB200
- GB300
benchmark_type: 1k1k
slurm:
partition: <partition>
account: <account>
job_time: 01:00:00
job_name: agg-ctx-only
extra_args: --gres=gpu:4
numa_bind: true
hardware:
gpus_per_node: 4
environment:
container_mount: <container_mount>
container_image: <container_image>
model_path: <model_path>
trtllm_repo: ''
build_wheel: false
work_dir: <full_path_to_work_dir>
worker_env_var: TLLM_LOG_LEVEL=INFO TRTLLM_SERVER_DISABLE_GC=1 TRTLLM_WORKER_DISABLE_GC=1
TRTLLM_ENABLE_PDL=1 ENROOT_ALLOW_DEV=yes MIMALLOC_PURGE_DELAY=0
server_env_var: TRTLLM_SERVER_DISABLE_GC=1
profiling:
nsys_on: false
accuracy:
enable_accuracy_test: false
server_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4_v2
tensor_parallel_size: 4
pipeline_parallel_size: 1
context_parallel_size: 1
moe_expert_parallel_size: 4
enable_attention_dp: true
max_batch_size: 4
max_num_tokens: 4480
max_seq_len: 2176
kv_cache_config:
enable_block_reuse: false
free_gpu_memory_fraction: 0.85
dtype: fp8
print_iter_log: true
disable_overlap_scheduler: true
client_configs:
- name: deepseek-r1-fp4_1k1k_ctx_tp4_ep4_fp4_attndp_bs4_v2_client
concurrency_list: '1'
input_length: 1024
output_length: 1024
dataset_file: <dataset_file>
Loading
Loading