CUDA C的代码写在哪里?

Posted

tags:

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

我已经下载安装了CUDA Toolkil 工具箱和visual studio 2010,想知道cuda c的代码是写在哪里的?比方说:
#include<stdio.h>

__global__ void kernel( void )


int main ( void )
kernel<<<1,1>>>();
printf("Hello,World!\n");
return 0;


这段代码应该写在哪里才可以运行?谢谢

include<stdio.h>,用Turboc运行,如果你有windows下的eclisps最好了,还可以再linux下使用gedit打开,gcc编译运行,或者你使用linux下得ecips编译运行,我运行过了没问题,加了头文件。还有你的一些不好的习惯要改,就算是main()函数也需要返回一个数据,只不过这个数据是由系统来接受了,所以很有必要加一个int,然后mian函数要返回一个return 0,;这些是C高级规范的内容。结构体的定义也建议你定义在外面,影响可读性,还有些内存分配问题比较细化这里就不多做解释了 参考技术A 什么符号像()什么符号获字母等电脑可以打出来的信息像()什么符号获字母等电脑可以打出来的信息像0尽量达到以假乱真的程度(*^__^*)本回答被提问者采纳

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

关于CUDA5之后cutil.h不可用的问题

CUDA代码的高亮设置

在 CUDA NVRTC 代码中包含 C 标准头文件

我可以从c ++调用用cupy代码编写的cuda代码吗?

CUDA C

Professional CUDA C Programming的代码实例1.1