pypi ultralytics 8.4.111
v8.4.111 - Add Huawei Ascend NPU training support (#25500)

latest release: 8.4.112
4 hours ago

🌟 Summary

πŸš€ Ultralytics 8.4.111 expands hardware support with validated Huawei Ascend NPU training, broader accelerator compatibility, and important tracking, MPS, deployment, and documentation improvements.

πŸ“Š Key Changes

  • Huawei Ascend NPU training support 🧠

    • Added single- and multi-NPU training and validation through torch_npu.
    • Supports standard training features including AMP, checkpointing, resume, AutoBatch, profiling, memory management, and validation.
    • Multi-NPU training uses Huawei’s HCCL distributed backend.
    • Example device selections include device=npu:0 and device=npu:0,1.
    • Ascend documentation now covers the workflow from training through .om export and deployment.
  • Unified accelerator handling βš™οΈ

    • Device behavior is now derived from the selected PyTorch device rather than being hard-coded for CUDA.
    • Improves compatibility with:
      • Huawei Ascend npu
      • Intel xpu
      • AMD ROCm through PyTorch’s standard CUDA-style device interface
    • Distributed training now selects the appropriate backend: NCCL for NVIDIA, HCCL for Ascend, and XCCL for Intel.
  • AMD ROCm integration guide πŸ”΄

    • Added documentation for training, validation, and inference on supported AMD GPUs using PyTorch ROCm.
    • Clarifies that ROCm uses device=0 or device=cuda:0, not device=rocm:0.
    • Clearly distinguishes supported ROCm workflows from currently unsupported or separate technologies such as MIGraphX, DirectML, and Ryzen AI NPU.
  • Improved accelerator-aware data loading and profiling πŸ“ˆ

    • Dataloaders, pinned memory, synchronization, memory checks, profiling, automatic batch sizing, and mixed precision now account for more device types.
    • NPU and XPU execution avoids unsupported operations such as torchvision NMS kernels where necessary.
  • Tracking and numerical stability improvements 🎯

    • Object counting now detects objects that pass through polygon regions between frames, even when no centroid is sampled inside the region.
    • Deep OC-SORT preserves homography precision.
    • Kalman filter states consistently use float64.
    • Re-identification features are stored safely as float32.
    • GMC matching now retains valid zero-variance and boundary-distance matches.
    • NumPy assignment now raises a clear error for infeasible cost matrices instead of potentially hanging.
  • Apple MPS reliability fixes 🍎

    • Avoids problematic in-place operations on strided MPS tensors across affected macOS and PyTorch versions.
    • Prevents autocast crashes on MPS with PyTorch versions older than 2.5.
  • Documentation and platform updates πŸ“š

    • Added LabelMe dataset import instructions for converting offline annotations to YOLO format and uploading them to the Ultralytics Platform.
    • Updated Rust inference documentation for ultralytics-inference 0.0.32, including Intel CPU, GPU, and NPU device options.
    • Refreshed Raspberry Pi 5 YOLO26 benchmarks with LiteRT and clarified that LiteRT export must be performed off-device.
    • Added a monocular depth estimation tutorial to the YOLO26 documentation.
    • Normalized GPU names in usage telemetry to improve reporting consistency.

🎯 Purpose & Impact

  • 🌍 Broader hardware choice: Users can train Ultralytics models on Huawei Ascend NPUs, AMD GPUs, Intel accelerators, and NVIDIA GPUs through more consistent device handling.
  • πŸš€ Easier enterprise and edge deployment: Ascend training now connects directly to existing export and deployment workflows, while AMD and Raspberry Pi guidance makes hardware-specific setup clearer.
  • 🧩 Less backend-specific code: The shared PyTorch device abstraction reduces the need for separate trainers or parallel implementations for each accelerator.
  • πŸ“Š More dependable tracking: Object counters and trackers should behave more accurately in fast-motion, low-variance, and mixed-precision scenarios.
  • πŸ›‘οΈ Improved reliability: MPS fixes prevent crashes and inconsistent detections, while the assignment fallback now fails safely on impossible inputs.
  • πŸ“– Better onboarding: New LabelMe, AMD, Ascend, Rust, Raspberry Pi, and depth resources help users move from dataset preparation to training and deployment more easily.
  • πŸ”’ The package version is updated to 8.4.111.

What's Changed

New Contributors

Full Changelog: v8.4.110...v8.4.111

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.