`torch_tensorrt.dynamo.compile` silently drops settings it does not know, so a typo changes the result with no warning

Aperta
#5,040 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 3 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
Mezza giornata
Idoneità per principianti
65/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
api

Direzione di ricerca

Start in torch_tensorrt.dynamo.compile, which takes **kwargs and reads only a few known names, and in the torch_tensorrt.compile wrapper that forwards to it. Run the repro with the misspelled min_blok_size and confirm no _run_on_acc submodule appears. Done when an unknown keyword raises TypeError naming it, while the deprecated names that are still accepted keep their warnings.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

What is wrong

torch_tensorrt.dynamo.compile and torch_tensorrt.compile accept any keyword. A setting name they do not know is dropped with no error and no warning. So a misspelled setting, a setting from a newer release, or a setting that only one code path reads, simply does nothing, and the user finds out much later, if at all.

What this blocks

No policy in pytorch/executorch#24353 is blocked by this today.
Earlier, lingbot_vla_v2 lost a setting this way: the export passed, and its program failed only later, when it was loaded without PyTorch.
A fix turns such mistakes into an error at compile time.

Repro
import torch
import torch_tensorrt


class Small(torch.nn.Module):
    def forward(self, x):
        return torch.relu(x * 2 + 1)


x = torch.randn(4, 8, device="cuda")
program = torch.export.export(Small().cuda(), (x,))

# "min_blok_size" is misspelled on purpose.
trt_gm = torch_tensorrt.dynamo.compile(program, arg_inputs=[x], min_blok_size=1)
print([name for name, _ in trt_gm.named_children()])
# No error and no warning. The default min_block_size (5) is used,
# so the 3-op graph stays in PyTorch: no _run_on_acc submodule.
Actual

No message mentions min_blok_size. The only related message is about the default min_block_size:

WARNING:torch_tensorrt.dynamo._compiler:3 supported operations detected in subgraph containing 3 computational nodes. Skipping this subgraph, since min_block_size was detected to be 5
['_guards_fn']

torch_tensorrt.compile(model, ir="dynamo", inputs=[x], min_blok_size=1) prints the same 2 lines.

Expected

An unknown setting raises TypeError (or at least warns), naming the setting. The few deprecated names that are still accepted on purpose can keep their deprecation warnings.

Versions

torch 2.15.0 (CUDA 13.2), torch_tensorrt 2.15.0, TensorRT 11.4.0.106, Linux x86_64, H100, driver 580.126.09.

What was tried

Reading compile(): it takes **kwargs and reads only debug, truncate_long_and_double, refit, make_refittable and enable_cross_compile_for_windows from it. Everything else is ignored. Related but different: #5030 (a known setting ignored) and #5031 (extra kwarg_inputs ignored).

Lingua principale
Python
Stelle
3k
Fork
421
Merge medio
4g 7h
PR unite (30g)
62

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pytorch/TensorRT

Tutte le issue di pytorch/TensorRT

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.