CUDA C
Posted hatimwen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA C相关的知识,希望对你有一定的参考价值。
CUDA中不能在主机代码中对cudaMalloc()返回的指针进行解引用。
- 可以将cudaMalloc()分配的指针传递给在设备上执行的函数。
- 可以在设备代码中使用cudaMalloc()分配的指针进行内存读/写操作。
- 可以将cudaMalloc()分配的指针传递给在主机上执行的函数。
- 不能在主机代码中使用cudaMalloc()分配的指针进行内存读/写操作。
CUDA运行模式:
- CPU传给GPU数据
- GPU计算
- GPU传给CPU结果
详细一点:
-
给GPU设备分配内存
cudaMalloc((void**)&dev_input, sizeof(int)));
cudaMalloc((void**)&dev_result, sizeof(int)));
-
在CPU上为输入变量赋初值 input
-
CPU将输入变量传递给GPU cudaMemcpy(dev_input, input, sizeof(int), cudaMemcpyHostToDevice);
-
GPU对输入变量进行并行计算
GPU_function<<<1,1>>>(dev_input, dev_result);
-
GPU将计算结果传回给CPU cudaMemcpy(result, dev_result, sizeof(int), cudaMemcpyDeviceToHost);
以上是关于CUDA C的主要内容,如果未能解决你的问题,请参考以下文章
CUDA - CUDA 驱动程序不足以支持 CUDA 运行时版本 6.0