Skip to content

v0.3.3 — the clean-machine release

Choose a tag to compare

@PogChamper PogChamper released this 10 Jul 22:18

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.sh preflights before cmake: missing TensorRT headers now fail
    with the three remedies (pinned apt chain / NGC container / no-root tarball)
    instead of a Could NOT find TensorRT wall; a conda cross-g++ on PATH is
    bypassed for the system toolchain; conda-injected NVCC_PREPEND_FLAGS (fatal
    after a double activation) is dropped; a pre-Turing GPU is refused with the
    actual constraint named.
  • The pip tensorrt metapackage now resolves to CUDA-13 (10.13.3.9.post1):
    every pin and instruction in this repo says tensorrt-cu12 explicitly, 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 torch prepares everything, and the committed uv.lock pins the
    export toolchain — which is what byte-reproducible exports actually require
    (the cross-machine DIFFERS verdicts traced to an unpinned torch). New exports
    record tool_versions in 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 doctor is 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.md carries 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.