首页 > 其他 > 详细

CUDA C

时间:2020-06-11 21:14:13      阅读:42      评论:0      收藏:0      [点我收藏+]

CUDA中不能在主机代码中对cudaMalloc()返回的指针进行解引用。

  1. 可以将cudaMalloc()分配的指针传递给在设备上执行的函数。
  2. 可以在设备代码中使用cudaMalloc()分配的指针进行内存读/写操作。
  3. 可以将cudaMalloc()分配的指针传递给在主机上执行的函数。
  4. 不能在主机代码中使用cudaMalloc()分配的指针进行内存读/写操作。

CUDA运行模式:

  1. CPU传给GPU数据
  2. GPU计算
  3. GPU传给CPU结果

详细一点:

  1. 给GPU设备分配内存

    cudaMalloc((void**)&dev_input, sizeof(int)));

    cudaMalloc((void**)&dev_result, sizeof(int)));

  2. 在CPU上为输入变量赋初值 input

  3. CPU将输入变量传递给GPU cudaMemcpy(dev_input, input, sizeof(int), cudaMemcpyHostToDevice);

  4. GPU对输入变量进行并行计算

    GPU_function<<<1,1>>>(dev_input, dev_result);

  5. GPU将计算结果传回给CPU cudaMemcpy(result, dev_result, sizeof(int), cudaMemcpyDeviceToHost);

CUDA C

原文:https://www.cnblogs.com/hatimwen/p/cudac.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!