Repository navigation
[None][fix] Nemotron-H VL: run the RADIO vision tower on the TRTLLM attention backend #21458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -667,6 +667,9 @@ def __init__(self, model_config: ModelConfig[transformers.PretrainedConfig]): | |
| self.vision_model = RADIOVisionModel( | ||
| vision_model_config, | ||
| disable_quantization=True, | ||
| # FlashInfer's cuDNN ragged-prefill plan build for a new image shape can stall | ||
| # indefinitely while the language model replays CUDA graphs, freezing the server. | ||
| vision_attn_backend="TRTLLM", | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the report. #20011 describes what looks like the same hang on B200 with MTP and xgrammar. Did your Spark setup also use MTP and a guided decoding backend? And does it still hang on current main, where the cuDNN prefill graph is no longer rebuilt per image shape? If it's the #20011 case, that fix may be a better place than changing the RADIO default on every GPU.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the pointer to #20011. Our Spark (GB10, SM121) setup used guided decoding with xgrammar, but its speculation was DFlash, not MTP, on 1.4.0rc1. We haven't retried on current main yet, so we can't say whether it still hangs there. We can rerun on a main build on the Spark and report back. If it no longer reproduces, we're fine narrowing this PR or closing it in favor of the #20011 fix. |
||
| encoder_cuda_graph_config=encoder_cuda_graph_config, | ||
| ) | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Script executed:
rg -n -i 'NemotronH|RADIOVisionModel|vision_attn_backend|TRTLLM' tests tensorrt_llm/_torch/models/modeling_nemotron_h_multimodal.pyRepository: NVIDIA/TensorRT-LLM
Length of output: 45656
Script executed:
Repository: NVIDIA/TensorRT-LLM
Length of output: 41474
Script executed:
Repository: NVIDIA/TensorRT-LLM
Length of output: 22079
Add a regression test for the Nemotron-H vision backend selection.
The
NemotronHVisionEncoderconstructor now passesvision_attn_backend="TRTLLM"toRADIOVisionModel, but the existing tests bypass this constructor or replace it with a mock. A future change could restore theFLASHINFERdefault without failing the current tests.Add a focused constructor test that captures the
RADIOVisionModelarguments and assertsvision_attn_backend == "TRTLLM". If supported GPU CUDA-graph coverage is available, also exercise an unseen image shape to cover the reported stall path.