环境搭建
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.exe、helloworld.exp、helloworld.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 完成所有任务(包括核函数执行和内存操作)。

1428

被折叠的 条评论
为什么被折叠?



