CudaHelloWorld/main.cu

42 lines
831 B
Plaintext

#include <stdio.h>
__global__ void cuda_hello(int* number, int* out) {
*out = *number;
for(int i = 0; i < 255; i++) {
*out += 1;
}
}
int main() {
int *number, *out;
int *d_number, *d_out;
number = (int*)malloc(sizeof(int));
out = (int*)malloc(sizeof(int));
*number = 22;
*out = 0;
cudaMalloc((void**)&d_number, sizeof(int));
cudaMemcpy(d_number, number, sizeof(int), cudaMemcpyHostToDevice);
cudaMalloc((void**)&d_out, sizeof(int));
cudaMemcpy(d_out, out, sizeof(int), cudaMemcpyHostToDevice);
cuda_hello<<<1,1>>>(d_number, d_out);
cudaDeviceSynchronize();
cudaMemcpy(out, d_out, sizeof(int), cudaMemcpyDeviceToHost);
cudaFree(d_number);
cudaFree(d_out);
printf("Number: %i\n", *out);
free(number);
free(out);
return 0;
}