Kompromisse beim globalen Speicher
Groß, langsam und für jeden Thread sichtbar.
Kompromisse beim globalen Speicher ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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 CUDA Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.
Der größte verfügbare Speicherbereich
Der globale Speicher ist der Haupt-DRAM der GPU und umfasst häufig viele Gigabyte. Während eines Kernels liegen dort ganz natürlich Ihre großen Eingabe- und Ausgabearrays.
Für alle sichtbar
Jeder Thread in jedem Block kann den globalen Speicher lesen und schreiben. Genau wegen dieser gemeinsamen Sichtbarkeit kopieren Sie Ihre Daten vor dem Start dorthin. 🌍
Mit cudaMalloc reservieren
Sie reservieren globalen Speicher vom Host aus mit cudaMalloc. Dadurch erhalten Sie einen Gerätezeiger auf diesen DRAM-Bereich.
float *d_a;
cudaMalloc(&d_a, n * sizeof(float));Groß, aber langsam
Der Nachteil ist die Latenz. Ein einzelner Lesezugriff auf den globalen Speicher kann Hunderte von Taktzyklen kosten – deutlich mehr als ein Registerzugriff.
Die Bandbreite ist die eigentliche Begrenzung
Viele Kernel sind nicht durch die Berechnungen begrenzt, sondern dadurch, wie schnell Bytes aus dem DRAM übertragen werden. Solche Kernel nennen wir speichergebunden.
Latenz mit Threads verbergen
Die GPU verbirgt langsame Lesezugriffe, indem sie zu anderen bereiten Warps wechselt, während einer wartet. Dieses Verbergen der Latenz erklärt, warum viele Threads so wichtig sind.
Bleibt über Kernelstarts hinweg erhalten
Daten im globalen Speicher bleiben zwischen Kernelstarts erhalten, bis Sie den Speicher freigeben. Sie können mehrere Kernel mit denselben Puffern ausführen.
Durch L2 zwischengespeichert
Ein gemeinsamer L2-Cache liegt für die gesamte GPU vor dem globalen Speicher. Wiederverwendete Adressen können daraus statt aus dem langsamen DRAM bedient werden.
Das Zugriffsmuster bestimmt die Geschwindigkeit
Wie Threads auf Adressen abgebildet werden, beeinflusst den Durchsatz enorm. Wenn benachbarte Threads auf benachbarte Adressen zugreifen, nennt man das in späteren Lektionen Coalescing.
Zugriffe minimieren
Die grundlegende Strategie ist einfach: Greifen Sie so selten wie möglich auf den globalen Speicher zu. Einmal lesen, auf dem Chip wiederverwenden, einmal schreiben.
Geben Sie Reserviertes frei
Da der globale Speicher eine begrenzte Ressource ist, geben Sie ihn mit cudaFree frei, sobald Sie fertig sind, damit kein Gerätespeicher verloren geht.
cudaFree(d_a);Kurzer Test
Welche Aussage beschreibt den Kompromiss beim globalen Speicher am besten?
Zusammenfassung: Groß, gemeinsam, langsam
Sie wissen nun, dass globaler Speicher der große, für alle sichtbare DRAM der GPU ist, der hohe Kapazität gegen hohe Latenz eintauscht. Greifen Sie selten darauf zu und verwenden Sie Daten auf dem Chip wieder. 🚀
Lerne C++ 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 „Kompromisse beim globalen Speicher“ kostenlos?
Ja — der vollständige Text von „Kompromisse beim globalen Speicher“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CUDA Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Kompromisse beim globalen Speicher“?
Groß, langsam und für jeden Thread sichtbar. Du übst CUDA 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 CUDA Academy zu starten?
Keine Vorkenntnisse erforderlich. CUDA 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 2 von 4.
Wie lange dauert die Lektion „Kompromisse beim globalen Speicher“?
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 CUDA Academy-Lektion Code schreiben und ausführen?
Ja. Jede CUDA 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
- Register und lokaler Speicher
- Kompromisse beim globalen Speicher
- Konstanter Speicher und sein Cache
- Ein mentales Modell der Hierarchie