Prefetching mit cudaMemPrefetchAsync
Verschieben Sie Seiten, bevor sie benötigt werden.
Prefetching mit cudaMemPrefetchAsync ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Stop Paying for Faults
Instead of waiting for slow first-touch faults, you can move pages early. cudaMemPrefetchAsync sends managed data to a device before the kernel needs it.
The Basic Call
You name the pointer, the byte count, and the destination device. This one prefetch migrates the whole range up front in a single efficient move.
cudaMemPrefetchAsync(data, n * sizeof(float), 0);Pick the Destination
The third argument is the device id. Pass a GPU number to stage data on that GPU, ready for the kernel you are about to launch.
int dev = 0;
cudaMemPrefetchAsync(data, bytes, dev);Prefetch Back to the CPU
Use the special id cudaCpuDeviceId to pull results back to the host. Do it before CPU code reads them to avoid a wave of faults.
cudaMemPrefetchAsync(data, bytes, cudaCpuDeviceId);It Is Asynchronous
The Async in the name is real: the call returns immediately and runs in a stream. Your CPU keeps working while pages migrate in the background.
Overlap With Compute
Because it rides a stream, a prefetch can overlap with other kernels. Stage the next chunk while the current one is still being processed.
cudaMemPrefetchAsync(next, bytes, dev, stream);One Move Beats Many Faults
A single bulk prefetch is far cheaper than thousands of tiny faults. You trade scattered overhead for one contiguous high-bandwidth transfer.
Prefetch the Right Range
Only stage what the kernel actually touches. Prefetching a huge buffer the kernel barely reads just wastes bandwidth and GPU memory.
A Two-Sided Pattern
A clean rhythm emerges: prefetch to the GPU, launch the kernel, prefetch results back. This keeps migration off the critical path on both ends.
Measure, Do Not Guess
Add a prefetch, then check Nsight for fewer faults and tighter timelines. Let profiling confirm the win rather than trusting intuition.
Convenience Plus Control
Prefetching keeps the single-pointer ease of managed memory while giving you back control over timing. You get the best of both styles.
Quick Check
Let us confirm what prefetching buys you.
Recap: Prefetching
You learned to stage pages early with cudaMemPrefetchAsync, picking a GPU or cudaCpuDeviceId. It overlaps in streams and beats faulting. Great job! ✨
Häufig gestellte Fragen
Ist die Lektion „Prefetching mit cudaMemPrefetchAsync“ kostenlos?
Ja — der vollständige Text von „Prefetching mit cudaMemPrefetchAsync“ 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 „Prefetching mit cudaMemPrefetchAsync“?
Verschieben Sie Seiten, bevor sie benötigt werden. 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 3 von 4.
Wie lange dauert die Lektion „Prefetching mit cudaMemPrefetchAsync“?
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
- Ein Pointer, beide Seiten
- Seit迁移 bei Bedarf
- Prefetching mit cudaMemPrefetchAsync
- Hinweise mit cudaMemAdvise