# New Release: Ultralytics v8.3.217

**URL:** <https://community.ultralytics.com/t/new-release-ultralytics-v8-3-217/1554>\
**Category:** Discussion\
**Tags:** ultralytics-official, releases, announcements\
**Created:** [October 17, 2025, 1:13pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-3-217/1554 "2025-10-17T13:13:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![glenn-jocher](https://sea1.discourse-cdn.com/flex001/user_avatar/community.ultralytics.com/glenn-jocher/32/83_2.png) [@glenn-jocher](https://community.ultralytics.com/u/glenn-jocher)\
**Post date:** [October 17, 2025, 1:13pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-3-217/1554/1 "2025-10-17T13:13:34Z")

</div>

# Ultralytics v8.3.217 — Lighter segmentation, smoother latency 🚀

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. 🧠⚡

## 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](https://github.com/ultralytics/ultralytics/pull/22425) by [Y-T-G](https://github.com/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](https://github.com/ultralytics/ultralytics/pull/22427) by [Glenn Jocher](https://github.com/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](https://github.com/ultralytics/ultralytics/pull/22425) by [Y-T-G](https://github.com/Y-T-G). Validation defaults to `pin_memory=False` for stability, while training continues to pin memory by default.

## Bug Fixes

- Evaluation stability: predicted masks are cast to `float()` before IoU computation, included in the [segment mask `.byte()` optimization PR](https://github.com/ultralytics/ultralytics/pull/22427) by [Glenn Jocher](https://github.com/glenn-jocher), preventing edge-case dtype errors.

## Minimal examples

- Control pinned memory in your dataloader:

```python
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

```bash
pip install -U ultralytics

```

## Links

- Explore all details on the [v8.3.217 release page](https://github.com/ultralytics/ultralytics/releases/tag/v8.3.217) and, if you want the full picture, you can also [view the complete changelog](https://github.com/ultralytics/ultralytics/compare/v8.3.216...v8.3.217).
- If you’re new to our latest models, the [YOLO11 model overview](https://docs.ultralytics.com/models/yolo11/) is a great place to start.

## Contributors

Big thanks to the community for pushing things forward—credit to [Glenn Jocher](https://github.com/glenn-jocher), [Y-T-G](https://github.com/Y-T-G), and [Laughing-q](https://github.com/Laughing-q) for their contributions in this release. The Ultralytics team and the broader YOLO community make these improvements possible. 🙌

## 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!
