相关疑难解决方法(0)

在CUDA中分配设备变量时遇到问题

我在尝试为设备变量赋值,然后将其复制到主变量时遇到问题.

我从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);  

}
Run Code Online (Sandbox Code Playgroud)

cuda

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

cuda ×1