Skip to main content

Wie man GPU mit PyTorch verwendet

Ein kurzes Tutorial zur Verwendung von GPUs für Ihre Deep-Learning-Modelle mit PyTorch.
Created on January 31|Last edited on February 2
Dieser Artikel wurde aus dem Englischen übersetzt. Hier ist das Original.

Sektionen




Einführung

In diesem Bericht gehen wir darauf ein, wie Sie Ihren GPU nutzen und besser kontrollieren können.
Wir verwenden Weights und Biases, mit dem wir automatisch alle Metriken zur GPU- und CPU-Auslastung protokollieren können. Dies macht es einfach, die Nutzung der Rechenressourcen zu überwachen, während wir eine Fülle von Modellen trainieren.

GPU-Verfügbarkeit prüfen

Der einfachste Weg, um zu prüfen, ob Sie Zugriff auf GPUs haben, ist der Aufruf von torch.cuda.is_available(). Wenn diese Funktion True zurückgibt, bedeutet dies, dass der Nvidia-Treiber auf dem System korrekt installiert ist.
>>> import torch
>>> torch.cuda.is_available()


GPU verwenden - Probleme

  • Standardmäßig werden die Tensoren auf der CPU erzeugt. Auch das Modell wird auf der CPU initialisiert. Daher muss man manuell sicherstellen, dass die Operationen auf der GPU ausgeführt werden.
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train.is_cuda
    False
  • PyTorch bietet eine einfach zu verwendende API, um den auf der CPU erzeugten Tensor auf den GPU zu übertragen. Glücklicherweise werden die neuen Tensoren auf demselben Gerät erzeugt wie der übergeordnete Tensor.
    >>> X_train = X_train.to(device)
    >>> X_train.is_cuda
    True
  • Die gleiche Logik gilt für das Modell.
    model = MyModel(args)
    model.to(device)
  • Daher müssen die Daten und das Modell an den GPU übertragen werden. Nun, was ist ein device?
  • Es ist eine gängige PyTorch-Praxis, eine Variable zu initialisieren, die normalerweise device heißt und das Gerät enthält, auf dem wir trainieren (CPU oder GPU).
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print(device)


Torch CUDA-Paket

In PyTorch bietet das torch.cuda-Paket zusätzliche Unterstützung für CUDA-Tensortypen, welche die gleiche Funktion wie CPU-Tensoren implementieren, aber GPUs für die Berechnung nutzen.
  • Wenn Sie einen Tensor auf dem GPU haben wollen, können Sie . cuda() aufrufen.
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train = X_train.cuda()
  • Wenn Sie einen Tensor auf dem GPU haben und ihn auf die CPU bringen möchten, können Sie cpu() aufrufen. Dies wird normalerweise verwendet, um die Ausgabe (Tensor) des Modells auf die CPU zu bringen.
  • Zum Abrufen des Index des aktuell ausgewählten Geräts.
    >>> torch.cuda.current_device() # returns 0 in my case
  • Um die Anzahl der verfügbaren GPUs zu ermitteln.
    >>> torch.cuda.device_count() # returns 1 in my case
  • So erhalten Sie den Namen des Geräts.
    >>> torch.cuda.get_device_name(0) # good old Tesla K80


Beispiel und Visualisierung von GPU-Metriken


Probieren Sie das verlinkte Colab-Notebook aus, um einen einfachen MNIST-Klassifikator mit PyTorch zu trainieren. Das Notebook ist mit Weights & Biases integriert.
Wenn Sie Ihre Modelle mit Weights & Biases verfolgen, werden alle Ihre Systemmetriken, einschließlich der GPU-Auslastung, automatisch protokolliert. Einige der wichtigsten Metriken, die protokolliert werden, sind zugewiesener GPU-Speicher, GPU-Auslastung, CPU-Auslastung usw. Die vollständige Liste der protokollierten Metriken können Sie hier einsehen.
Das unten abgebildete Medienpanel zeigt einige dieser Systemmetriken, die von W&B während des Trainings automatisch aufgezeichnet wurden.




Zusammenfassung

In diesem Artikel haben Sie gesehen, wie Sie GPUs für Ihre Deep-Learning-Forschung mit Keras nutzen und Weights und Biases verwenden können, um Ihren Ressourcenverbrauch zu überwachen. Sehen Sie sich diesen großartigen Artikel von Lambda Labs über die Tracking der Systemressourcennutzung während des Trainings mit Weights & Biases an.

Weights & Biases

Weights & Biases hilft Ihnen, den Überblick über Ihre Experimente zum maschinellen Lernen zu behalten. Nutzen Sie unser Tool, um Hyperparameter und Ausgabemetriken aus Ihren Durchläufen zu protokollieren, die Ergebnisse zu visualisieren und zu vergleichen und die Erkenntnisse schnell mit Ihren Kollegen zu teilen.
Starten Sie in 5 Minuten.

Empfohlene Lektüre für alle, die sich für PyTorch interessieren



Iterate on AI agents and models faster. Try Weights & Biases today.