YOLO Vision 2026:

AMD GPU Training with Ultralytics YOLO and ROCm#

Ultralytics, uyumlu AMD GPU'larda eğitim, doğrulama ve çıkarımı PyTorch ROCm aracılığıyla destekler. PyTorch, ROCm cihazlarını kasıtlı olarak CUDA tarafından kullanılan aynı torch.cuda Python API'si üzerinden sunar; bu nedenle Ultralytics'in yerel PyTorch modelleri için ayrı bir rocm cihaz türüne ihtiyacı yoktur. Bir ROCm PyTorch derlemesi kur ve ardından standart device=0 veya device=cuda:0 sözdizimini kullanarak bir AMD GPU seç.

AMD also offers inference technologies that are separate from PyTorch ROCm. Support for one AMD product does not imply support for every AMD runtime or accelerator.

Support at a Glance#

This table describes the Ultralytics Python package used for training, validation, export, and prediction.

AMD product or runtimeUltralytics supportUsage or status
AMD Instinct and supported Radeon GPUs with ROCmYerel PyTorch modellerini device=0 veya device=cuda:0 ile eğit, doğrula ve çalıştır.
Multi-GPU ROCmdevice=0,1 veya device=[0, 1] kullan; dağıtık yürütme, kurulu PyTorch ROCm yığınını takip eder.
ROCm Automatic Mixed Precision (AMP)⚠️Kurulu PyTorch ve ROCm sürümleri Ultralytics AMP kontrollerini geçtiğinde kullanılabilir; uyumsuzluk durumunda amp=False kullan.
ONNX dışa aktarımıExport is supported, but the ONNX file does not by itself provide an AMD-accelerated runtime.
MIGraphX inference🚧Mevcut Python paketinde mevcut değil; uygulama çalışmaları PR #24137 üzerinden takip edilmektedir.
AMD Docker image and AMD hardware CI🚧Ayrıca PR #24137 adresinde takip edilmektedir, yalnızca ROCm cihaz seçimiyle sağlanmaz.
Windows DirectML❆ PythonNo DirectML training or prediction backend in the Python package.
Ryzen AI NPUNo native Ultralytics NPU integration; external ONNX/Vitis AI workflows are community-managed.
AMD CPUs✅ CPUdevice=cpu kullan; bu, AMD'ye özel bir hızlandırma arka ucu değil, standart CPU yürütmesidir.
Check AMD and PyTorch compatibility first

ROCm kullanılabilirliği, kesin GPU'ya, işletim sistemine, ROCm sürümüne ve PyTorch derlemesine bağlıdır. Kurulumdan önce AMD'nin ROCm uyumluluk matrisi üzerinden donanımını doğrula. Ultralytics, kurulu PyTorch ROCm derlemesinin sunmadığı bir cihaz için destek ekleyemez.

Why ROCm Uses CUDA Device Names#

PyTorch'un ROCm derlemesi dahili olarak HIP kullanır ancak bilinçli olarak torch.cuda arayüzlerini yeniden kullanır. Örneğin, torch.cuda.is_available(), torch.cuda.device_count() ve torch.cuda.get_device_name() desteklenen AMD GPU'larla çalışır. Bu tasarım, aynı Ultralytics eğitim yolunun yedek bir arka uca ihtiyaç duyulmadan NVIDIA CUDA ve AMD ROCm'e hizmet etmesini sağlar.

Ayrıntılar için resmi PyTorch HIP semantiği sayfasına göz at.

Important

Python paketinde PyTorch ROCm için device=0 veya device=cuda:0 kullan. device=rocm:0 kullanma; rocm bir PyTorch cihaz türü değildir.

Install PyTorch ROCm#

  1. İşletim sisteminin ve GPU'nun ROCm uyumluluk matrisinde yer aldığını doğrula.

  2. Kurulu ROCm sürümünle eşleşen ROCm derlemesini seçmek için PyTorch kurulum seçiciden yararlan.

  3. Install Ultralytics after PyTorch:

    pip install ultralytics
  4. Verify that PyTorch sees the AMD GPU:

    import torch
    
    print(torch.cuda.is_available())
    print(torch.cuda.get_device_name(0))
    print(torch.version.hip)

torch.cuda.is_available() ifadesi True döndürmelidir, cihaz adı AMD GPU'nu tanımlamalıdır ve torch.version.hip ROCm derlemesi tarafından sağlanan HIP sürümünü bildirmelidir.

Train on an AMD GPU#

Standart Ultralytics Eğitim modu ile aynı cihaz argümanlarını kullan.

ROCm Training
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Train on the first AMD GPU exposed by PyTorch ROCm
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)

# Train across two AMD GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

Doğrulama ve tahmin aynı cihaz seçimini kullanır:

yolo detect val model=path/to/best.pt data=coco8.yaml device=0
yolo predict model=path/to/best.pt source=path/to/image.jpg device=0

AMP Compatibility#

Ultralytics varsayılan olarak AMP'yi etkinleştirir ve eğitimden önce tam hassasiyetli ile karma hassasiyetli sonuçları karşılaştırır. Kontrol uyumsuz sonuçlar tespit ederse, NaN kayıplarını veya sıfır mAP eğitimini önlemek için AMP devre dışı bırakılır. ROCm AMP davranışı PyTorch ve ROCm sürümleriyle değişebilir, bu nedenle yığına özel bir hatayı giderirken amp=False kullan:

yolo detect train data=coco8.yaml model=yolo26n.pt device=0 amp=False

Features Not Yet Supported#

MIGraphX#

MIGraphX, AMD'nin grafik optimizasyonu ve çıkarım çalışma zamanıdır. Yerel MIGraphX modeli yüklemesi mevcut Ultralytics Python paketine dahil değildir. Aktif uygulama, AMD kapsayıcısı, bağımlılıklar, testler ve belgelendirme PR #24137 içinde birlikte takip edilmektedir. Bu çalışma birleştirilip AMD donanım doğrulaması alana kadar, bir ONNX modelini dışa aktarmak Python paketinde yerel MIGraphX desteği olarak tanımlanmamalıdır.

DirectML#

Ultralytics Python paketinde Windows eğitimi veya tahmini için DirectML arka ucu yoktur. DirectML, ROCm'den farklıdır ve çalışan bir ROCm ortamı device=directml özelliğini etkinleştirmez.

Ryzen AI NPU#

Ryzen AI NPUs are not exposed through PyTorch ROCm and are not native Ultralytics devices. Community workflows may export YOLO models to ONNX and run them with AMD's external Ryzen AI or Vitis AI tools, but that runtime, conversion, and hardware compatibility are outside the supported Ultralytics execution path.

Sorun Giderme#

AMD sistemimde torch.cuda.is_available() neden False döndürüyor?#

The installed PyTorch package may be a CPU or CUDA build, or the GPU may not be supported by the active ROCm stack. Install the matching ROCm build from the PyTorch selector and verify the GPU against AMD's compatibility matrix.

Why does Ultralytics say CUDA when I have an AMD GPU?#

Bu beklenen bir durumdur. PyTorch ROCm, Python uyumluluğu için bilerek torch.cuda API'sini ve CUDA tarzı cihaz dizelerini kullanır. Model yine de AMD GPU üzerinde HIP ve ROCm aracılığıyla yürütülür.

Does ONNX export enable MIGraphX or Ryzen AI automatically?#

No. ONNX is a portable model format. Accelerated execution still requires a compatible runtime, and native MIGraphX, DirectML, and Ryzen AI NPU backends are not included in the current Ultralytics Python package.

Özet#

Desteklenen AMD GPU eğitimi, doğrulaması ve çıkarımı için device=0 veya device=cuda:0 içeren uyumlu bir PyTorch ROCm derlemesi kullan. MIGraphX, DirectML ve Ryzen AI NPU'yu ayrı yetenekler olarak ele al: hiçbiri yalnızca ROCm yüklenerek veya bir ONNX modeli dışa aktarılarak etkinleştirilmez.

Katkıda Bulunanlar

Yorumlar