CUDA编程理解与案例

一。编写一个简单的cuda程序

编写一个cuda c程序,需要以下步骤:

(1)用专用扩展名.cu来创建一个源文件

(2)使用CUDA nvcc编译器来编译程序

(3)从命令行运行可执行文件,这个文件有可在GPU上运行的内核代码


下面来看一个最简单的cuda c程序小栗子:

#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;
}

上面的代码包括了内核函数和主函数:

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

2. helloFromGPU <<<1,10>>>();用来启动内核函数。三重尖括号意味着从主线程到设备端代码的调用。一个内核函数通过一组线程来执行,所有线程执行相同的代码。三重括号里面的参数时执行配置,用来说明使用多少线程来执行内核函数。在这个例子中,有10个GPU线程被调用。

3. 函数cudaDeviceRest()用来显式地释放和清空当前进程中与当前设备有关的所有资源。


二。CUDA编程结构

包括5个步骤:

(1)分配GPU内存

(2)从CPU内存中拷贝数据到GPU内存

(3)调用CUDA内核函数来完成程序指定的运算

(4)将数据从GPU拷回CPU内存

(5)释放GPU内存空间


猜你喜欢

转载自blog.csdn.net/u014322206/article/details/80102948
今日推荐