У меня проблемы с попыткой присвоить значение переменной устройства и затем скопировать ее в переменную хоста.
Я начинаю с d_test и h_test = 0.0.У меня есть простое ядро, чтобы установить переменную устройства, d_test, в 1.0.Затем я копирую это в переменную хоста h_test и печатаю.Проблема в том, что при печати я получаю h_test = 0.0.Что я делаю неправильно?Вот код:
// -*- mode: C -*-
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
// device variable and kernel
__device__ float d_test;
__global__ void kernel1(float d_test) { d_test = 1.0; }
int main() {
// initialise variables
float h_test = 0.0;
cudaMemset(&d_test,0,sizeof(float));
// invoke kernel
kernel1 <<<1,1>>> (d_test);
// Copy device variable to host and print
cudaMemcpy(&h_test,&d_test,sizeof(float),cudaMemcpyDeviceToHost);
printf("%f\n",h_test);
}