Windows下cuda的安装和配置

今天开始做一个cuda教程。由于本人主要在windows下使用visual studio进行开发,因此这里讲一下windows下的cuda开发环境。

下载cuda_toolkit

从网站https://developer.nvidia.com/cuda-toolkit中下载,先选择Download Now,然后跳转到如下页面:

选择合适的平台和安装方式。我选择的是下载离线的安装包(exe文件),另外我安装的是12.9版本。

下载完成后,双击exe开始进行安装,按照它给出的默认设置就行,但是要记住安装路径(默认似乎是安装在C:\Program Files中)。

安装完成后重启电脑(使安装过程中自动添加的环境变量生效)。

配置开发环境

由于CMake是一种非常流行的项目构建方式,且非常好用,因此本文及此专栏中的所有文章都用CMake进行构建。

新建一个文件夹,里面新建四个文件:

  • main.cpp
  • kernal.cu
  • kernal.h
  • CMakeLists.txt
    然后再建立一个build文件夹,如图所示:

    图中.clang-format是用来控制代码格式的,.editorconfig是用来设置编码方式的。这两个文件现在都可以忽略。
    main.cpp中代码如下:
cpp 复制代码
#include "kernal.h"
int main() { test(); }

kernal.cu中代码如下:

cpp 复制代码
#include <cuda_runtime.h>
#include <stdio.h>
#include <device_launch_parameters.h>               
#include "kernal.h"
__global__ void checkIndex(void)
{
    printf("threadIdx:(%d, %d, %d) blockIdx:(%d, %d, %d) blockDim:(%d, %d, %d) "
           "gridDim:(%d, %d, %d)\n",
           threadIdx.x, threadIdx.y, threadIdx.z, blockIdx.x, blockIdx.y, blockIdx.z, blockDim.x, blockDim.y, blockDim.z, gridDim.x, gridDim.y,
           gridDim.z);
}

void test()
{
    int nElem = 6;
    dim3 block(3);
    dim3 grid((nElem + block.x - 1) / block.x);
    printf("grid.x %d grid.y %d grid.z %d\n", grid.x, grid.y, grid.z);
    printf("block.x %d block.y %d block.z %d\n", block.x, block.y, block.z);
    checkIndex<<<grid, block>>>();
    cudaDeviceReset();
    return ;
}

注意,上述代码中的checkIndex<<<grid, block>>>();在Visual Studio对其进行语法检查的时候会提示错误,如图:

这是Visual Studio的bug,不用管,不影响运行。

kernal.h中代码如下:

cpp 复制代码
void test();

CMakeLists.txt中代码如下

CMake 复制代码
##要求最低cmake程序版本
cmake_minimum_required(VERSION 3.20)

#本工程的名字
project(CUDAARTICLEPROJECT CUDA CXX)

# 设置 CUDA 架构
set(CMAKE_CUDA_ARCHITECTURES 89)
# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 设置 CUDA 标准
set(CMAKE_CUDA_STANDARD 14)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)

file(GLOB SRC_CPP ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB SRC_CUDA ${CMAKE_CURRENT_SOURCE_DIR}/*.cu)
file(GLOB SRC_H ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
# 添加可执行文件
add_executable(${PROJECT_NAME} ${SRC_CPP} ${SRC_CUDA} ${SRC_H})

# 添加 CUDA 头文件路径
target_include_directories(${PROJECT_NAME} PRIVATE
    "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.9/include"  
)
target_include_directories(${PROJECT_NAME} PRIVATE   
    "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.9/lib/x64"
)
# 设置 CUDA 分离编译
set_target_properties(${PROJECT_NAME} PROPERTIES 
    CUDA_SEPARABLE_COMPILATION ON
)

这个文件比较重要,它决定了整个环境的配置。

其中,set(CMAKE_CUDA_ARCHITECTURES 89)要根据自己的显卡架构来设置。我的是4060ti,设置为89。不同显卡对应的数字不同,可以在https://developer.nvidia.com/cuda-gpus中进行查询,4060ti对应的是8.9,所以这里设置为89.

cpp 复制代码
target_include_directories(${PROJECT_NAME} PRIVATE
    "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.9/include"  
)
target_include_directories(${PROJECT_NAME} PRIVATE   
    "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.9/lib/x64"
)

这段代码要根据自己的实际安装路径来设置。

随后进入build文件夹,在终端中打开这个文件夹,运行cmake ..命令。如下图所示:

出现红框中的提示表示构建成功。然后在build文件夹中打开sln文件(默认已安装Visual Studio)。在解决方案资源管理器中右键ALL_BUILD, 生成。随后右键项目名CUDAARTICLEPROJECT,生成。都成功后点击本地Windows调试器运行代码,如果终端打印出如下结果:

表明cuda安装和环境配置都没问题,可以愉快地开始cuda开发之旅了!!!

相关推荐
航Hang*1 小时前
Windows Server 配置与管理——第12章:配置数字证书服务器
运维·服务器·windows
百事牛科技4 小时前
保护文档安全:PDF限制功能实操方法
windows·pdf
夏冰加密软件4 小时前
【实测】文件加密软件解除保护的2种方法(以超级加密3000为例)
windows·安全
猫头虎4 小时前
Windows毫秒级文件名搜索工具Everything最新版下载、安装、配置、新功能解析指南
windows·everything
成都易yisdong7 小时前
实现三北方向转换计算器(集成 WMM2025 地磁模型)
开发语言·windows·算法·c#·visual studio
idolao7 小时前
Design Expert 13安装教程 Windows版:解压+自定义路径+Crack替换指南
windows
沈跃泉7 小时前
C++串口类实现
c++·windows·串口通信·串口类
dashizhi20159 小时前
电脑禁用U口、禁用USB端口、屏蔽移动存储设备使用的方法
windows·安全·电脑
航Hang*9 小时前
Windows Server 配置与管理——第10章:配置FTP服务器
运维·服务器·网络·windows·学习·vmware
灵犀海棠9 小时前
电脑运行程序配置
windows