[TRTLLM-14026][feat] BREAKING: Remove TensorRT from the C++ tree#16234
Draft
Wanli-Jiang wants to merge 2 commits into
Draft
[TRTLLM-14026][feat] BREAKING: Remove TensorRT from the C++ tree#16234Wanli-Jiang wants to merge 2 commits into
Wanli-Jiang wants to merge 2 commits into
Conversation
Remove the TensorRT execution backend from the Python package so that `import tensorrt_llm` and the PyTorch backend run without the `tensorrt` package installed. The `tensorrt` pip dependency itself is dropped in the follow-up C++/packaging step; `requirements.txt` is unchanged here. - Delete the TensorRT graph/build/runtime machinery: builder, network, functional graph ops, layers/, plugin/, the legacy models/ implementations, the runtime/ session and ModelRunner* classes, _tensorrt_engine, TRT quant layers and tools, and the trtllm-build/refit/prune CLIs. - Keep import paths stable: partly-TensorRT modules (functional.py, models/modeling_utils.py, _common.py, runtime/, bench/build) are gutted in place so the TensorRT-free symbols used by the PyTorch backend stay put; no `_torch/` import churn. - Drop the TensorRT public API surface (Builder/BuildConfig/TrtLlmArgs/...); `LLM(backend="tensorrt")` now raises and `trtllm-serve --backend` accepts pytorch/_autodeploy only (api_stability serve-CLI reference updated). - Remove or de-TRT the tests that exercised the deleted code (disaggregated trt-backend tests, TRT bench/openai e2e params, mixed llmapi unittest suites) and delist them from test-db/qa/waives; shared test harnesses keep their signatures for the PyTorch twins. - Port test_gather_generation_logits_cuda_graph to the PyTorch accuracy suite; repoint examples/apps to the PyTorch LLM; regenerate ruff-legacy-baseline.json. Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
Sever the C++ tree's compile- and link-time dependency on TensorRT so the shared core (runtime, batch manager, executor API, KV cache, sampling, kernels, nanobind bridge) builds, links, and runs without the TensorRT library. Follows the Python TensorRT-backend removal (TRTLLM-14022); PyTorch is the sole backend. Internal types (serialization-compatible): - add tensorrt_llm::DataType/Dims/ILogger (common/tllmDataType.h); DataType enumerator values mirror nvinfer1::DataType for byte-compatible serialization, Dims layout mirrors nvinfer1::Dims - migrate nvinfer1::DataType/Dims/ILogger -> tensorrt_llm:: across 206 surviving files; replace NvInfer*.h includes with the internal header; drop 12 dead NvInfer includes from files that never referenced nvinfer1 - add tests/unittest/bindings/test_datatype_parity.py guarding the enumerator values (auto-scheduled via the existing unittest/bindings test-db entries) Remove the TensorRT-engine execution path (unused by the PyTorch backend): - plugins/ (nvinfer_plugin_tensorrt_llm), engine runtime wrappers (tllmRuntime, tllmStreamReaders, layerProfiler, rawEngine, tllmLogger), TRT model adapters (trtGptModel*/trtEncoderModel/trtGptModelFactory), executor.cpp/executorImpl, the C++ Executor + TllmRuntime + LogitsPostProcessor nanobind bindings (0 Python users each), executor_worker, disaggServerUtil, engine I/O buffers and engine-only logits/decoder algos, executor/model.h (0 consumers), the ModelSpec test helper + binding (orphaned) - relocate the retained KVCacheEvent ctor and executor::version() into executor/kvCacheEvent.cpp - decouple shared files (inflightBatchingUtils, medusaBuffers, lookaheadBuffers, dataTransceiver) from the removed engine runtime - delete the engine-driven C++ tests (e2e_tests engine tests, executorTestSmall*, tllmRuntimeTest, encDecBeamSearchTest, tests/utils engine builders), C++ benchmarks (bertBenchmark, gptManagerBenchmark, disaggServerBenchmark; the prepare_dataset.py tooling used by trtllm-bench stays), examples/cpp executor examples, and the cpp/tests/resources engine-build scripts - fix kept tests: strip vestigial never-consumed TllmLogger members (7 files), repoint ropeTest.cu to kernels/gptKernels.h, inline the engine-free createDecoderBatchInputs helper into gptDecoderBatchedTest - remove the IS_BUILDING build-time env contract end to end (common/opUtils.h isBuilding + attentionOp gate + _common.py half) - remove the llm_args=None engine path from executor/base_worker.py (tllm.Executor no longer exists); llm_args is now required Build/packaging (no TensorRT): - drop find_package(TensorRT)/TRT_LIB/NvInfer include injection and the plugins/executor_worker/benchmarks subdirs from the cpp CMake; delete FindTensorRT.cmake - build_wheel.py: trt_root optional (default None), drop the tensorrt venv check and the nvinfer_plugin/executorWorker/benchmarks targets - setup.py no longer packages libnvinfer_plugin_tensorrt_llm.so / executorWorker; requirements.txt drops tensorrt - jenkins/Build.groovy: drop --benchmarks, the benchmark/libnvinfer-plugin tarball packaging, and the build_cpp_examples.py step - delist the removed tests from test-db/waives.txt/.test_durations and prune tests/integration/defs/cpp to the shared-core gtest wrappers Signed-off-by: Wanli Jiang <35160485+Wanli-Jiang@users.noreply.github.com>
53d64f3 to
4401321
Compare
Collaborator
Author
|
/bot run --disable-fail-fast |
Collaborator
|
PR_Github #58652 [ run ] triggered by Bot. Commit: |
Collaborator
|
PR_Github #58652 [ run ] completed with state
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Line-by-line analysis of every code-bearing change in the commit
"[TRTLLM-14026][feat] BREAKING: Remove TensorRT from the C++ tree"
(base = Phase B
a803a4f874onorigin/main@ed3659a865, HEAD53d64f3e74).Overview
This PR severs the C++ tree's compile- and link-time dependency on TensorRT so the
shared core (runtime, batch manager, executor API, KV cache, sampling, kernels,
nanobind bridge) builds, links, and runs without the TensorRT library, and closes
the packaging gate (
requirements.txtdropstensorrt). It is the C++ half of thestaged TensorRT-backend removal, following examples #15763, docs #15767, tests
#15810, the Triton C++ backend #15907, and the Python backend removal (TRTLLM-14022,
PR #15918).
used three
nvinfer1types as common currency (DataType,Dims,ILogger).Those now live in
common/tllmDataType.has standalonetensorrt_llm::types withidentical enumerator values and layout (serialization stays byte-compatible),
and every surviving file is respelled
nvinfer1::X→tensorrt_llm::X. Becauseenum classtypes do not interconvert, the TensorRT-engine execution path (whichmust keep the real
nvinfer1types) cannot compile against the migrated core —so its removal is forced into the same PR, matching the shape of the original
draft (Remove tensorrt backend QiJune/TensorRT-LLM#20, commit
59eb547a6d), re-derived on the live tree.bindings, so it owns every test that drives them — engine-driven C++ gtests,
their Python integration wrappers, and all
test-db/waives/.test_durationsentries are removed here.
build_wheel.pywithout--trt_rootgreen;readelf -don
libtensorrt_llm.so/libth_common.so/bindings.*.soshows nolibnvinferNEEDED entry;
import tensorrt_llm+ bindings succeed with thetensorrtpackage hard-blocked;
test_datatype_parity.pygreen (values 0–11 match legacy);pytest --co tests/unittestcollects clean; quickstart e2e on H100 producescorrect output;
pre-commitfully green.A. Internal types (serialization-compatible)
cpp/include/tensorrt_llm/common/tllmDataType.h(ADDED)tensorrt_llm::DataType(enum class : int32_t, values 0–11 =kFLOAT..kE8M0),Dims(int32_t nbDims+int64_t d[8],MAX_DIMS=8),ILoggerSeverity/ILogger. Includes only<cstdint>+common/config.h; wrapped inTRTLLM_NAMESPACE_BEGIN/END.nvinfer1::DataTypeand theDimslayout mirrors TRT-10Dims64so previously-serialized executor configs and KV-cache metadata stay byte-compatible.pr6-migrate-files.txt)nvinfer1::DataType→tensorrt_llm::DataType(~2,000 uses),nvinfer1::Dims→tensorrt_llm::Dims(~60),nvinfer1::ILogger→tensorrt_llm::ILogger; 53NvInfer*.hincludes replaced bytllmDataType.h; 151 explicittllmDataType.hincludes added to files that had used the types only transitively (the new names are declared only in the new header).cpp/include23, thop 15, layers 9, nanobind 8, executor 6, common 6, tests 73, micro_benchmarks 1.NvInfer*.hincludes (runtime/{loraCache,worldConfig}.h,batch_manager/cacheFormatter.h,kernels/…/moe_util_kernels.h,kernels/weightOnlyBatchedGemv/cudaCoreGemm{,NVFP4}.h,runtime/loraManager.cpp,thop/{allgather,reducescatter,noAuxTc,IndexerTopK}Op.cpp,unit_tests/kernels/cudaCoreGemm/cudaCoreGemmKernelTest.cpp)nvinfer1at all; each verified to include its cuda headers explicitly.cpp/include/tensorrt_llm/runtime/iTensor.hnamespace nvinfer1 { class IExecutionContext; }fwd-decl.tllmRuntime.{h,cpp}) are deleted and includedNvInferRuntime.hthemselves. (The draft leaked this into its end state.)cpp/tensorrt_llm/kernels/cutlass_kernels/moe_gemm/moe_kernels.cumoeLoraNvInferType→moeLoraDataType(3 uses) + comment reword.cpp/tests/unit_tests/multi_gpu/kernels/allReduce/gemmAllReduceTest.cuusing namespace nvinfer1;.tests/unittest/bindings/test_datatype_parity.py(ADDED)tensorrt_llm.bindings.DataTypemember set + integer values match the legacynvinfer1::DataTypevalues (FLOAT=0 … NVFP4=10).unittest/bindingsentries inl0_a10/h100/gh200.yml.B. Engine execution path — deleted C++ sources
cpp/tensorrt_llm/plugins/**nvinfer_plugin_tensorrt_llm) — only consumed by TRT engines.cpp/tensorrt_llm/batch_manager/trtGptModel*,trtEncoderModel,trtGptModelFactory) + engine-only buffers/algos (runtimeBuffers,encoderBuffers,transformerBuffers,promptTuningBuffers,rnnStateBuffers,loraBuffers,handleContextLogits,handleGenerationLogits,logitsPostProcessor,makeDecodingBatchInputOutput,updateDecoderBuffers) — the PyTorch pyexecutor has its own Python implementations.cpp/tensorrt_llm/runtime/tllmRuntime.{h,cpp},tllmStreamReaders.{h,cpp},layerProfiler.{h,cpp},tllmLogger.cpp.cpp/include/tensorrt_llm/runtime/rawEngine.h,runtime/tllmLogger.h,executor/disaggServerUtil.h,plugins/api/tllmPlugin.h.cpp/tensorrt_llm/executor/executor.cpp,executorImpl.{h,cpp}(the engineExecutor),disaggServerUtil.cpp, andmodel.h(0 remaining consumers — verified).cpp/tensorrt_llm/executor_worker/executorWorkerorchestrator binary (engine-mode only).cpp/tensorrt_llm/nanobind/Executorbinding (executor/executor.{h,cpp}) and theModelSpecbinding (testing/modelSpecBinding.{h,cpp}) — 0 Python users each after the test deletions below;kvCacheManagerTestUtilBinding(live users) kept.cpp/tensorrt_llm/testing/modelSpec.{h,cpp}+ thetesting_srcCMake target — engine test-data path helper, orphaned.kvCacheManagerTestUtil.h(header-only, live binding) kept in place.cpp/cmake/modules/FindTensorRT.cmakefind_package(TensorRT)remains.C. Relocations (retained symbols out of deleted files)
cpp/tensorrt_llm/executor/kvCacheEvent.cpp(ADDED)KVCacheEventconstructor +executor::version(), relocated from the deletedexecutor.cpp/executorImpl(taken verbatim from the draft).D. Shared C++ files decoupled from the removed engine runtime
batch_manager/utils/inflightBatchingUtils.{h,cpp}copyGenerationLogits(needsRuntimeBuffers::GenerationLogitsCache),findOutputTensor,copyAdditionalOutputs, and theCudaGraphExecutor/CudaGraphExecutorCacheclasses (driveTllmRuntimecontexts). The PyTorch-used helpers stay.runtime/lookaheadBuffers.{h,cpp}LookaheadRuntimeBuffersclass (ctor takesTllmRuntime const&); keptLookaheadDecodingBuffers.layers/lookaheadDecodingUtils.hinclude →common/cudaUtils.h(fordivUp).batch_manager/medusaBuffers.{h,cpp}MedusaBuffersengine ctor (takesTllmRuntime const&, readsengine.getTensorDataType("medusa_logits")) +medusaModule/speculativeChoicesUtilsincludes; keptreshape/insertInputTensors.batch_manager/dataTransceiver.cppruntimeBuffers.hinclude.nanobind/runtime/bindings.cppTllmRuntimeclass binding (~40 lines) +tllmRuntime.hinclude.nanobind/batch_manager/algorithms.cppLogitsPostProcessoralgorithm binding + include.nanobind/executor/bindings.cppExecutorclass registration.ExecutorConfig, request/response types) are untouched — the PyTorch backend keeps using them.nanobind/bindings.cppmodelSpecBinding.hinclude +initBindings(mInternalTesting)call; keptinitKvCacheTestUtilBindings.common/opUtils.h+common/attentionOp.cpp+tensorrt_llm/_common.pyisBuilding()(env probe), theif (isBuilding()) return 0;gate inattentionOp::initialize, and the Python_BuildingFlag/_is_buildingwriters ofIS_BUILDING(+ now-unusedwrapsimport).IS_BUILDINGPython↔C++ contract only skipped NCCL setup duringtrtllm-build; no writer remains. Both halves deleted together (as the Phase B TODO in_common.pysaid).E. Python executor layer (the engine path's last consumers)
tensorrt_llm/executor/base_worker.py_create_engine()(constructedtllm.Executor(engine_path, ModelType.DECODER_ONLY, executor_config));setup_enginenow assertsllm_args is not Noneand always builds the PyExecutor; the threeisinstance(self.engine, tllm.Executor)branches infetch_stats/fetch_kv_cache_capacity/fetch_kv_cache_eventscollapsed to the PyTorch side.Executorclass no longer exists — anytllm.Executorattribute access would raise at runtime.llm_args=Nonewas unreachable from the LLM API since Phase B.tensorrt_llm/executor/worker.pyblock_subordinatesdrops theisinstance(self.engine, tllm.Executor)early-exit branch.tensorrt_llm/__init__.py_preload_tensorrt_libs()shim (import of thetensorrtpackage to preloadlibnvinferfor the bindings).bindings.*.so's DT_NEEDED onlibnvinfer.so.10— is gone; verified by importing withtensorrthard-blocked.F. Build & packaging (the final gate)
cpp/CMakeLists.txtfind_package(TensorRT 10 REQUIRED COMPONENTS OnnxParser)+set(TRT_LIB TensorRT::NvInfer), theTensorRT::NvInferinclude-dir injection, theBUILD_BENCHMARKSoption/messages/add_subdirectory(benchmarks/cpp), andnvinfer_plugin_tensorrt_llmfrom the build-time measurement list.cpp/tensorrt_llm/CMakeLists.txtadd_subdirectory(plugins),add_subdirectory(executor_worker),add_subdirectory(testing),${TRT_LIB}andtesting_srcfrom the link list.cpp/tensorrt_llm/{batch_manager,runtime,executor}/CMakeLists.txt,nanobind/CMakeLists.txtSRCSlists;kvCacheEvent.cppadded;executor/executor.cpp+testing/modelSpecBinding.cppdropped from the nanobind module.scripts/build_wheel.pytrt_rootdefault'/usr/local/tensorrt'→None; the "Ensure base TRT is installed" venv check removed;nvinfer_plugin_tensorrt_llm/executorWorkerdropped from targets; the plugin.so/.dllandexecutorWorkerinstall steps and thebin/dir removed; the--benchmarksflag + target removed.setup.pypackage_datadropsbin/executorWorker,libs/libnvinfer_plugin_tensorrt_llm.so,libs/nvinfer_plugin_tensorrt_llm.dll.requirements.txttensorrt~=10.16.1— the global gate fromplan.md.jenkins/Build.groovy--benchmarksfrom the wheel build line, the Step-4 benchmark packaging block (bertBenchmark/gptManagerBenchmark/disaggServerBenchmark/libnvinfer_plugincopies into the tarball), and thebuild_cpp_examples.pystep.cplines would fail every CI build.scripts/get_wheel_from_package.pybenchmarks_dirsetup.scripts/build_cpp_examples.py(DELETED) +examples/cpp/**(11 files)executorExampleBasic/Advanced/Disaggregated/…) all constructtle::Executor(<engine path>).G. C++ tests — deleted (engine-driven) vs fixed (kept)
Deleted
cpp/tests/e2e_tests/batch_manager/{trtGptModelTest,trtGptModelRealDecoderTest,trtEncoderModelTest}.cppcpp/tests/e2e_tests/executor/**(executorTest.{h,cpp},executorMockTest.cpp,encDecTest.cpp,disaggExecutor.h,disaggExecutorTest.cpp,CMakeLists.txt)Executorwith built engines.cpp/tests/unit_tests/executor/executorTestSmall{,ArbitraryOutputTensors}.cpptests/utils/engines.cpp/tests/unit_tests/runtime/tllmRuntimeTest.cpp,cpp/tests/unit_tests/batch_manager/encDecBeamSearchTest.cppTllmRuntime/RuntimeBuffers::GenerationLogitsCache— both deleted.cpp/tests/utils/{engines,executorUtils,common}.{h,cpp}+CMakeLists.txt(thetestingUtilslib)enginesbuilds TRT engines in-memory (the only survivor-file user of TRT graph APIs);executorUtilsdrivesexecutor::Executor;commonholds engine paths/logits helpers. All consumers deleted → wholetests/utils/dies.cpp/tests/resources/scripts/build_*_engines.py+generate_expected_*_output.py+generate_hf_gpt_output.py+io_converter.py+build_engines_utils.py(22 files)generate_test_lora_weights.py— live user (lora_setupfixture feeds the surviving C++ LoRA unit tests, no engines involved).benchmarks/cpp/{bertBenchmark,gptManagerBenchmark,disaggServerBenchmark}.cpp+utils/utils.{h,cpp}+CMakeLists.txtbertBenchmarkusesTllmRuntime, the others the C++Executor). Kept:prepare_dataset.py+ the Pythonutils/— they feedtrtllm-bench;README.mdrewritten accordingly.Fixed (kept tests that referenced deleted files — the draft missed all of these)
unit_tests/{layers/baseSamplingLayerTest.h, layers/eagleLayerTest.cpp, layers/explicitDraftTokensLayerTest.cpp, kernels/sampling/samplingTest.h, kernels/routing/routingTest.h, kernels/eaglePackDataTest.cpp, runtime/samplingTest.cpp}tllmLogger.hinclude, themLogger = std::make_shared<TllmLogger>()line, and the member declaration.unit_tests/runtime/gptDecoderBatchedTest.cppMakeDecodingBatchInputOutput::createDecoderBatchInputsstatic (engine-free, ~50 lines) is inlined as a file-local helper; 4 call sites repointed.GptDecoderBatched(live in the PyTorch decoder path) without keeping a dead prod algorithm.unit_tests/kernels/ropeTest.cuplugins/gptAttentionCommon/gptAttentionCommon.hinclude →kernels/gptKernels.h.AttentionMaskType/PositionEmbeddingTypeenums, whose real home isgptKernels.h.unit_tests/multi_gpu/mpiUtilsTest.cppplugins/common/plugin.hinclude + theGlobalSessionHandletest (plugins::getCommSessionHandle() == &COMM_SESSION).cpp/tests/CMakeLists.txtTensorRT::OnnxParserdropped from the per-test link;add_subdirectory(utils)+ thetests/utilsinclude dir removed.testingUtilsdeleted.cpp/tests/{e2e_tests,e2e_tests/batch_manager,unit_tests/executor,unit_tests/runtime,unit_tests/batch_manager}/CMakeLists.txtguidedDecoderTeststays — see below).cpp/tests/e2e_tests/batch_manager/guidedDecoderTest.cpptllmDataType.h) and kept.e2e_tests/but tests the survivingGuidedDecoderwith no engine coupling. Flagged for relocation out ofe2e_tests/in a follow-up.H. Python test suite + CI metadata
tests/integration/defs/cpp/test_e2e.py(DELETED)e2e_testsbinaries (test_model,test_benchmarks).tests/integration/defs/cpp/test_multi_gpu.pytest_mpi_utils,test_fused_gemm_allreduce,test_cache_transceiver,test_user_buffer,test_nccl_utils) — exactly the KEEP list fromplan.md. Deleted:test_llama_executor{,_logits_proc,_guided_decoding},test_enc_dec,test_trt_gpt_real_decoder,TestDisagg(4 methods), theirrun_*helpers, and the engine-model fixtures (prepare_multi_gpu_model_tests,prepare_model_multi_gpu,gpt/llama_single_gpu_model,llama_multi_gpu_model,prepare_models_disagg,multi_gpu_model).tests/integration/defs/cpp/cpp_common.pyprepare_model_tests(engine builder driving the deletedbuild_*_engines.py) removed.tests/integration/defs/cpp/conftest.pyprepare_model+build_benchmarksfixtures removed. Kept:lora_setup(generates numpy LoRA weights — no engines — for the surviving C++ LoRA unit tests).tests/unittest/bindings/test_executor_bindings.py(DELETED)trtllm.Executortests (was already waived since TRTLLM-13781).tests/unittest/bindings/binding_test_utils.py(DELETED)test_executor_bindings.py.tests/unittest/utils/cpp_paths.pyllm_root(consumed bytests/unittest/conftest.py+ one auto_deploy test). Deleted: theModelSpecimport (module-level — broke collection of the whole bindings suite),get_base_model_spec, and the engine-path/results-path fixtures (0 users each, verified fixture-by-fixture).test_executor.py,test_base_worker.py) define their own local names.tests/integration/defs/test_mlpf_results.py(DELETED)gptManagerBenchmarkon a built engine; unscheduled in any test list.tests/integration/test_lists/test-db/l0_{a10,a30,dgx_h100,h100}.ymlcpp/test_e2e.pymodel/benchmark entries + theTestDisaggsymmetric-executor entries.tests/integration/test_lists/waives.txtcpp/test_e2e.py::*,TestDisagg::*, thetest_executor_bindings.pywaive).tests/integration/defs/.test_durationsbenchmarks/cpp/README.mdprepare_dataset.py,utils/*) and points benchmarking attrtllm-bench/trtllm-serve; allgptManagerBenchmarkcontent removed.I. Review-driven scope change (chronological)
tllmDataType.hwas authored in a transitionalalias form (
using DataType = nvinfer1::DataType;…) so the 206-file respell couldland as a standalone, provably-behavior-free PR while the plugin/engine path kept
compiling, with the real-enum flip + engine deletion deferred to the next PR
(plan.md's PR5/PR6 split).
staging was dropped; the header was flipped to the real standalone types and the
engine-path removal + packaging gate were folded into this PR (§ A–H above). The
alias-form design record is kept in
pr6-cpp-datatype.md.benchmarks, examples/cpp, and Jenkins handling were incomplete): the 12
deleted-header include stragglers (§ G "Fixed"),
guidedDecoderTestclassification,executor/model.h, ModelSpec/testing_src,benchmarks/cpp,examples/cpp,Build.groovy,cpp_paths.py— all found by systematic sweeps(deleted-header include scan, python deleted-symbol scan, fixture-consumer counts).
J. Validation record
python3 scripts/build_wheel.py --use_ccache --skip_building_wheel --cuda_architectures native— no--trt_root— exit 0.(Gotcha:
BUILD_WHEEL_TARGETSis a CMake cache variable; the first incremental runkept the stale target list and failed at the final aggregate target — resolved with
--configure_cmake.)readelf -donlibtensorrt_llm.so,libth_common.so,bindings.*.so:zero
nvinfer/TensorRT NEEDED entries.import tensorrt_llm+tensorrt_llm.bindingswith thetensorrtpackagehard-blocked via a
sys.meta_pathblocker: OK.tests/unittest/bindings/test_datatype_parity.py: 2 passed.pytest --co -q tests/unittest: exit 0 (collection clean).assert seen with one local checkpoint is a pre-existing Python weight-loader
incompatibility with that checkpoint — path untouched by this PR.)
pre-commit runon all 512 files: green (autoflake/clang-format/cmake-formatreformats absorbed into the commit).
K. Follow-ups (deliberately NOT in this PR)
guidedDecoderTest.cppout ofcpp/tests/e2e_tests/(it is a unit test ofa surviving component; kept in place to avoid churn).
a7e54c552d): expect one trivialtensorrt_llm/__init__.pyconflict — its later amends added the_preload_tensorrt_libs()shim this PR deletes, and the RTLD_GLOBAL re-dlopenbridge in
_common.py(kept here — it is about our own lib's symbols, not TRT;its proper fix, a self-sufficient wrapper dlopen in
transferAgent.cpp, remainsa C++ follow-up).
docker/common/install_tensorrt.sh+ the TRT layers in the dev containers: thewheel no longer needs TensorRT, but container-image slimming is a separate
infra-owned change.
runtime: "cpp"intests/integration/defs/perf/(bertBenchmark-era label): dead config surface, prune in a perf-infra pass.
tensorrt_llm/models/unet/pp/__init__.pyempty straggler from Phase B (tracked inplan.mdfollow-ups).@coderabbitai summary
Description
Test Coverage
PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.