Lesson 1 Hello World

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看看


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值