码迷,mamicode.com
首页 > 其他好文 > 详细

CUDA C

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

标签:ice   并行   oid   fun   并行计算   gpu   device   模式   变量   

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

标签:ice   并行   oid   fun   并行计算   gpu   device   模式   变量   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!