New Release: Ultralytics v8.3.217

Ultralytics v8.3.217 — Lighter segmentation, smoother latency :rocket:

Heads up, YOLO users! v8.3.217 focuses on leaner segmentation masks, smoother first-iteration latency, and finer control over dataloader memory. If you’re training or deploying YOLO11 (our recommended default), this release should make segmentation runs snappier and more reliable. :brain::high_voltage:

Summary

  • Segmentation masks are now ~4× lighter via consistent uint8 handling.
  • Post-processing has more stable first-iteration latency thanks to NMS warmup.
  • Dataloader adds a pin_memory switch, defaulting off for validation to improve stability.

New Features

  • NMS warmup for clearer first-iteration post-processing latency, introduced in the dedicated NMS warmup PR by Y-T-G. This warms up the backend NMS immediately after the first forward pass, reducing “cold start” spikes.

Improvements

  • Segment masks are optimized end-to-end with .byte() (uint8), detailed in the segment mask .byte() optimization PR by Glenn Jocher:
    • process_mask and process_mask_native now return uint8 masks.
    • masks2segments consumes byte masks directly, avoiding extra casts.
    • Image/tensor conversions consistently use uint8 to prevent dtype mismatches.
  • Dataloader gains a pin_memory option via build_dataloader(..., pin_memory: bool = True), as part of the NMS warmup PR by Y-T-G. Validation defaults to pin_memory=False for stability, while training continues to pin memory by default.

Bug Fixes

Minimal examples

  • Control pinned memory in your dataloader:
from ultralytics.data.build import build_dataloader

# dataset = ...
dl = build_dataloader(dataset, batch=16, workers=8, pin_memory=False)
  • NMS warmup happens automatically during backend warmup; no code changes required.

Upgrade

pip install -U ultralytics

Links

Contributors

Big thanks to the community for pushing things forward—credit to Glenn Jocher, Y-T-G, and Laughing-q for their contributions in this release. The Ultralytics team and the broader YOLO community make these improvements possible. :raising_hands:

Try it and share feedback

Update to v8.3.217 and let us know how the lighter masks and NMS warmup perform in your workflows. Your feedback on segmentation throughput, first-iteration latency, and pin_memory behavior helps us iterate quickly.

Happy building with YOLO!