Sicherheit für Unternehmen: Nach ISO 27001 und SOC 2 Type I konform.

Link to this sectionAMD GPU Training with Ultralytics YOLO and ROCm#

Ultralytics unterstützt Training, Validierung und Inferenz auf kompatiblen AMD GPUs über PyTorch ROCm. PyTorch stellt ROCm-Geräte absichtlich über dieselbe torch.cuda Python API zur Verfügung, die auch von CUDA verwendet wird, sodass Ultralytics keinen separaten rocm-Gerätetyp für native PyTorch-Modelle benötigt. Installiere einen ROCm-Build von PyTorch und wähle dann eine AMD GPU mit der Standard-Syntax device=0 oder device=cuda:0 aus.

AMD bietet auch Inferenztechnologien an, die von PyTorch ROCm unabhängig sind. Die Unterstützung für ein AMD-Produkt bedeutet nicht automatisch die Unterstützung für jede AMD-Laufzeitumgebung oder jeden Beschleuniger.

Link to this sectionUnterstützung auf einen Blick#

Diese Tabelle beschreibt das Ultralytics Python-Paket, das für Training, Validierung, Export und Vorhersage verwendet wird.

AMD-Produkt oder LaufzeitumgebungUltralytics-UnterstützungNutzung oder Status
AMD Instinct und unterstützte Radeon GPUs mit ROCmTrainiere, validiere und führe native PyTorch-Modelle mit device=0 oder device=cuda:0 aus.
Multi-GPU ROCmVerwende device=0,1 oder device=[0, 1]; die verteilte Ausführung folgt dem installierten PyTorch ROCm-Stack.
ROCm Automatic Mixed Precision (AMP)⚠️Verfügbar, wenn die installierten PyTorch- und ROCm-Versionen die Ultralytics AMP-Prüfungen bestehen; verwende amp=False bei Inkompatibilität.
ONNX exportDer Export wird unterstützt, aber die ONNX-Datei bietet von sich aus keine AMD-beschleunigte Laufzeitumgebung.
MIGraphX-Inferenz🚧Im aktuellen Python-Paket nicht verfügbar; die Umsetzung wird in PR #24137 verfolgt.
AMD Docker-Image und AMD-Hardware-CI🚧Ebenfalls in PR #24137 verfolgt, nicht allein durch die ROCm-Geräteauswahl bereitgestellt.
Windows DirectML❌ PythonKein DirectML-Trainings- oder Vorhersage-Backend im Python-Paket.
Ryzen AI NPUKeine native Ultralytics NPU-Integration; externe ONNX/Vitis AI Workflows werden von der Community verwaltet.
AMD CPUs✅ CPUVerwende device=cpu; dies ist die Standard-CPU-Ausführung, kein AMD-spezifisches Beschleunigungs-Backend.
Prüfe zuerst die AMD- und PyTorch-Kompatibilität

Die Verfügbarkeit von ROCm hängt von der genauen GPU, dem Betriebssystem, der ROCm-Version und dem PyTorch-Build ab. Überprüfe deine Hardware in der ROCm-Kompatibilitätsmatrix von AMD vor der Installation. Ultralytics kann keine Unterstützung für ein Gerät hinzufügen, das vom installierten PyTorch ROCm-Build nicht bereitgestellt wird.

Link to this sectionWarum ROCm CUDA-Gerätenamen verwendet#

Der ROCm-Build von PyTorch verwendet intern HIP, nutzt jedoch bewusst die torch.cuda-Schnittstellen wieder. Zum Beispiel funktionieren torch.cuda.is_available(), torch.cuda.device_count() und torch.cuda.get_device_name() mit unterstützten AMD GPUs. Dieses Design ermöglicht es demselben Ultralytics-Trainingspfad, NVIDIA CUDA und AMD ROCm ohne doppeltes Backend zu bedienen.

Siehe die offizielle PyTorch HIP-Semantik für Details.

Wichtig

Verwende im Python-Paket device=0 oder device=cuda:0 für PyTorch ROCm. Verwende nicht device=rocm:0; rocm ist kein PyTorch-Gerätetyp.

Link to this sectionPyTorch ROCm installieren#

  1. Verifiziere, dass dein Betriebssystem und deine GPU in der ROCm-Kompatibilitätsmatrix aufgeführt sind.

  2. Verwende den PyTorch-Installations-Selector, um den ROCm-Build auszuwählen, der zu deiner installierten ROCm-Version passt.

  3. Installiere Ultralytics nach PyTorch:

    pip install ultralytics
  4. Überprüfe, ob PyTorch die AMD GPU erkennt:

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

torch.cuda.is_available() sollte True zurückgeben, der Gerätename sollte deine AMD GPU identifizieren und torch.version.hip sollte die vom ROCm-Build bereitgestellte HIP-Version anzeigen.

Link to this sectionAuf einer AMD GPU trainieren#

Verwende dieselben Geräteargumente wie beim standardmäßigen Ultralytics Train Modus.

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])

Validierung und Vorhersage verwenden dieselbe Geräteauswahl:

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

Link to this sectionAMP-Kompatibilität#

Ultralytics aktiviert AMP standardmäßig und vergleicht Ergebnisse mit einfacher und gemischter Präzision vor dem Training. Wenn die Prüfung inkompatible Ergebnisse feststellt, wird AMP deaktiviert, um NaN-Verluste oder ein Training mit Null-mAP zu verhindern. Das ROCm AMP-Verhalten kann sich mit den PyTorch- und ROCm-Versionen ändern. Verwende daher amp=False bei der Behebung eines stack-spezifischen Fehlers:

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

Link to this sectionNoch nicht unterstützte Funktionen#

Link to this sectionMIGraphX#

MIGraphX ist die Graphenoptimierungs- und Inferenzlaufzeit von AMD. Das native Laden von MIGraphX-Modellen ist im aktuellen Ultralytics Python-Paket nicht enthalten. Die aktive Implementierung, der AMD-Container, Abhängigkeiten, Tests und die Dokumentation werden zusammen in PR #24137 verfolgt. Bis diese Arbeit zusammengeführt wird und eine AMD-Hardwarevalidierung erhält, sollte der Export eines ONNX-Modells im Python-Paket nicht als native MIGraphX-Unterstützung bezeichnet werden.

Link to this sectionDirectML#

Das Ultralytics Python-Paket besitzt kein DirectML-Backend für Windows-Training oder -Vorhersage. DirectML unterscheidet sich von ROCm, und eine funktionierende ROCm-Umgebung aktiviert nicht automatisch device=directml.

Link to this sectionRyzen AI NPU#

Ryzen AI NPUs werden nicht über PyTorch ROCm bereitgestellt und sind keine nativen Ultralytics-Geräte. Community-Workflows exportieren YOLO-Modelle möglicherweise nach ONNX und führen sie mit den externen Ryzen AI- oder Vitis AI-Werkzeugen von AMD aus, aber diese Laufzeitumgebung, Konvertierung und Hardwarekompatibilität liegen außerhalb des unterstützten Ultralytics-Ausführungspfads.

Link to this sectionFehlerbehebung#

Link to this sectionWarum gibt torch.cuda.is_available() auf meinem AMD-System False zurück?#

Das installierte PyTorch-Paket ist möglicherweise ein CPU- oder CUDA-Build, oder die GPU wird vom aktiven ROCm-Stack nicht unterstützt. Installiere den passenden ROCm-Build über den PyTorch-Selector und überprüfe die GPU anhand der Kompatibilitätsmatrix von AMD.

Link to this sectionWarum meldet Ultralytics CUDA, obwohl ich eine AMD GPU habe?#

Dies ist so erwartet. PyTorch ROCm verwendet absichtlich die torch.cuda API und Gerätestrings im CUDA-Stil für die Python-Kompatibilität. Das Modell wird weiterhin über HIP und ROCm auf der AMD GPU ausgeführt.

Link to this sectionAktiviert der ONNX-Export MIGraphX oder Ryzen AI automatisch?#

Nein. ONNX ist ein portables Modellformat. Eine beschleunigte Ausführung erfordert dennoch eine kompatible Laufzeitumgebung, und native MIGraphX-, DirectML- und Ryzen AI NPU-Backends sind im aktuellen Ultralytics Python-Paket nicht enthalten.

Link to this sectionZusammenfassung#

Verwende einen kompatiblen PyTorch ROCm-Build mit device=0 oder device=cuda:0 für das Training, die Validierung und die Inferenz auf unterstützten AMD GPUs. Betrachte MIGraphX, DirectML und Ryzen AI NPU als separate Funktionen: keine davon wird allein durch die Installation von ROCm oder den Export eines ONNX-Modells aktiviert.

Mitwirkende

Kommentare