Tensor Parallelism
Beim Tensor-Parallelismus werden die Gewichtsmatrizen einer Schicht auf mehrere GPUs verteilt, sodass jedes Gerät einen Teil jeder Operation berechnet. Der Artikel behandelt verwandte Methoden, Anwendungsfälle und PyTorch.
Tensor-Parallelität ist eine fortschrittliche Technik für das verteilte Training im maschinellen Lernen. Dabei werden große mathematische Strukturen, sogenannte Tensoren, auf mehrere Hardwarebeschleuniger wie GPUs oder TPUs verteilt. Beim Training umfangreicher Deep-Learning-Modelle kann die Anzahl der Parameter die Speicherkapazität eines einzelnen Geräts leicht übersteigen. Statt eine ganze Schicht eines neuronalen Netzes auf einer GPU abzulegen, teilt die Tensor-Parallelität die Gewichtsmatrizen auf und verteilt die mathematischen Operationen (etwa Matrixmultiplikationen) auf mehrere Geräte in einem Cluster. So kann das Modell den kombinierten Speicher und die Rechenleistung der gesamten Hardware nutzen und Berechnungen parallel nach dem Single-Program-Multiple-Data-Prinzip (SPMD) ausführen, während die Ergebnisse über Hochgeschwindigkeitsverbindungen wie NVIDIA NVLink synchronisiert werden.
Funktionsweise der Tensor-Parallelität#
Im Mittelpunkt neuronaler Netze stehen Matrixmultiplikationen. Beim Tensor-Parallelismus werden diese Operationen aufgeteilt, indem Matrizen nach Zeilen oder Spalten zerlegt werden. In einer vollständig verbundenen Schicht oder einem Transformer-Aufmerksamkeitsmechanismus könnte beispielsweise eine GPU die linke und eine andere GPU die rechte Hälfte der Matrix berechnen. Nach Abschluss der parallelen Berechnungen kommunizieren die Geräte miteinander – häufig mithilfe schneller kollektiver All-Reduce-Operationen –, um die Teilergebnisse zusammenzuführen, bevor der vollständige Tensor an die nächste Schicht weitergegeben wird. Akademische Fortschritte aus dem Jahr 2025 optimieren diesen Prozess weiter, indem teilweise synchronisierte Aktivierungen eingeführt werden. So soll der Kommunikationsaufwand sinken, der große Rechencluster typischerweise ausbremst.
Abgrenzung verwandter Parallelisierungstechniken#
Um zu verstehen, wie Tensor-Parallelität in die umfassendere Landschaft des verteilten Rechnens passt, musst du sie von anderen gängigen Strategien unterscheiden:
- Tensor-Parallelität und Modellparallelität: Tensor-Parallelität ist eine sehr spezifische Unterkategorie der Modellparallelität. Während Modellparallelität allgemein bedeutet, ein Modell auf beliebige Weise auf mehrere Geräte aufzuteilen, bezeichnet Tensor-Parallelität ausdrücklich die Aufteilung einzelner Tensoren innerhalb einer einzigen Schicht.
- Tensor-Parallelismus im Vergleich zu Pipeline-Parallelismus: Pipeline-Parallelismus ist eine weitere Form des Modellparallelismus, bei der das Netzwerk nach seiner Tiefe aufgeteilt wird: Die ersten Schichten liegen auf GPU 0, die nächsten auf GPU 1 und so weiter. Dadurch entstehen aufeinanderfolgende Abhängigkeiten, sogenannte Pipeline-Blasen. Beim Tensor-Parallelismus werden die Schichten selbst aufgeteilt und ohne zeitliche Verzögerung gleichzeitig ausgeführt. Dafür ist jedoch eine deutlich höhere Netzwerkbandbreite erforderlich.
- Tensor-Parallelität und Datenparallelität: Bei der Datenparallelität wird das vollständige Modell auf jeder GPU repliziert und nur der Trainingsdatensatz auf die Geräte verteilt. Für hochoptimierte Architekturen wie Ultralytics YOLO26, die problemlos auf moderne GPUs passen, ist Datenparallelität mit
DistributedDataParallelvon PyTorch die Standardmethode. Tensor-Parallelität ist in der Regel nur dann erforderlich, wenn die Parameter einer einzelnen Schicht den VRAM der Hardware übersteigen und dadurch Speicherfehler (OOM) auftreten.
Anwendungen in der Praxis#
Tensor-Parallelität ist für moderne KI-Infrastrukturen unverzichtbar, insbesondere für hochmoderne Architekturen, die enorme Rechenleistung erfordern:
- Training großer Sprachmodelle (LLMs): Umfangreiche Basismodelle wie Llama 3 von Meta nutzen Tensor-Parallelismus, der häufig mit Frameworks wie NVIDIA Megatron-LM implementiert wird. DeepSeek V3 wurde bemerkenswerterweise ohne dieses Verfahren trainiert und nutzte stattdessen Pipeline- und Expertenparallelismus. Da die verborgenen Dimensionen und Aufmerksamkeitsköpfe dieser Modelle sehr groß sind, müssen sie auf einen Knoten mit acht GPUs aufgeteilt werden, um effizient zu trainieren und bei der Inferenz in Echtzeit eine geringe Latenz zu gewährleisten.
- Große Bildverarbeitungsmodelle (LVMs) und 3D-Generierung: Da die Computer Vision immer stärker auf umfangreiche multimodale Schlussfolgerungssysteme setzt, kombinieren Forschende Tensor- und Pipeline-Parallelismus auf Diensten wie AWS SageMaker, um riesige Vision Transformer (ViTs) zu trainieren. So lassen sich hochauflösende Bilder verarbeiten und Videos generieren, wofür enorm große zusammenhängende Speicherblöcke benötigt werden.
Tensor-Parallelität in PyTorch implementieren#
Früher mussten Entwickler komplexe, eigene verteilte Logik schreiben, um Tensoren aufzuteilen. Kürzlich hat PyTorch DTensor (Distributed Tensor) eingeführt, wodurch sich dieser Workflow nativ vereinfachen lässt. Im Folgenden siehst du ein Beispiel für die Erstellung eines zeilenweise aufgeteilten Tensors mithilfe der offiziellen PyTorch-API für verteilte Tensoren:
import torch
from torch.distributed.device_mesh import init_device_mesh
from torch.distributed.tensor import Shard, distribute_tensor
# Initialize a 1D device mesh across 2 GPUs
mesh = init_device_mesh("cuda", (2,))
# Create a standard PyTorch tensor (e.g., representing a layer's weights)
local_tensor = torch.randn(1024, 1024)
# Distribute the tensor across the GPUs by sharding along the first dimension (row-wise)
# Each GPU now holds a (512, 1024) chunk of the original tensor
distributed_tensor = distribute_tensor(local_tensor, mesh, [Shard(0)])
print(f"Global shape: {distributed_tensor.shape}, Local shape: {distributed_tensor.to_local().shape}")Für bildverarbeitungsbezogene Aufgaben am Edge und die schnelle Modellbereitstellung verlassen sich Entwickler meist auf die Ultralytics Platform, um die Hardwarenutzung automatisch zu optimieren. Während Basismodelle mit mehreren Milliarden Parametern eine manuelle Konfiguration des Tensor-Parallelismus erfordern, kannst du das Training von Modellen wie YOLO26 mit einfachen CLI-Befehlen sofort skalieren. So wird der Durchsatz maximiert, indem native Verfahren der Datenparallelität nahtlos mit fundierten Tipps zum Modelltraining kombiniert werden.










