UBR Stack · team 15 · NVIDIA Open Models Codefest 2026

Contributions Ledger

Everything we have put in the open in the first three days, verified against GitHub and Hugging Face rather than recalled. Five filings upstream into NVIDIA's own repository, three code repositories, eight artefacts on Hugging Face, and five working habits that another team could adopt without downloading anything of ours.

3 issues · 2 PRs upstream
3 repos · Apache-2.0
5 models · 3 datasets
5 habits · 1 verification rule
Verified 11 Sep 2026, afternoon Org ubr-physical-ai · ubrobotics-ai
Upstream

Five filings into NVIDIA/TensorRT-Edge-LLM, all open, all cross-referenced

Three issues and two patches, filed across one day on the toolchain that builds the 4-bit edge reasoner. The patches are the smaller contributions. The issues document things a patch of ours cannot fix, and the largest of them is about NVIDIA's own newest datacentre part.

Filed 11 Sep · states read from the GitHub API
FilingWhat it isState
#204 · issue08:51 The XQA NVRTC JIT passes no CUDA include path, so cuda_fp16.h cannot find vector_types.h on x86. Plus three further traps found on the same build — a CUDA 12.8 floor stated nowhere, CUTLASS_DSL=OFF failing far downstream rather than at configure time, ENABLE_CUTE_DSL silently rejecting a comma-separated list — and the question of whether SM89 belongs in the support matrix at all. Each presents as something other than what it is; three of the four need only a sentence of documentation. Open
#205 · PR09:13 · fixes #204 Passes the CUDA include path to the XQA NVRTC JIT. Two commits, DCO signed, clean under git-clang-format and cmake-format. Reviewed and approved the same day. The review asked for the include directory to come from the roots FindNVRTC.cmake honours rather than ${CUDA_DIR}/include; the revised commit resolves vector_types.h itself through those roots in the same precedence, with a warned fallback for a standalone NVRTC that ships no runtime headers, and the reviewer confirmed it resolves the concern. One of the two approving reviews the repository requires to merge; the approver is a community member, not a maintainer. Approved 1 of 2
#206 · issue10:17 SM103 — the B300, Blackwell Ultra — is missing from five separate SM allowlists across the build and the attention path, so the INT4-AWQ engine cannot be built for it. Each of the five lists neighbouring Blackwell parts and omits 103 alone. Reproduced on main and v0.10.1, on a B300 SXM6 at compute capability 10.3, CUDA 13.0, TensorRT 10.13.2. A supported part refused in five places is a matrix problem, not a configuration problem. Open
#207 · PR13:28 · fixes #206 Enables SM103 across the attention SM allowlists. INT4 and FP16 engines verified on the B300 after the change. Cross-references #205, since both patches touch the same toolchain path. Open
#208 · issue14:37 The ONNX-less direct builder cannot resolve decoder tensors for the multimodal cosmos3_edge checkpoint — and renaming them to make it try yields a numerically wrong engine. Two findings in one: a resolution gap, and the numeric defect that sits behind the obvious workaround. This is the experiment that would have separated "the export damages something" from "this is the model", and it is the reason that question is still open. Open

Why the issues outrank the patches. #205 fixes one thing. #204 documents four, each of which cost about an hour to find because none of them looks like what it is. #206 is not ours to fix — it is a support-matrix decision — and #207 shows the fix is a handful of allowlist entries once someone decides to make it. #208 is the one we could not work around at all. Cheap for a maintainer to accept, expensive for the next team to rediscover.

Code

Three repositories, all Apache-2.0

github.com/ubrobotics-ai
RepositoryWhat is in it
nvidia-codefest-2026created 9 Sep · 13 commits · ~3,450 lines The harness. Frame-slice selector with a column-wide hash-base detector and a dHash Hamming guard, evaluation scripts, the Cosmos 3 batch runners for the B300, the blackbox indexer, and the two frozen evaluation slices (474 frames, 256 calibration frames, disjoint, seeded) committed as data. Public
edgellm-on-adacreated 11 Sep The full path to running Edge-LLM and a Cosmos3-Edge INT4 checkpoint on a consumer Ada card — a configuration the official support matrix omits. Carries no NVIDIA source: the patch, the scripts, and the exact versions it was proven on. Public
edgellm-on-blackwell-ultracreated 11 Sep The same path for the B300 / Blackwell Ultra (SM103) — a datacentre part the official support matrix omits, missing from five SM allowlists. Carries no NVIDIA source: the patches (#205 include path, #207 SM103 allowlist), the scripts, and the exact versions the INT4 and FP16 engines were proven on. Public

Designed to become worthless

The value of edgellm-on-ada drops to near zero the day PR #205 merges, and edgellm-on-blackwell-ultra the day #207 does. That is the intended outcome, not a risk — and with one of #205's two required approvals in, it is closer than it was this morning.

A repository that exists to route around an upstream gap should die when the gap closes. Neither holds anything to maintain once its fix is upstream, and publishing each workaround and its fix on the same day is what keeps it honest. They are counted here at what they are worth today, not at what they cost.

Hugging Face · models

Five models, and what each one's card is allowed to claim

huggingface.co/ubr-physical-ai · all public
ModelWhat it isLicence
Cosmos3-Edge-INT4-AWQ10 Sep INT4 AWQ + ONNX, calibrated on 198 of our own rover frames. Confirmed bring-up on an 8 GB Orin Nano: 52.8 tok/s, 2.24 GiB of engines, 3,377 MB peak for the AWQ/TensorRT arm (the ~4,830 MB full-VLM figure is being reconciled). On 24 real frames it finds 9–10 of 12 targets against the incumbent's 0–1. The card now carries the L0 validation — indistinguishable from bf16 at p = 0.931 — and the deployable k constant. OpenMDW 1.1 Public
Cosmos3-Edge-NF4-bnb10 Sep Naive post-training quantisation, published as the control so the AWQ claim has something to be measured against. The card is unambiguous — it documents both module counts and ships the 169-module version, matching AWQ. The open point is in the bench harness: grounded_benchmark.py runs a 168-module control against the 169-module treatment, skipping lm_head — the one tensor most likely to move the output distribution. Identical on the 24 items (F1, targets, schema), but a null result on 24 items is not equivalence. The fix is one line in the harness — drop lm_head from the skip list — for ~0.3 GiB of peak memory the card already quantifies; our L0 harness already runs 169. OpenMDW 1.1 Harness 168 vs 169
rescue-target-yolo26n10 Sep Weights, two ONNX exports, configs, the full recipe — and its own ceiling-effect warning, because the hold-out it was validated on scores 53 of 54 in every configuration and cannot separate anything. Now relabelled D1: a result, not a baseline. AGPL-3.0 Public
UBR-Rescue-Spotter9 Sep The rescue-spotter checkpoint published at the start of the Codefest. other Public
UBR-Nav-E4B4 Aug · pre-Codefest Predates the event by five weeks. Listed for completeness; not counted as a Codefest contribution. other Prior work
Hugging Face · datasets

Three datasets, one of them broken and repaired in public

huggingface.co/datasets/ubr-physical-ai · all public
DatasetWhat is in itLicence
isaac-sdg-rescue-targetmain @ v3.0 133,760 images in 37 webdataset shards, 109 orbit clips with instance masks, merged COCO with 559,085 train annotations over 15 classes, per-image distance and bearing, provenance for 139 runs. CC BY 4.0
annotations
Public
cosmos3-i2v-survival-sdg10 Sep A negative result, published as one. Label survival through image-to-video generation, frame by frame, with the card explicitly refusing to read its n ≤ 13 cells as a curve. The point is the mechanism — per-frame conditioning beats bigger models for holding a subject — not a trend line. CC BY 4.0 Public
ubr-maze-nav15 Aug · pre-Codefest 34,339 files. Predates the event; listed for completeness and not counted. other Prior work

Licence position on the rendered images, stated on the v2 and v3 cards: annotations, metadata, configs and card CC BY 4.0; images rendered from NVIDIA-distributed assets under NVIDIA's terms, source assets not included. Published on that reading and put to the mentors for confirmation rather than the other way round.

Method

Five habits and one verification rule — the part that needs no download

None of these is a result. They are the constraints every number of ours was taken under, and another team can adopt them on Monday morning.

Paired McNemar on every quantisation claim

No quantisation delta is reported as a bare difference of two accuracies. Same items, same order, discordant counts shown. It is what turned "AWQ 0.0 against NF4 0.40" into a 3–0 discordance at p = 0.25 — into nothing — and what makes 10–0 at p = 0.002 a claim rather than an anecdote.

Re-fitting k per precision

The distance-calibration constant is fitted on each precision's own outputs, never carried from bf16 to 4-bit. A constant fitted on one precision and applied to another quietly attributes the quantiser's error to the model.

Correcting the chance baseline

Multiple choice was being scored against 25 % chance by habit. The options are not always four; the real figure for the item set is 14.22 %, which reclassifies one model's 12.50 % from "weak" to below chance — a different kind of statement.

A pre-upload gate on referential integrity

Nothing reaches Hugging Face until five checks pass, the load-bearing one being that every metadata row's image actually exists inside a shard. Its absence let a public release ship with annotations pointing at 15,528 files that were not there — loading without a single error.

Aggregate numbers only, from the bench

The 24 frames that would settle the 4-bit schema question are identifiable people in a workplace. Metrics and structural diagnostics left the board; the frames did not, and will not. The frozen prompt and the stdlib scorer were handed over instead so the comparison can run on anyone else's images. A rule that has never cost anything is not a rule.

The verification rule: onnx.checker passes a broken export

An export with 56 all-zero INT8 tensors — every mlp.up_proj and down_proj across 28 layers in plain layout instead of the cuteDSL fragment — passes the checker, and sampling one node passes it too because n0_3 is an attention projection and was always correct. The check that catches it: every node against fragmentRows(N, K) = divUp(N,128) × divUp(K,64) × 8, asserting dtype, shape and non-zero content per module class. Three revisions of the artefact were needed before one built; all three faults were in the tooling, none in the model.

The most reusable single file is probably JETSON_ORIN_NANO_NOTES.md — seven staging traps, each found the hard way, three of which produce artefacts that pass validation while being silently broken. Version gate included: Edge-LLM v0.9.1 cannot even parse the checkpoint; v0.10.1 is the floor.

Worth someone else's time

Ranked by what it saves the next person

  1. The three issues. #204 saves four separate hours for anyone building Edge-LLM on x86 Ada, and three of the four cost nothing to fix. #206 tells anyone with a B300 why their INT4 build fails in five places. #208 tells them not to rename the decoder tensors to get past it. Highest value per byte of anything here.
  2. The labelled rescue dataset. A rescue-specific detection set with a benchmark protocol file and a licence that says what you may do — rare in combination. Discounted until the configs block lands and the viewer renders.
  3. The verification rule and the Jetson notes. Anyone exporting a quantised checkpoint through ONNX will meet the all-zero-tensor failure eventually. Twenty minutes of reading against a day of rediscovery.
  4. The Ada and Blackwell Ultra recipes. Real value today, none the day their patches land. Counted at what they are worth.
  5. The two Cosmos quantisations. The quantisation is validated: across 1,442 L0 items the 4-bit engine is statistically indistinguishable from bf16 once each arm re-fits its distance constant — paired McNemar p = 0.931 on distance, 0.724 on left/right, 0.451 on region-choice — so 4-bit shifts the distance scale, not the spatial judgement. On real frames it then finds 10 of 12 targets with zero false triggers. What is not yet closed is portability, not quality: the L0 comparison ran on a B300 and the detection on an Orin, engines are per-SM, and the engine-equivalence check between them has not run — nor has any of it run in a robot's control loop. The strict scorer still reads 0.0, but that gates on schema validity, not on whether the answer is right.