Die Host-Seite verdrahten
Allokieren, kopieren, starten, zurückkopieren, freigeben.
Die Host-Seite verdrahten 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.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
The Host Has a Job Too
The kernel does the math, but the host CPU sets everything up. Its job is allocate, copy in, launch, copy back, and free. 🧩
Two Sets of Pointers
You keep host pointers for CPU arrays and separate device pointers for GPU buffers. A common habit is naming them h_A and d_A.
float *h_A, *h_B, *h_C;
float *d_A, *d_B, *d_C;Fill the Input on the CPU
First prepare your data in normal host memory. Here you just initialize h_A and h_B with values the GPU will add later.
for (int i = 0; i < n; i++) {
h_A[i] = i; h_B[i] = 2 * i;
}Allocate on the Device
The GPU needs its own buffers, so call cudaMalloc for each array. Note the size is in bytes, computed as count times sizeof(float).
size_t bytes = n * sizeof(float);
cudaMalloc(&d_A, bytes);Copy Inputs Up
Move your input arrays to the GPU with cudaMemcpy and the HostToDevice direction. The kernel can only see data that lives on the device.
cudaMemcpy(d_A, h_A, bytes, cudaMemcpyHostToDevice);
cudaMemcpy(d_B, h_B, bytes, cudaMemcpyHostToDevice);Decide the Launch Shape
Pick a thread count per block, then compute how many blocks cover all elements. Rounding up guarantees every element gets a thread.
int threads = 256;
int blocks = (n + threads - 1) / threads;Launch the Kernel
Now fire the kernel with the triple-angle-bracket syntax, passing your device pointers. This call returns immediately while the GPU works.
vecAdd<<<blocks, threads>>>(d_A, d_B, d_C, n);Copy the Result Down
When the kernel finishes, bring C back with cudaMemcpyDeviceToHost. This copy also waits for the launch to complete first.
cudaMemcpy(h_C, d_C, bytes, cudaMemcpyDeviceToHost);Free Device Memory
GPU memory is not garbage collected, so release every buffer with cudaFree. Skipping this leaks memory that lasts until the process exits.
cudaFree(d_A); cudaFree(d_B); cudaFree(d_C);The Order Is Sacred
Always follow the same sequence: allocate, copy in, launch, copy back, free. Swap steps and the kernel reads stale or invalid data.
Host Code Is Plain C++
Notice the host side is ordinary C++ plus a handful of cuda calls. There is no special compiler magic beyond the kernel launch.
Quick Check
What must happen before you can launch the vecAdd kernel?
Recap
You wired the host side end to end: two pointer sets, cudaMalloc, copy up, launch, copy back, and cudaFree. The boilerplate that powers every kernel. ✅
Häufig gestellte Fragen
Ist die Lektion „Die Host-Seite verdrahten“ kostenlos?
Ja — der vollständige Text von „Die Host-Seite verdrahten“ 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 „Die Host-Seite verdrahten“?
Allokieren, kopieren, starten, zurückkopieren, freigeben. 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 „Die Host-Seite verdrahten“?
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
- Der Vector-Add-Kernel
- Die Host-Seite verdrahten
- Das Ergebnis auf der CPU prüfen
- Die erste Beschleunigung messen