📜  cuda hello_world (1)

📅  最后修改于: 2023-12-03 15:00:10.602000             🧑  作者: Mango

CUDA Hello World

简介

本文章主要介绍如何使用 CUDA 来编写第一个 Hello World 程序,以及相关的基础知识。

CUDA 是 NVIDIA 公司推出的一个并行计算平台和编程模型,用于支持 GPU 加速通用计算。通过 CUDA,可以让程序员比传统计算方式更快地运行代码,实现更高效的计算。

环境要求
  • NVIDIA 显卡
  • CUDA Toolkit

如果你还没有安装 CUDA Toolkit,请参考 安装 CUDA Toolkit 进行安装。

编写代码

我们来编写一个简单的 Hello World 程序,首先需要编写一个 C 程序,然后使用 CUDA 对程序进行加速。以下是代码:

#include <stdio.h>

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

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

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

    return 0;
}

代码非常简单,主要包含了两个部分:

  1. helloFromGPU 函数是在 GPU 上执行的函数,会输出一条信息:Hello World from GPU!
  2. main 函数是程序的入口函数,会输出一条信息:Hello World from CPU!。然后调用 helloFromGPU 函数。

注意:前面有两个下划线的 __global__ 是 CUDA 的一个关键字,表示该函数在 GPU 上执行。

编译运行

编译程序,可以使用以下命令:

nvcc -arch=sm_XX hello.cu -o hello

其中,XX 是你的 GPU 架构版本,可以使用以下命令查找:

nvcc --help | grep gpu-arch

运行程序,可以使用以下命令:

./hello

运行结果如下:

Hello World from CPU!
Hello World from GPU!

如上,我们成功地在 CPU 和 GPU 上分别输出了一条 Hello World 的信息。

总结

通过本文,你了解了如何使用 CUDA 来编写第一个 Hello World 程序,并完成了编写、编译和运行程序的过程。通过将部分计算任务放到 GPU 上执行,可以加速整个程序的运行。