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

オープン
#5,040 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
半日
初心者へのやさしさ
65/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
python
領域
api

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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).

主要言語
Python
スター
3k
フォーク
421
平均マージ
4日 7時間
マージ済み PR(30日)
62

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pytorch/TensorRT のほかの issue

pytorch/TensorRT の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。