KillerPinockel
Lieutenant
- Registriert
- Jan. 2009
- Beiträge
- 664
Hallo,
da ich mich nun etwas mit CUDA Programmierung beschäftigt habe, wollte ich gern mal einen kleinen Test machen.
Hier mein CODE
Wirklich nur ein kleines Beispiel, aber so richtig klappen will es nicht.
Eigentlich soll er ein Array lesen (funktioniert), dieses an den Kernel weitergeben und +1 rechnen.
Leider macht er gar nichts im Kernel
Hier mal die Ausgabe ...
Irgendwas klappt mit der Übergabe nicht, wenn ich das recht sehe.
Freue mich über eure Hilfe
da ich mich nun etwas mit CUDA Programmierung beschäftigt habe, wollte ich gern mal einen kleinen Test machen.
Hier mein CODE
Code:
#define SIZE 216000
__global__ void calc(double *dev_data, double *dev_result) {
dev_result = dev_data + 1;
}
/**
* Host function that prepares data array and passes it to the CUDA kernel.
*/
int main(void) {
//Datei
FILE *datei;
datei = fopen(
"daten.dat",
"r");
double data[SIZE], result;
double *dev_data, *dev_result;
//Device
cudaMalloc(&dev_data, SIZE * sizeof(double));
cudaMalloc(&dev_result, sizeof(double));
//Host
fread(data, sizeof(data), 1, datei);
printf("Test-Ausgabe: %f ", data[0]);
cudaMemcpy(&dev_data, data, SIZE * sizeof(double), cudaMemcpyHostToDevice);
calc<<<1, 1>>>(dev_data, dev_result);
cudaMemcpy(&result, dev_result, sizeof(double), cudaMemcpyDeviceToHost);
printf("Ergebnis %f: ", result);
cudaFree(dev_data);
cudaFree(dev_result);
return 0;
}
Wirklich nur ein kleines Beispiel, aber so richtig klappen will es nicht.
Eigentlich soll er ein Array lesen (funktioniert), dieses an den Kernel weitergeben und +1 rechnen.
Leider macht er gar nichts im Kernel
Code:
Test-Ausgabe: -4.162908 Ergebnis 0.000000:
Irgendwas klappt mit der Übergabe nicht, wenn ich das recht sehe.
Freue mich über eure Hilfe