Mojo Academy · Lektion

Daten zum und vom Device übertragen

Verwalten Sie Speichertransfers zwischen Host und Device.

Lektion 4 von 413 Schritte

Daten zum und vom Device übertragen ist eine kostenlose Mojo Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Mojo Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.

Zwei getrennte Speicher

CPU und GPU verfügen jeweils über ihren eigenen Speicher. Die GPU kann Ihre Host-Arrays erst lesen, wenn sich die Daten auf dem Device befinden.

Host und Device

Die CPU-Seite nennen wir Host und die GPU-Seite Device. Daten zwischen beiden zu verschieben, ist ein wesentlicher Bestandteil der GPU-Arbeit.

Auf dem Device reservieren

Zuerst reservieren Sie auf der GPU Speicherplatz für Ihre Daten. In diesem Device-Puffer werden Eingaben und Ausgaben abgelegt.

var d_a = ctx.enqueue_create_buffer[DType.float32](n)

Eingaben übertragen

Als Nächstes kopieren Sie Ihre Host-Arrays in diese Device-Puffer. Durch diesen Upload erhält die GPU die benötigten Zahlen.

ctx.enqueue_copy(d_a, h_a)

Den Kernel ausführen

Nachdem die Daten auf dem Device liegen, starten Sie den Kernel. Er liest aus den Device-Puffern und schreibt in sie, niemals in die Host-Puffer.

ctx.enqueue_function[kernel](grid_dim=blocks, block_dim=256)

Ergebnisse zurückkopieren

Die Ausgabe bleibt auf der GPU, bis Sie sie abrufen. Ein Download kopiert den Ergebnispuffer zurück in den Host-Speicher.

ctx.enqueue_copy(h_out, d_out)

Arbeit wird eingequeued, nicht sofort ausgeführt

Diese Aufrufe werden auf der GPU eingereiht und nicht sofort abgeschlossen. Sie müssen synchronisieren, bevor Sie den Ergebnissen auf dem Host vertrauen können.

ctx.synchronize()

Der vollständige Datenweg

Der vollständige Ablauf besteht aus Upload, Berechnung und Download. Stellen Sie sich vor, wie die Daten einen Hin- und Rückweg vom Host zum Device und zurück nehmen.

Übertragungen kosten Zeit

Das Kopieren über den Bus ist im Vergleich zur Berechnung langsam. Jede Übertragung kann Ihren Geschwindigkeitsvorteil zunichtemachen, wenn Sie sie zu häufig durchführen.

Daten auf dem Device behalten

Verketten Sie mehrere Kernel mit denselben Puffern, bevor Sie die Daten zurückkopieren. Wenn Sie Hin- und Rückwege minimieren, bleibt der Vorteil der GPU erhalten.

Reservierten Speicher freigeben

Device-Speicher ist begrenzt. Geben Sie daher Puffer frei, die Sie nicht mehr benötigen. Die Besitzregeln von Mojo helfen dabei, sie zum richtigen Zeitpunkt freizugeben.

Kurztest

Sie möchten, dass ein GPU-Programm tatsächlich von Anfang bis Ende schneller läuft.

Zusammenfassung

Laden Sie Eingaben auf das Device hoch, führen Sie den Kernel aus, laden Sie anschließend die Ergebnisse herunter und synchronisieren Sie, während Sie kostspielige Übertragungen auf ein Minimum beschränken. 🔁

Kostenlos starten

Lerne Mojo mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Daten zum und vom Device übertragen“ kostenlos?

Ja — der vollständige Text von „Daten zum und vom Device übertragen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Mojo Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Daten zum und vom Device übertragen“?

Verwalten Sie Speichertransfers zwischen Host und Device. Du übst Mojo Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Mojo Academy zu starten?

Keine Vorkenntnisse erforderlich. Mojo Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Daten zum und vom Device übertragen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Mojo Academy-Lektion Code schreiben und ausführen?

Ja. Jede Mojo Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum GPUs für AI-Workloads
  2. Threads, Blöcke und Grids
  3. Eine GPU-Kernelfunktion schreiben
  4. Daten zum und vom Device übertragen
← Zurück zu Mojo Academy