KillerPinockel
Lieutenant
- Registriert
- Jan. 2009
- Beiträge
- 623
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 Hier mal die Ausgabe ...
Code:
Test-Ausgabe: -4.162908 Ergebnis 0.000000:
Irgendwas klappt mit der Übergabe nicht, wenn ich das recht sehe.
Freue mich über eure Hilfe