CUDA C

Posted hatimwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA C相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

CUDA - CUDA 驱动程序不足以支持 CUDA 运行时版本 6.0

CUDA 核函数调试:cuda-gdb,cuda printf, cuda assert 读书笔记

cuda11.7显卡要求

在哪设置 cuda

cuda支持的显卡

[CUDA]CUDA编程实战一——了解CUDA及获取GPU信息