当前位置:   article > 正文

Cuda配置-02 VS环境配置

Cuda配置-02 VS环境配置

说明

      要进行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项目了,其他任何环境变量和项目参数都不需要配置。

在这里插入图片描述
教程后面内容都是旧版环境的手动配置,因为我现在没有了那样的环境,出于严谨考虑,保留之前的配置方法,因为可能有人需要,新版的先安装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
  • 1
  • 2
  • 3

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

  1. Path环境变量里面添加:
%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
  • 1
  • 2
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  1. 运行如下Hello World程序试试水:

//C语言标准库
#include <stdio.h>
//Cuda运行库
#include <cuda_runtime.h>

//核函数,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 << <2, 2 >> > ();
    //同步函数,作用为:强制CPU等待GPU执行完才执行
    cudaDeviceSynchronize();
    return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/510112
推荐阅读
相关标签
  

闽ICP备14008679号