[CUDA学习笔记]从Hello Cuda开始
2013-09-02 11:45
155 查看
1. Cuda 编程环境的搭建:
网上针对不同的操作系统和cuda版本有很多详细的安装说明,推荐使用安装Cuda VS Wizard,下载地址http://sourceforge.net/projects/cudavswizard/。
2. 第一个Cuda程序:
新建项目,选择CUDA—CUDAWinAPP—输入项目名称—确定。
其中一个自动生成的文件叫sample.cu,这是环境自带的demo.
运行程序,Hello Cuda就出来啦!
程序说明:
__global__staticvoidHelloCUDA(char*result,intnum)
{
inti =0;
charp_HelloCUDA[] ="HelloCUDA!";
for(i
= 0;i <num;i++)
{
result[i] =p_HelloCUDA[i];
}
}
其中,__global__为内核函数类型限定符,其他语法跟C相同,HelloCUDA为函数名,result为返回结果。
主程序中函数调用语句为:
HelloCUDA<<<1,1,0>>>(device_result,11);
其中,<<<>>>为内核函数的执行参数,用于说明内核函数中的线程数量,以及线程是如何组织的。<<<1,1,0>>>代表一个kernel的grid中只有1个block,每个block中有1个thread。小括号内的参数为函数的参数。
以下语句将设备(GPU)数据拷贝回主机(CPU)并输出:
cutilSafeCall(cudaMemcpy(host_result,device_result,sizeof(char)
*11,cudaMemcpyDeviceToHost));
printf("%s\n",host_result);
Hello Cuda的程序到此结束,以后新建自己的函数并在主程序中调用就可以开发自己的cuda程序啦~
网上针对不同的操作系统和cuda版本有很多详细的安装说明,推荐使用安装Cuda VS Wizard,下载地址http://sourceforge.net/projects/cudavswizard/。
2. 第一个Cuda程序:
新建项目,选择CUDA—CUDAWinAPP—输入项目名称—确定。
其中一个自动生成的文件叫sample.cu,这是环境自带的demo.
运行程序,Hello Cuda就出来啦!
程序说明:
__global__staticvoidHelloCUDA(char*result,intnum)
{
inti =0;
charp_HelloCUDA[] ="HelloCUDA!";
for(i
= 0;i <num;i++)
{
result[i] =p_HelloCUDA[i];
}
}
其中,__global__为内核函数类型限定符,其他语法跟C相同,HelloCUDA为函数名,result为返回结果。
主程序中函数调用语句为:
HelloCUDA<<<1,1,0>>>(device_result,11);
其中,<<<>>>为内核函数的执行参数,用于说明内核函数中的线程数量,以及线程是如何组织的。<<<1,1,0>>>代表一个kernel的grid中只有1个block,每个block中有1个thread。小括号内的参数为函数的参数。
以下语句将设备(GPU)数据拷贝回主机(CPU)并输出:
cutilSafeCall(cudaMemcpy(host_result,device_result,sizeof(char)
*11,cudaMemcpyDeviceToHost));
printf("%s\n",host_result);
Hello Cuda的程序到此结束,以后新建自己的函数并在主程序中调用就可以开发自己的cuda程序啦~
相关文章推荐
- cocos2dx游戏开发学习笔记2-从helloworld开始
- 【深度学习笔记】(二)Hello, Tensorflow!
- CUDA学习笔记之CUDA存储器模型
- SpringMVC学习笔记(二)使用IntelliJ IDEA开发Spring MVC HelloWorld(基于Maven)
- mina学习笔记二:从官方例子开始
- CUDA学习笔记(二)【转】
- 从今天开始学习ios,入门第一天(Object-C学习笔记)
- 从今天开始,要整理自己的学习笔记
- Head First HTML与CSS、XHTML++笔记(第八章 开始学习CSS)
- Android OpenGL 学习笔记 --开始篇
- worldwind学习笔记-9-从头开始,单例模式
- CUDA学习笔记
- xhtml学习笔记--开始篇
- cuda学习心得--1.一切从hello world开始
- Objective-C学习笔记(三)——用Objective-C编写第一个程序:Hello,World!
- Android(java)学习笔记258:JNI之hello.c(c代码功能实现)指针语法解析
- Lucene 学习笔记(3) :Hello Lucene(Lucene Index的创建和查找)
- cuda学习笔记之异步并行执行
- Spring源码学习笔记之一:从BeanPostProcesser开始
- Hadoop学习笔记(二)——map reduce Helloworld