v0.3.3 — the clean-machine release
v0.3.3 — the clean-machine release
Everything in this release exists because two rented GPU boxes were set up from
bare Ubuntu and every pothole got a fix at the layer it belongs to. Model files
are byte-identical to v0.3.1/v0.3.2 — no recipe changed, no re-export needed.
Validation now spans three GPU generations.
Validated: Ampere, Ada, Blackwell
Full-methodology benchmark runs (batches 1/2/4/8 × 500 iters, 3 interleaved
rounds, VRAM, subset-mAP lossless checks) on RTX 3090 and RTX 5080 join the Ada
reference — tables in docs/VALIDATION.md. The tier ladder and the lossless
surgical-FP16 claim reproduce on all three generations, and two findings are
worth knowing:
- the published wheel (sm_89) runs on RTX 50xx out of the box via PTX JIT —
verified on an RTX 5080 with detections identical to the README; - README batch-1 numbers carry a WSL2 dispatch tax: native Linux is faster in
the dispatch-bound regime (RTX 5080 holds n-surgical at 0.91 ms end to end).
Installation and build, hardened
./build.shpreflights before cmake: missing TensorRT headers now fail
with the three remedies (pinned apt chain / NGC container / no-root tarball)
instead of aCould NOT find TensorRTwall; a conda cross-g++ on PATH is
bypassed for the system toolchain; conda-injectedNVCC_PREPEND_FLAGS(fatal
after a double activation) is dropped; a pre-Turing GPU is refused with the
actual constraint named.- The pip
tensorrtmetapackage now resolves to CUDA-13 (10.13.3.9.post1):
every pin and instruction in this repo saystensorrt-cu12explicitly, and
this release's wheel bakes the corrected[tensorrt]extra — fresh
dfine[tensorrt]installs work again. dfine doctor: one command prints the environment facts every bug report
needs — GPU/driver/SM, the tensorrt import, every libdfine candidate path
with its verdict, header presence, the engine cache. Exit code answers "does
the library load here".- uv replaces conda in the scripts environment:
uv sync --frozen --extra gpu --extra torchprepares everything, and the committeduv.lockpins the
export toolchain — which is what byte-reproducible exports actually require
(the cross-machine DIFFERS verdicts traced to an unpinned torch). New exports
recordtool_versionsin the sidecar so a byte mismatch is diagnosable from
metadata alone. conda remains a documented no-root fallback. docs/TROUBLESHOOTING.md: the field notes, organized by symptom.
CI now dogfoods the documented install
All container jobs start from nvidia/cuda:12.9.1-devel and install TensorRT
10.13 through the same pinned apt chain the docs prescribe — so the install
path users follow is exercised on every commit, and the wheel is compiled
against the same TensorRT headers as the validated runtime (the 24.10 NGC
image compiled against 10.5, and every load printed a version-mismatch
warning).
Behavior notes
dfine doctoris a new subcommand; no existing command changed.- ONNX sidecars written by new exports gain
tool_versions; published assets
and existing caches are untouched. - The INT8 record in
docs/HANDOFF.mdcarries an addendum: the historical
mAP-0.13 collapse was this repo's naive PTQ path, not INT8 itself — an
external SmoothQuant recipe reaches −0.97 AP and still loses to surgical
FP16 on desktop Ada, so the desktop verdict stands.