The output used to move after the small model's warmup had linked the
warp to its address, which needed the warp to link again by dropping a
private tinygrad cached property. Had that ever stopped working, the
small model's own warp would have kept writing the freed memory.
modeld now asks the adapter's coherent_warp() (Jetlink's make_coherent
with Jetlink on, off legacy9d) and load_verified_model moves the small
model's warp output before warmup(), as Jetlink's own warp moves its
output before its first call. CatalogWarp only reads the answer
(warp_copied): sent from where it is, or copied out, chosen once.
jetlink runs the driving_warp pickles modeld already ships, so its own warp build, the four jetlink_warp pickles and their QCOM import and validation go.
cable_connected() is true for any host on the USB-C port. With a Chestnut pick downloaded and Jetlink on, every drive waited 10 s for a chestnut, raised Big Model Failed and left Jetlink unattached. The cable now counts only with Jetlink off.
StarPilotAdapter subclasses jetlink's Stock: StarPilot's param names, the
AOL engagement rule, the model root and a CatalogModelState history reset
that keeps its JIT buffers. jetlinkd runs jetlink's owner as it is, modeld
calls the hooks, and Galaxy and analytics read jetlink's runtime record in
place of JetlinkRuntime.
- no big-model slot or catalog keys: jetlink provisions its default model
- jetlink restores the owner's tuning itself; the port draw stays cut with
a host plugged in
- the Jetson is asked to power off on DoShutdown only, capped at 30 s
Keep official openpilot ancestry and dependency licenses. Store resources directly in Git, remove LFS setup requirements, and leave the downloadable big model outside the source tree.
* Update tinygrad to latest upstream with minimal openpilot patches
* Rebase tinygrad on latest upstream with one remaining patch
* Use retargetable model and warp artifacts
* Pack compiled model weights to reduce startup time
* Memory-map out-of-band model weights
* Use unmodified upstream tinygrad master
* Keep locally built model artifacts native
* Remove model chunking and use LFS for Chestnut releases
* Check Git blob sizes once during release packaging
* Download the big model for Chestnut nightly builds
* Reuse published LFS models when pushing releases
* Preserve LFS configuration when copying Chestnut releases
* Detect release builds independently of LFS attributes
* not worth 1m
* saves 24s
* save 13s
* parallelize model compilation
* explain compiler affinity
* full cpufreq
* rm that for now
* cmt
---------
Co-authored-by: elkoled <elkoled@gmail.com>
* Ship precompiled eGPU model and camera warps
Compile f78ed37d-afad-4dbc-8050-40ea885eedde/12864 through xx/ml_tools/openpilot_compile using the pinned tinygrad version.
* Precompile the existing master driving model
Use the unchanged master ONNX (SHA-256 6fee5937923c74848df4a63f6239eb6331c6274dd4bdb7a5d6ec0388a8b543d5) instead of updating the trained model.
* Compile camera warps on device
* Remove obsolete ONNX chunking and big model build check
* Chunk model artifacts only during release packaging
* Require model and camera warps for Chestnut readiness
* Recompile precompiled CPU helpers for the runtime host
* Ship the eGPU model with an ARM submission helper
* Exempt model pickles from the build product size limit
* Use tinygrad generic ONNX compiler artifacts
* Keep compiler temporary model buffers off device tmpfs
* Keep recurrent model state updates on the GPU
* Use compiled output buffers and swap recurrent state inputs
* Note when ONNX chunk reassembly can be removed
* Bump tinygrad to rebased compilers and AMD queue fix
* Keep recurrent buffers fixed and use faster USB argument updates
* Bump tinygrad for faster model startup
* modeld: use tinygrad ONNX and warp compilers for driving and DM
* Bump tinygrad with current openpilot model compile tests
* modeld: prioritize tinygrad compiler imports in build environment
* Use compiler branch based on openpilot's pinned tinygrad
* modeld: invoke tinygrad compilers without firmware patch
* modeld: move history queues into ONNX
* Move ONNX history export into xx exporter
* Rename ONNX image input to new_img
* Combine ONNX model history state
* Revert model history README addition
* Keep float32 input packing from master
* Rename model input specs to input shapes