Skip to content

fix(deformable-detr): preserve image aspect ratio - #1753

Merged
yizhuoz004 merged 3 commits into
NVIDIA:mainfrom
yizhuoz004:aiperf-stage4-completion
Oct 16, 2026
Merged

yizhuoz004 merged 3 commits into
NVIDIA:mainfrom
yizhuoz004:aiperf-stage4-completion

Conversation

@yizhuoz004

@yizhuoz004 yizhuoz004 commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Background

Stage 4 (#1671, epic #1667) has nine qualified object detectors from merged #1718 and one remaining supported checkpoint, SenseTime/deformable-detr. Its benchmark profile incorrectly copied RT-DETR's checkpoint, revision and 640x640 size. The standalone accuracy reference also imported the qualification framework removed in #1742 before handling a request.

Real corpus validation then exposed a native defect: stretching every image to 800x800 dropped mAP by 2.74 percentage points and mAP50 by 3.13 points versus the canonical aspect-preserving FP32 reference, exceeding both unchanged two-point gates. A diagnostic FP32 square-resize run closely matched native results, locating the first divergence at input geometry.

Exit Criteria

Qualify Deformable DETR's actual FP16 bundle through its unchanged owning checkpoint case, 100 original-image corpus/native/HTTP checks, existing mAP gates, and real published PyPI AIPerf. Reconcile every current-main detector and close stage 4 only after this PR merges. This finishes the ten canonical checkpoints for single-image object detection; other precisions and workloads retain separate status.

Implementation

Keep all production behavior and numerical checks in families/deformable_detr. Read checkpoint shortest/longest-edge bounds and preserve image aspect ratio without padding. Build a dynamic TensorRT spatial profile and derive positions, reference points, GroupNorm reshapes and attention geometry from actual feature-map sizes. Reject invalid or out-of-profile geometry before inference. TensorRT still owns GPU lowering and tactics; no custom kernel, platform branch or sibling dependency is added.

Correct benchmark identity and dimensions to match the existing pinned native manifest. Import the removed legacy performance harness only on that existing legacy mode so --request/--output accuracy execution works independently. Add native resize/bounds cases, configuration tests and an independent NumPy/PyTorch dynamic-geometry regression inside the single owning E2E case. Update the detection guide with the model name, profile and rebuild instruction.

The public Task API, ABI, bundle container format, dependencies, labels, coordinates, scores and every original correctness threshold remain unchanged. Family runtime.json gains required resize bounds and the plan becomes dynamic: rebuild older Deformable DETR bundles. There is no old-bundle fallback.

Change categories

  • Model or runtime behavior
  • Public API
  • ABI
  • Bundle or artifact format
  • Dependencies
  • Documentation only
  • CI or developer tooling

Validation

Commands and Results

On cf93a041d8c0660f2e3e3ad0a4e4008b70cfd26c with a clean worktree:

  • PYTHONPATH=core/builder:. python -m pytest families/deformable_detr/tests/test_model.py -q: 18 passed.
  • ctest --test-dir "$RUNTIME_ROOT" -R '^deformable_detr_preprocess_and_decode$' --output-on-failure: 1 passed, including aspect-ratio and engine-bound regressions.
  • PYTHONPATH=core/builder:. python -m pytest families/deformable_detr/tests/test_e2e.py --e2e-model deformable-detr-r50 --e2e-testcase deformable-detr-r50 -q -s: one executed, non-skipped case passed. Set TRTMC_BINARY, TRTMC_RUNTIME_ROOT, TRTMC_DEFORMABLE_DETR_MODEL_DIR to the prepared CLI/runtime and exact pinned snapshot. This builds the actual bundle, checks dynamic positions/attention against independent NumPy/PyTorch for landscape/portrait/square shapes, then compares native checkpoint detections with the official reference. The fixture reports worst IoU 0.9953 and score delta 0.0074; original IoU >= 0.5 and score delta <= 0.05 rules are unchanged.
  • PYTHONPATH=apps/aiperf_qual:apps/benchmark:apps/perf_serving:core/builder:. python -m trtmc_aiperf_qual endpoint-profile --environment "$ENVIRONMENT" --profile deformable-detr-r50 --bundle "$BUNDLE" --inputs "$INPUTS/inputs.jsonl" --out "$RESULTS": 100 complete native/HTTP input-output comparisons passed, followed by 50/50 measured requests and 5/5 warmups through real PyPI AIPerf; 463 complete boxes (2315 coordinate/confidence values) checked, zero client errors or missing request/metric joins. ENVIRONMENT selects the prepared native runtime, server interpreter and pip-installed client; BUNDLE is the exact owning-case artifact below. Prepare INPUTS using the checked-in apps/aiperf_qual/examples/prepare_detection_inputs.py as shown in the usage guide.
  • Corpus evaluation: native mAP 46.8307% / mAP50 62.8337%, canonical FP32 reference 46.8189% / 62.6492%. Both original maximum-drop gates remain 0.02 and pass. The reference inputs and preprocessor are unchanged. For consistency with feat(aiperf): qualify native endpoint model groups #1718 after the upstream framework deletion, this report uses the same four unmodified pure COCO qualification functions from the original accuracy module: _box_iou, _detections, _coco_ap_at_iou, _coco_detection_metrics. The evaluator is kept outside source commits; this does not restore the removed framework.
  • PYTHONPATH=core/builder:apps/benchmark:apps/aiperf_qual:. python -m pytest tools/tests/test_architecture.py tools/tests/test_family_impact.py apps/aiperf_qual/tests/test_endpoint_catalog.py apps/aiperf_qual/tests/test_endpoint_profile.py -q: 91 passed in a detached exact-head review checkout.
  • PYTHONPATH=core/builder:apps/benchmark:. python -m tools.model_ci validate, python tools/test_impact.py --validate, Ruff, clang-format and git diff --check github/main...HEAD: pass. Impact selects only deformable_detr plus generic CPU/docs checks.
  • npm --prefix website run test:model-support: 14 passed; npm --prefix website run build: pass, including all 34 diagram checks.
  • Native CLI, TensorRT backend, family DSO, benchmark worker and server build successfully. Current-head public and protected CI remain required before merge; their live statuses are shown in Checks.

Ten-detector benchmark results

All rows use one complete original RGB image per request, FP16/TP1, one persistent replica, concurrency 1, five warmups and 50 measured requests, published AIPerf 0.13.0, /v1/infer with endpoint type image_retrieval. HTTP latency and public_task_call_wall are separate; native Task time includes family preprocessing/inference/postprocessing and excludes transport decoding. Build/load/startup, correctness/verification calls and warmup are excluded from measured timing. These short integration runs establish no capacity or performance gate.

The nine existing rows retain their original tested source ad6ca2e0c60b2327c2c7a62350a54dda5b5f3f9b and bundle/checkpoint identities in #1718. Their families and serving/runtime paths are unchanged by this PR and intervening main changes; they were not remeasured on this head. Deformable DETR is newly measured on the head above. The development host is shared, so the observed timings are not controlled speedup comparisons.

Profile Precision HTTP p50 / p95 ms Task p50 / p95 ms Requests/s Work units/s
deformable-detr-r50 fp16 80.65 / 83.72 71.36 / 74.04 12.89 12.89 images
detr-resnet-50 fp16 67.91 / 71.27 58.96 / 60.35 14.87 14.87 images
rtdetr-v2-r18 fp16 18.76 / 23.69 9.70 / 11.41 47.83 47.83 images
yolo11n fp16 15.94 / 21.44 7.56 / 9.28 57.22 57.22 images
yolos-small fp16 13.29 / 18.60 4.48 / 4.69 67.79 67.79 images
yolov10n fp16 16.80 / 31.37 8.08 / 14.44 50.08 50.08 images
yolov10s fp16 15.34 / 20.01 7.55 / 9.33 62.37 62.37 images
yolov10x fp16 17.77 / 23.53 9.05 / 10.54 51.63 51.63 images
yolov5n fp16 14.72 / 20.02 7.23 / 8.91 63.16 63.16 images
yolov8n fp16 14.79 / 19.95 7.22 / 9.03 63.76 63.76 images

Corpus values below are percentages on the same 100 original COCO images. Preserve each family's label space and filtering. YOLOS has no existing dataset benchmark gate; its unchanged owning reference case passes separately.

Detector Native/reference mAP@[.50:.95] % Native/reference mAP@.50 % Label space Existing corpus gate
deformable-detr-r50 46.83 / 46.82 62.83 / 62.65 coco-category-id PASS unchanged
detr-resnet-50 45.55 / 46.02 63.63 / 64.14 coco-category-id PASS unchanged
rtdetr-v2-r18 53.68 / 53.71 68.84 / 68.82 coco-contiguous-80 PASS unchanged
yolo11n 39.47 / 39.51 50.74 / 50.72 coco-contiguous-80 PASS unchanged
yolos-small 40.32 / 40.50 58.45 / 58.87 coco-category-id No existing gate; metrics reported
yolov10n 37.54 / 36.65 48.79 / 47.50 coco-contiguous-80 PASS unchanged
yolov10s 46.12 / 46.05 59.08 / 58.89 coco-contiguous-80 PASS unchanged
yolov10x 52.69 / 53.56 66.96 / 68.09 coco-contiguous-80 PASS unchanged
yolov5n 27.69 / 27.49 39.80 / 40.02 coco-contiguous-80 PASS unchanged
yolov8n 37.10 / 37.18 47.91 / 48.03 coco-contiguous-80 PASS unchanged

Hardware, Environment, and Revisions

Base 268e03e56c9206d21611e5943c656ab97c4a08e1; tested source cf93a041d8c0660f2e3e3ad0a4e4008b70cfd26c. One NVIDIA GB300, Linux aarch64, Python 3.12.3, CUDA toolkit 13.3, driver 580.105.08, TensorRT 11.1.0.106, PyTorch 2.12.0+cu130, Transformers 5.2.0, timm 1.0.28, Pillow 12.3.0, published AIPerf 0.13.0. The strict FP32 micro-regression disables TF32 only for its probe; production FP16 arithmetic is unchanged.

Checkpoint SenseTime/deformable-detr@83ecd26945199939cb82806f988debdb71e6f43e. Profile: FP16, TP1, 800-pixel shortest-edge target / 1333-pixel longest-edge bound, confidence threshold 0.3, top 100. Dataset detection-datasets/coco@cf0b22332314a937e9dc8a1957b21725430bb41d, validation split, the same pinned first-100-eligible original RGB selection as #1718, with complete dimensions, byte hashes and annotations retained. Reference is canonical FP32.

Actual native-correctness/served bundle SHA-256: 4001c40acaaac239e6c65f2f8eb6f38985c07f943bee200447a2311520f7879e (89283054 bytes). All generated bundles, selections, records and reports are preserved outside commits.

Not Run / Remaining Gaps

Other precisions, hardware targets, TP variants, batching, multiple images, streaming, document understanding outside the detection Task, and capacity sweeps are unqualified by these runs. The legacy performance CLI still depends on the upstream-deleted framework and is not restored or claimed here. Current-head CI must finish before merge. No additional canonical checkpoint gap remains in the refreshed ten-detector inventory.

Contributor Self-Review

  • I have completed a self-review of this change.

Notes For Future Readers

Review checkpoint geometry first, then dynamic graph layout and runtime bindings, then the independent regression and corpus evidence. Rebuild older Deformable DETR artifacts with the corrected family. All production changes are family-local; shared serving code preserves the family's numeric labels, complete boxes/scores and coordinates without reinterpretation. No new third-party dependency, vendored source, binary, weight, fixture or dataset is redistributed. The pinned checkpoint was already owned by the native manifest; benchmark metadata now matches it.

Closes #1671. Other epic workloads keep their own stages and evidence.

Risk level

  • Low
  • Medium
  • High

The family now uses aspect-preserving preprocessing, dynamic spatial tensors and mandatory resize metadata. Exact-bundle model/corpus/client proof passes without relaxing any gate; older bundles require rebuilding, and additional targets/configurations remain untested.

Match the benchmark checkpoint, revision and input dimensions to the native manifest. Keep the accuracy reference usable after removal of the legacy qualification package by loading its optional performance harness only on that path. Preserve every existing numerical criterion.

Refs: NVIDIA#1671
Signed-off-by: Yizhuo Zhang <yizhuoz@nvidia.com>
@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/TensorRT-Model-Connect/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: e142b3d7-066e-47b7-bcc7-939e88b541ef
📥 Commits

Reviewing files that changed from the base of the PR and between 268e03e and cf93a04.

📒 Files selected for processing: 18
  • families/deformable_detr/config.py
  • families/deformable_detr/deformable_attention.py
  • families/deformable_detr/encoder_builder.py
  • families/deformable_detr/graph.py
  • families/deformable_detr/model.py
  • families/deformable_detr/position_builder.py
  • families/deformable_detr/runtime/image_preprocess_seam.cpp
  • families/deformable_detr/runtime/image_preprocess_seam.h
  • families/deformable_detr/runtime/pipeline.cpp
  • families/deformable_detr/runtime/pipeline.h
  • families/deformable_detr/runtime/plugin.cpp
  • families/deformable_detr/tests/benchmark/deformable-detr-r50.yaml
  • families/deformable_detr/tests/benchmark/reference.py
  • families/deformable_detr/tests/cpp/test_preprocess_and_decode.cpp
  • families/deformable_detr/tests/dynamic_geometry.py
  • families/deformable_detr/tests/test_e2e.py
  • families/deformable_detr/tests/test_model.py
  • website/docs/user-guides/profile-detection-with-aiperf.md

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

📝 Summary

Summary

Deformable DETR now preserves image aspect ratio during preprocessing. It uses the checkpoint’s shortest- and longest-edge bounds instead of stretching every image to a square. Dynamic TensorRT spatial profiles and runtime-derived feature-map geometry support the resized inputs. The runtime rejects inputs outside the engine profile.

The benchmark candidate now uses the SenseTime Deformable DETR checkpoint. The accuracy reference imports the legacy performance harness only on performance paths, so its accuracy path no longer depends on that harness.

The runtime requires resize_shortest_edge and resize_longest_edge in runtime.json. Existing Deformable DETR bundles must be rebuilt; there is no fallback for older bundles.

The PR reports that the owning E2E case passed, with worst IoU 0.9953 and score delta 0.0074. It reports 46.8307% mAP and 62.8337% mAP50 against canonical FP32 results of 46.8189% and 62.6492%. The existing 0.02 maximum-drop gates passed. It also reports 100 native/HTTP input-output comparisons passed, followed by 50/50 measured requests and 5/5 warmups using published AIPerf 0.13.0. These runs did not qualify other precisions, hardware targets, TP variants, batching, multiple images, streaming, or capacity sweeps.

Architecture impact

  • Family-owned files: Changes are concentrated in families/deformable_detr, including configuration, TensorRT graph builders, engine construction, runtime preprocessing, and family tests.
  • Shared surfaces: The supplied change summary and inspected references show no changed shared implementation. The runtime manifest contract changes for Deformable DETR bundles.
  • Dependency direction: Dynamic geometry helpers are added within the Deformable DETR family and consumed by its builders. The benchmark reference defers the performance-harness import to performance paths.
  • Affected consumers: Deformable DETR engine builds and runtime consumers must provide the new resize bounds and use rebuilt bundles. The benchmark profile uses an 800×800 build setting as the resize target; it no longer means that every input is stretched to a square.
  • Unresolved blast radius: The reported qualification covers one precision and workload scope. The effect on other precisions, targets, and workloads remains unqualified. No current review findings were supplied, so review-finding severity counts are unavailable.
  • Outcome: HUMAN REVIEW REQUIRED. The available evidence does not resolve the remaining qualification scope for other supported configurations.

Deformable DETR now supports runtime-shaped TensorRT geometry and aspect-preserving image resizing. Configuration and the native runtime use shortest- and longest-edge bounds. Tests cover resize dimensions and dynamic geometry.

Changes: Deformable DETR Dynamic Geometry and Aspect-Preserving Resize

Layer / File(s) Summary
Resolve resize bounds and configure the engine profile
families/deformable_detr/config.py, families/deformable_detr/model.py, families/deformable_detr/tests/test_model.py, families/deformable_detr/tests/benchmark/*
Configuration resolution reads and validates processor resize bounds. The engine profile and runtime manifest use those bounds. Benchmark metadata, reference imports, and tests are updated for the selected Deformable DETR checkpoint.
Build geometry from runtime tensor shapes
families/deformable_detr/graph.py, families/deformable_detr/deformable_attention.py, families/deformable_detr/encoder_builder.py, families/deformable_detr/position_builder.py, families/deformable_detr/model.py, families/deformable_detr/tests/dynamic_geometry.py, families/deformable_detr/tests/test_e2e.py, families/deformable_detr/tests/test_model.py
TensorRT shape helpers support dynamic reshapes, coordinate grids, and group normalization. Position embeddings, reference points, and deformable attention use runtime shapes. The engine accepts dynamic spatial dimensions, and regression tests check multiple image geometries against NumPy and PyTorch results.
Apply resize bounds in the native pipeline
families/deformable_detr/runtime/image_preprocess_seam.*, families/deformable_detr/runtime/pipeline.*, families/deformable_detr/runtime/plugin.cpp, families/deformable_detr/tests/cpp/test_preprocess_and_decode.cpp, website/docs/user-guides/profile-detection-with-aiperf.md
The native pipeline computes aspect-preserving dimensions from the configured bounds and uses them for preprocessing and model input. C++ tests check resize results and invalid inputs. The guide describes the resize behavior and setup.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant Pipeline as DeformableDetrObjectDetectionPipeline
  participant Resize as deformable_detr_resize_shape
  participant Preprocessor
  participant Engine as TensorRT engine
  Pipeline->>Resize: calculate dimensions from input shape and edge bounds
  Pipeline->>Preprocessor: preprocess using resized dimensions
  Pipeline->>Engine: set model input tensor shape to resized dimensions
Loading

Suggested reviewers: zhenshanx-nv

Merge Risk: ⚪ Minimal · up to cf93a

Deformable DETR now preserves image aspect ratio using checkpoint resize bounds. No actionable merge-blocking risk was identified. Older bundles must be rebuilt, and this is documented.

Pre-merge checks: Passed 7 · Failed 2

Failed Failed checks: 2 warnings

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 42 functions across 16 files. (2 skipped:… Write docstrings for the functions missing them to satisfy the coverage threshold.
Benchmark Validation Integrity Warning The updated Deformable DETR benchmark compares different timed regions. The native worker starts timing immediately before IObjectDetection::detect and stops when it returns (`apps/benchmark/native/… Define one timing contract for the native and reference paths. Keep file decoding outside timing, but time equivalent image preprocessing, model execution, synchronization, and output decoding on both sides. For example, move the reference …
Passed Passed checks: 7 passed
Check name Status Explanation
Title check Passed The title clearly identifies the main production change: preserving image aspect ratio for Deformable DETR.
Description check Passed The description completes the required sections with background, exit criteria, implementation details, change categories, validation evidence, environment and revision data, remaining gaps, self-revi…
Linked Issues check Passed The PR addresses the coding requirements in #1671. It corrects the Deformable DETR checkpoint manifest, preserves aspect ratio with checkpoint resize bounds, builds dynamic TensorRT geometry, validate…
Out of Scope Changes check Passed The changes remain within #1671. Production changes are limited to the Deformable DETR family and implement its required preprocessing, dynamic engine geometry, manifest identity, and runtime validati…
Family Ownership Boundary Passed No cross-family dependency was introduced. The changed-file inventory contains only families/deformable_detr/** plus its documentation. Production imports in model.py:14-16 are local family module…
Shared Semantic Neutrality Passed PASS. The diff contains no changed shared code that matches the check scope. All production and test changes are under the Deformable DETR family’s model-owned Python, runtime, C++ test, E2E, or famil…
Shared Change Blast Radius Passed The diff keeps production code, runtime contracts, benchmarks, and validation inside families/deformable_detr. The only shared-path change is a scoped addition to the generic AIPerf detection guide.…
Full details: Description check

Explanation

The description completes the required sections with background, exit criteria, implementation details, change categories, validation evidence, environment and revision data, remaining gaps, self-review, notes, and risk rationale.

Full details: Linked Issues check

Explanation

The PR addresses the coding requirements in #1671. It corrects the Deformable DETR checkpoint manifest, preserves aspect ratio with checkpoint resize bounds, builds dynamic TensorRT geometry, validates out-of-profile inputs, and keeps labels, scores, coordinates, and thresholds unchanged. It adds unit, C++, dynamic-geometry, and E2E coverage. The reported owning-case check passes. The PR also reports 100 native/HTTP comparisons and a real pip-installed AIPerf 0.13.0 run with separate HTTP and Task timing. It records the checkpoint revision, bundle digest, dataset, package versions, hardware, settings, warmups, and qualification limits. The nine previously qualified detectors and the remaining Deformable DETR checkpoint provide the reported ten-checkpoint coverage.

Full details: Out of Scope Changes check

Explanation

The changes remain within #1671. Production changes are limited to the Deformable DETR family and implement its required preprocessing, dynamic engine geometry, manifest identity, and runtime validation. The benchmark manifest, accuracy harness import isolation, regression tests, qualification tests, and AIPerf guide support checkpoint qualification and reproducibility. No unrelated API, ABI, dependency, sibling-family, or custom-kernel change is shown.

Full details: Family Ownership Boundary

Explanation

No cross-family dependency was introduced. The changed-file inventory contains only families/deformable_detr/** plus its documentation. Production imports in model.py:14-16 are local family modules. New validation imports in tests/dynamic_geometry.py:15-16 are also local. The benchmark reference uses the shared qualification_tests harness, not another model family. The prior PekingU/rtdetr_v2_r18vd candidate was removed and replaced with SenseTime/deformable-detr in the benchmark diff. No central registry, switch, source list, or strategy map changed.

Full details: Shared Semantic Neutrality

Explanation

PASS. The diff contains no changed shared code that matches the check scope. All production and test changes are under the Deformable DETR family’s model-owned Python, runtime, C++ test, E2E, or family-tool paths. The only change outside those paths is Markdown documentation, which adds family-specific usage guidance and does not change shared code semantics.

Full details: Shared Change Blast Radius

Explanation

The diff keeps production code, runtime contracts, benchmarks, and validation inside families/deformable_detr. The only shared-path change is a scoped addition to the generic AIPerf detection guide. The guide identifies the affected consumer commands and explains the compatibility impact: users must rebuild older Deformable DETR bundles because the engine is dynamic and preserves aspect ratio. The PR description and added family tests report configuration, native, dynamic-geometry, end-to-end, and AIPerf validation. The common guide is the correct shared consumer entry point; no shared implementation or contract was changed.

Full details: Docstring Coverage

Explanation

Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 42 functions across 16 files. (2 skipped: 2 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Full details: Benchmark Validation Integrity

Explanation

The updated Deformable DETR benchmark compares different timed regions. The native worker starts timing immediately before IObjectDetection::detect and stops when it returns (apps/benchmark/native/benchmark_worker.cpp:224-232, 687-710), so the PR's new aspect-ratio resize and preprocessing in runtime/pipeline.cpp:34-40 are timed, while native box-to-JSON observation conversion is not. The reference prepares the image with processor(...) and transfers inputs to CUDA before its timed invoke (tests/benchmark/reference.py:101-120), then times model execution, post-processing, device-to-host .cpu() transfers, list conversion, and output-map construction (:123-143). The corrected profile now activates this comparison for the SenseTime checkpoint (benchmark/deformable-detr-r50.yaml), and its 640x382 input exercises the new 796x1333 resize. Thus preprocessing is excluded on the reference side, while output conversion and host transfer/postprocessing are not accounted for equivalently.

Resolution

Define one timing contract for the native and reference paths. Keep file decoding outside timing, but time equivalent image preprocessing, model execution, synchronization, and output decoding on both sides. For example, move the reference processor and input transfer into the timed callback and either move native detection observation/validation into the timed region or defer the reference .cpu(), .tolist(), post-processing, and output-map construction until after timing. Add a regression that verifies the declared timing boundary and rerun the corrected Deformable DETR performance profile.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Use checkpoint resize bounds and dynamic spatial shapes for the native detector. Derive positions, reference points, normalization and attention geometry from the actual unpadded feature maps instead of stretching every image to a square.

Add independent dynamic-geometry and resize regressions without changing existing correctness criteria. Older family bundles require rebuilding for the new resize metadata and dynamic engine.

Refs: NVIDIA#1671
Signed-off-by: Yizhuo Zhang <yizhuoz@nvidia.com>
@yizhuoz004 yizhuoz004 changed the title fix(deformable-detr): align benchmark with native model fix(deformable-detr): preserve image aspect ratio Oct 16, 2026
Reject pathological aspect ratios that the checkpoint processor leaves outside the engine profile before invoking inference. Keep the builder optimization policy immediately after config creation as required by repository validation.

Signed-off-by: Yizhuo Zhang <yizhuoz@nvidia.com>
@yizhuoz004
yizhuoz004 marked this pull request as ready for review October 16, 2026 20:45
@yizhuoz004
yizhuoz004 requested a review from yifeif-nv as a code owner October 16, 2026 20:45
@yizhuoz004 yizhuoz004 added the run-internal-ci Maintainer-approved dispatch to internal CI label Oct 16, 2026
@github-actions github-actions Bot removed the run-internal-ci Maintainer-approved dispatch to internal CI label Oct 16, 2026
@yizhuoz004
yizhuoz004 merged commit 9643800 into NVIDIA:main Oct 16, 2026
39 of 40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AIPerf stage 4: qualify all TRTMC single-image object detection models

1 participant