Cuda配置-02 VS环境配置

05-11 阅读 0评论

说明

      要进行CUDA编程开发就必须安装CUDA驱动,CUDA驱动的硬件条件为英伟达显卡以及对应的驱动软件。一般进行CUDA编程开发的操作系统主要是两种:Windows操作系统和Linux操作系统。Windows操作系统的集成开发环境可以使用Visual Studio(简称VS)或CLion,Linux操作系统的集成开发环境可以使用Visual Studio Code(简称VSCode)或Clion。

      本教程主要是完成Windows操作系统下的Visual Studio集成开发环境配置,在配置之前,请确保你已经完成下列关键步骤:

  1. 存在英伟达显卡并且已经安装了对应驱动,一般有英伟达显卡的操作系统会预装驱动。
  2. 安装了CUDA驱动程序,如果你已经有了英伟达显卡驱动,此步可以参考我上一篇教程。
  3. 安装了Visual Studio,并且利用VS可以正常运行一个C/C++的Hello World程序。

      在配置的过程中,我的具体环境参数为:CUDA11.2, Win10, VS2019。

作者注:本教程原版是2023年2月更新的,使用环境CUDA11+Win10+VS2019,然后参数方面需要配置环境变量,每次新项目得配置项目环境参数,感觉特别麻烦,于是在2024年3月换电脑后,重新更新了教程,现在的环境为CUDA12+Win11+VS2022,先安装VS2022,编辑器必须包含"使用C++的桌面开发",我选择的社区版,主要是免费可以避免很多版权问题。先安装VS2022,再按照我前面的教程安装CUDA12,就可以直接在VS项目模板里面开CUDA项目了,其他任何环境变量和项目参数都不需要配置。

Cuda配置-02 VS环境配置

教程后面内容都是旧版环境的手动配置,因为我现在没有了那样的环境,出于严谨考虑,保留之前的配置方法,因为可能有人需要,新版的先安装VS后安装CUDA后,在VS里面就有项目模板,直接使用就可以把所有参数和环境都搞好了。

步骤

  1. 系统环境变量里面添加:
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2
CUDA_BIN_PATH=%CUDA_PATH%\bin
CUDA_LIB_PATH=%CUDA_PATH%\lib\x64

   注:如果CUDA安装路径不是默认路径,或者版本不是11.2的,请灵活改一下路径参数C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

  1. Path环境变量里面添加:
%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
  1. 在CUDA的文件夹下: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions 将所有文件复制到C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\BuildCustomizations 文件夹下,注意核对自己的路径参数是否正确,你的路径和我的路径有可能存在略微差别。

  2. 上述步骤只需要配置一次就行,下面的步骤需要每次Visual Studio新建CUDA项目都需要配置


  1. VS中新建项目,项目名称为"CudaProject",项目类型为"C++控制台程序",源程序名称为"main.cpp"。

  2. 右键项目"CudaProject",选择:生成依赖项–>生成自定义–>勾选CUDA

  3. 右键程序"main.cpp",选择:属性–>常规–>项类型–>CUDA C/C++

  4. 右键项目"CudaProject",选择:属性->配置属性->VC++目录->包含目录,添加包含目录:$(CUDA_PATH)\include

  5. 在第8步的"VC++目录"里面,选择:VC++目录–>库目录,添加库目录:$(CUDA_PATH)\lib\x64

  6. 在第8步的"配置属性"里面,选择:配置属性–>链接器–>输入–>附加依赖项,把参数改为如下内容。

cublas.lib
cuda.lib
cudadevrt.lib
cudart.lib
cudart_static.lib
OpenCL.lib
  1. 运行如下Hello World程序试试水:
//C语言标准库
#include 
//Cuda运行库
#include 
//核函数,GPU中运行:在GPU中打印Hello World
__global__ void mykernel(void) {
    //GPU打印Hello World
    printf("Hello World From GPU!\n");
}
//主函数,CPU中运行,修饰符__host__可以省略不写
int main(void) {
    //CPU打印Hello World
    printf("Hello World From CPU!\n");
    //调用核函数,启用GPU执行打印任务
    mykernel  > ();
    //同步函数,作用为:强制CPU等待GPU执行完才执行
    cudaDeviceSynchronize();
    return 0;
}

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]