CUDA编程——helloworld

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

环境搭建

1.下载显卡驱动

NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA

需要与自己显卡的型号对应,可以在任务管理器性能中的GPU的右上角查看

2.CUDA Toolkit下载

CUDA Toolkit - Free Tools and Training | NVIDIA Developer

根据自己的操作系统进行选择下载

关于环境变量的配置就不过多说明了,网上有很多教程

3.验证CUDA Toolkit是否配置完成

在cmd中输入

nvcc -V

出现类似以下内容就成功了

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:38:46_Pacific_Standard_Time_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0
4.下载Visuai Studio

Visual Studio 2022 IDE - 用于编码调试和测试的 AI

然后需要查找的Visuai Studio的安装位置,找到cl.exe的目录文件下

一般都是在Visuai Studio的安装文件\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64

例如我的是在D:\VS\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64

将其复制下来,放在环境变量中的系统变量的**Path**下面

5.安装插件Nsight Visual Studio Code Edition

Visual Studio Code中安装插件Nsight Visual Studio Code Edition

编写helloworld程序

cuda的文件是.cu为后缀名

helloworld.cu

#include<stdio.h>
void hello(){
    printf("helloworld cuda!\n");
}
int main(){
    hello();
    return 0;
}

编译

nvcc -o helloworld helloworld.cu
# helloworld 编译完成之后的名字
# helloworld.cu 需要编译的文件

注意:需要在这个文件所在的路径下去执行命令

完成之后会出现helloworld.exehelloworld.exphelloworld.lib

执行可执行文件

./helloworld.exe

然后就会出现helloworld cuda!

但是现在跟GPU还没有什么联系

在GPU上运行
#include<stdio.h>
void hello(){
    printf("helloworld cuda!\n");
}

__global__ void gpu_helloworld(){
    printf("Coding is Runing On GPU!\n");
}

int main(){
    hello();
    gpu_helloworld<<<1,1>>>();
    cudaDeviceSynchronize();
    hello();
    return 0;
}

想要在GPU上运行就得在函数前面加上__global__,函数调用时需要用<<<>>>并且传递两个参数

第一个参数:gird_size网格中有多少个block

第二个参数:block_size网格中有多少个thread

注意:修改代码之后都需要重新编译执行

补充

cudaDeviceSynchronize()的作用是强制 CPU 等待 GPU 完成所有先前发出的 CUDA 任务,具体来说是同步 CPU 和 GPU,默认情况下,CUDA 的核函数调用(如 gpu_helloworld<<<1,1>>>())是异步的:CPU 发出启动 GPU 核函数的指令后,会继续执行后续代码,而不会等待 GPU 完成任务cudaDeviceSynchronize()阻塞 CPU 线程,直到 GPU 完成所有任务(包括核函数执行和内存操作)。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值