1.准备好nvcc

装好CUDA后,我们在cmd里面运行

nvcc --version

如果找不到nvcc命令的话,需要自己在环境变量中path添加nvcc.exe的路径

2.接下来需要编写我们的cuda程序

//filename: helloworld.cu
// This is the REAL "hello world" for CUDA!
// It takes the string "Hello ", prints it, then passes it to CUDA with an array
// of offsets. Then the offsets are added in parallel to produce the string "World!"
// By Seamanj 04/11/2015 @NCCA#include <stdio.h>const int N = 7;
const int blocksize = 7;__global__
void hello(char *a, int *b)
{printf("block %d thread %d is running!\n", blockIdx.x, threadIdx.x);a[threadIdx.x] += b[threadIdx.x];
}int main()
{char a[N] = "Hello ";int b[N] = {15, 10, 6, 0, -11, 1, 0};char *ad;int *bd;const int csize = N*sizeof(char);const int isize = N*sizeof(int);printf("%s\n", a);cudaMalloc( (void**)&ad, csize );cudaMalloc( (void**)&bd, isize );cudaMemcpy( ad, a, csize, cudaMemcpyHostToDevice );cudaMemcpy( bd, b, isize, cudaMemcpyHostToDevice );dim3 dimBlock( blocksize, 1 );dim3 dimGrid( 1, 1 );hello<<<dimGrid, dimBlock>>>(ad, bd);cudaMemcpy( a, ad, csize, cudaMemcpyDeviceToHost );cudaFree( ad );printf("%s\n", a);return EXIT_SUCCESS;
}

3.编译helloworld.cu程序

在cmd中转到我们需要编译的文件夹中

输入 nvcc helloworld.cu

结果如下:

哇,坑爹的warning怎么去掉呢?

加选项, -Xcompiler /wd4819

变成

nvcc -Xcompiler /wd4819 helloworld.cu

具体的选项可以参见http://blog.csdn.net/seamanj/article/details/49652649这篇文章里面的pro文件

或者查看官方文档http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#axzz3qY6vaFLz

由于没有指定输出名字,所以都命令为a.

执行a.exe看看

Lesson 1 Hello World相关推荐

  1. FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器

    文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...

  2. Lesson 6.1 身份证识别: 提取字段

    Lesson 6.1 身份证识别: 提取字段 小编最近试试识别身份证上面的文字. 第一步还是图像分割,第一步还是提取文本行,然后提取字段. 看上去,第一个感觉就是所有文字都是黑色的.可以简单过滤一下图 ...

  3. Lesson 016 —— python 元组

    Lesson 016 -- python 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔 ...

  4. Lesson 021 —— python 循环语句

    Lesson 021 -- python 循环语句 Python中的循环语句有 for 和 while. 循环可以使用 break 语句跳出当前循环. Python循环语句的控制结构图如下所示: wh ...

  5. Lesson 008 —— python 初识

    Lesson 008 -- python 初识 python 文件 python 文件名 Python 文件名的后缀可以是任意的,但是,之后导入我们的模块的时候,如果文件后缀名不是 .py ,那么会报 ...

  6. Lesson 15.2 学习率调度在PyTorch中的实现方法

    Lesson 15.2 学习率调度在PyTorch中的实现方法   学习率调度作为模型优化的重要方法,也集成在了PyTorch的optim模块中.我们可以通过下述代码将学习率调度模块进行导入. fro ...

  7. Lesson 15.1 学习率调度基本概念与手动实现方法

    Lesson 15.1 学习率调度基本概念与手动实现方法   从本节开始,我们将介绍深度学习中学习率优化方法.学习率作为模型优化的重要超参数,在此前的学习中,我们已经看到了学习率的调整对模型训练在诸多 ...

  8. Lesson 14.3 Batch Normalization综合调参实战

    Lesson 14.3 Batch Normalization综合调参实战   根据Lesson 14.2最后一部分实验结果不难看出,带BN层的模型并不一定比不带BN层模型效果好,要充分发挥BN层的效 ...

  9. Lesson 14.1 数据归一化与Batch Normalization理论基础

    Lesson 14.1 数据归一化与Batch Normalization理论基础   数据归一化是机器学习领域的一种对数据处理的常规方式.在传统机器学习领域,由于各特征的量纲不一致,可能出现建模过程 ...

  10. Lesson 13.5 Xavier方法与kaiming方法(HE初始化)

    Lesson 13.5 Xavier方法与kaiming方法(HE初始化)   在进行了一系列的理论推导和代码准备工作之后,接下来,我们介绍参数初始化优化方法,也就是针对tanh和Sigmoid激活函 ...

最新文章

  1. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译
  2. 独家 | 成功开发者必备的5项软技能
  3. 论设计,需求和编码三者的关系
  4. nodejs-函数路由
  5. 一个整数数组,每个数字都出现K次,只有一个数字出现M次,找出这个数字(线性时间)
  6. 【2019牛客暑期多校训练营(第六场)- D】Move(随机化二分)
  7. 光栅图形学算法基础其三 (消隐算法)
  8. kafka删除topic及其相关数据
  9. “咕”了 73 天,何同学终于回归:最喜欢 3D 打印机,但不要买
  10. SeaJS项目完整实例【转】
  11. winrar 命令行参数使用
  12. 左耳朵耗子-陈皓经历(转载)
  13. 360修复高危漏洞可以修复吗_360提示的高危漏洞要不要修复怎样关闭 - 卡饭网
  14. 离散小波变换wavedec matlab,MATLAB小波变换指令及其功能介绍(超级有用)
  15. Reflection(反射)
  16. 教小师妹学多线程,看完我写的例子,脸红成那样!
  17. iOS 用内置浏览器Safari 打开网页
  18. phpredis中文手册(使用方法)——《redis中文手册》 php版
  19. 计算机控制台程序,什么是电脑控制台,是DOS设定吗?
  20. 插入, 桥 - 面面相连

热门文章

  1. 三菱PLC编程线缆制作
  2. PAT A1096 质因子分解
  3. git问题ERROR: Repository not found.的解决办法
  4. 九、模型文档编辑器(生成项目文档)
  5. 重置User Profile
  6. PL/SQL DEVELOPER中查询结果复制出来中文乱码的解决方案
  7. poj 1696 Space Ant
  8. k折交叉验证优缺点_R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)...
  9. vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...
  10. 测试工程师,应当知晓的12项基本原则