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 Laufzeitumgebung | Ultralytics-Unterstützung | Nutzung oder Status |
|---|---|---|
| AMD Instinct und unterstützte Radeon GPUs mit ROCm | ✅ | Trainiere, validiere und führe native PyTorch-Modelle mit device=0 oder device=cuda:0 aus. |
| Multi-GPU ROCm | ✅ | Verwende 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 export | ✅ | Der 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 | ❌ Python | Kein DirectML-Trainings- oder Vorhersage-Backend im Python-Paket. |
| Ryzen AI NPU | ❌ | Keine native Ultralytics NPU-Integration; externe ONNX/Vitis AI Workflows werden von der Community verwaltet. |
| AMD CPUs | ✅ CPU | Verwende device=cpu; dies ist die Standard-CPU-Ausführung, kein AMD-spezifisches Beschleunigungs-Backend. |
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.
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#
-
Verifiziere, dass dein Betriebssystem und deine GPU in der ROCm-Kompatibilitätsmatrix aufgeführt sind.
-
Verwende den PyTorch-Installations-Selector, um den ROCm-Build auszuwählen, der zu deiner installierten ROCm-Version passt.
-
Installiere Ultralytics nach PyTorch:
pip install ultralytics -
Ü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.
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=0Link 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=FalseLink 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.