CUDA的helloworld

编写在GPU上运行的第一个内核代码。像其他任何编程语言一样编写GPU上的第一个程序是输出字符串“Hello World”​。

源文件hello.cu

#include <stdio.h>

__global__ void helloFromGPU(void)
{
    printf("Hello World from GPU!\n");
}

int main(void)
{
    printf("Hello World from CPU!\n");

    helloFromGPU <<<1, 10>>>();

    cudaDeviceReset();

    return 0;
}

其中修饰符__global__告诉编译器这个函数将会从CPU中调用,然后在GPU上执行。

helloFromGPU <<<1, 10>>>();

三重尖括号意味着从主线程到设备端代码的调用。

三重尖括号里面的参数是执行配置,用来说明使用多少线程来执行内核函数。在这个例子中,有10个GPU线程被调用。

使用nvcc编译器对源代码hello.cu进行编译,CUDA nvcc编译器和gcc编译器及其他编译器有相似的语义。

# nvcc hello.cu -o hello

运行

# ./hello
Hello World from CPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello World from GPU!
Hello Wor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值