Erste Schritte mit CUDA

Der typische Ablauf vieler Kernel-Aufrufe wie auch in der folgenden Aufgabe sieht so aus:

Aufgabe

Entwickeln Sie einen CUDA-Kernel scal, der einen Vektor x mit n Elementen skaliert: \(\vec{x} \leftarrow \alpha \vec{x}\). Schreiben Sie dazu ein kleines Testprogramm, das einen Vektor im CPU-Speicher anlegt, initialisiert, zur GPU transferiert, dann die Kernel-Funktion aufruft, das Ergebnis wieder zurückholt und ausgibt.

Das Makro CHECK_CUDA findet sich in der Header-Datei <hpc/cuda/check.h>, die unter /home/numerik/pub/hpc/session24 in der Vorlesungsbibliothek zur Verfügung steht. So kann Ihr Programm auf der Hochwanner übersetzt werden:

nvcc -o scal -I/home/numerik/pub/hpc/session24 --gpu-architecture compute_20 scal.cu