当前位置: 首页 > news >正文

一文详解VS2022配置LibTorch环境:Windows平台LibTorch CUDA与cuDNN开发环境配置

随着深度学习技术的迅猛发展,越来越多的应用程序开始集成深度学习模型以提供智能化服务。为了满足这一需求,开发者们不仅依赖于Python等高级编程语言提供的便捷框架,也开始探索如何将这些模型与C++应用程序相结合,以便在性能关键型应用中充分利用底层硬件资源。LibTorch作为PyTorch的C++前端,正好满足了这种需求,它允许开发者直接在C++环境中构建训练部署深度学习模型

然而,在Windows平台上配置LibTorch环境,并确保其能够有效利用NVIDIA GPU的强大计算能力并非易事。这涉及到正确安装并配置LibTorchCUDA(Compute Unified Device Architecture)以及cuDNN(CUDA Deep Neural Network library),每一个步骤都需要精确操作才能保证整个系统的稳定性和高效性。

本文希望在Windows平台搭建基于LibTorch的深度学习开发环境。我们将逐步讲解如何下载和配置LibTorch安装适合您硬件条件的CUDA版本,以及设置cuDNN来加速神经网络运算。此外,我们还将介绍如何通过配置cmakeList.txt文件来创建一个简单的工程示例,验证本地安装环境是否成功。无论你是初次接触这些工具的新手,还是想要优化现有工作流程的经验丰富的开发者,这份文档都将为你提供有价值的指导信息。

一、CUDA安装

CUDA(Compute Unified Device Architecture)是NVIDIA开发的并行计算平台和编程模型,用于利用NVIDIA GPU的并行计算能力。允许开发者在标准C/C++或Fortran代码中嵌入特定于GPU的内核函数,利用GPU的大规模并行计算能力加速各种类型的应用程序,包括科学计算深度学习图形渲染等,并提供了一套丰富的API和工具,包括核心的CUDA Runtime APICUDA Driver API以及各种辅助工具和库。

1.1 查看CUDA版本

安装CUDA前,先要确认本地电脑支持的CUDA版本。

打开终端(win+R输入cmd),输入 nvidia-smi 命令,查看显卡支持的CUDA版本

  • 驱动版本决定了CUDA版本,驱动版本越高,则可安装的CUDA版本越高;
  • CUDA向下兼容,我这里是输出的CUDA版本为12.3,并不是意味着我的电脑只能安装12.3版本的CUDA,而是可以安装12.3及以下任何版本的CUDA

nvidia-smi查看显卡支持的CUDA版本

1.2 下载CUDA

进入developer.nvidiahttps://developer.nvidia.com/cuda-toolkit-archive选择要安装的CUDA版本。
这里我选择了12.1.1,低于本地显卡支持的12.3

下载CUDA

根据操作系统版本,选择对应版本CUDA进行下载:

根据操作系统以及系统的CUP架构,选择对应版本CUDA进行下载

1.3 安装CUDA

双击exe文件,支持进行安装。

安装CUDA

选择自定义安装。

选择自定义安装

选择自定义安装

选择自定义安装

1.4 环境变量配置

添加以下环境变量配置:

CUDA环境变量

1.5 验证CUDA是否安装完成

在新打开的cmd窗口中输入:

nvcc -V

image.png

二、cuDNN安装

cuDNN(CUDA Deep Neural Network library)NVIDIA专门针对深度学习应用开发的GPU加速库。其提供了一系列高效的深度学习算法的实现,包括卷积神经网络(CNN)循环神经网络(RNN)等常用网络结构的基本操作,如卷积池化归一化激活函数等。cuDNN针对NVIDIA GPU进行了高度优化,利用GPU的并行计算能力加速深度学习模型的训练和推理过程。通过使用cuDNN,开发者可以轻松地将深度学习模型部署到支持CUDA的NVIDIA GPU上,并获得显著的性能提升。

总的来说,CUDA提供了通用的并行计算平台和编程模型,而cuDNN则是针对深度学习应用进行了优化的GPU加速库,二者结合起来可以实现高效的深度学习模型训练和推理。

2.1 下载cuDNN

NVIDIA Developer https://developer.nvidia.com/rdp/cudnn-archive下载cuDNN,需要需要提前注册账号才可以登录。

选择cuDNN版本:
注意:这里要和前文安装的CUDA版本保持一致我的CUDA是12.1.1,所以这里应该选择选择12.x

下载cuDNN

Local Installer for Windows

2.2 解压cuDNN

解压cuDNN

2.3 安装cuDNN

  1. 复制以下三个文件夹:
    复制以下三个文件夹

  2. 将文件夹合并至CUDA安装路径:

将文件夹合并至CUDA安装路径

  1. 验证cuDNN是否安装成功

在下述文件夹右键,打开终端

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite

终端输入如下命令:

.\deviceQuery.exe

验证cuDNN是否安装成功

得到PASS即代表安装成功。

终端输入如下命令:

 .\bandwidthTest.exe

image.png

得到PASS即代表安装成功。

三、LibTorch安装

LibTorch是PyTorch的C++ API,为开发者提供了一种在C++环境中使用PyTorch功能的方法。使得那些需要将深度学习模型集成到C++应用程序中的开发者可以利用PyTorch强大的自动微分系统和动态计算图来进行模型训练、评估等操作。

3.1 LibTorch下载

首先,进入torch官网查看,并选择合适的libTorch
注意:这里同样要和前文安装的CUDA版本保持一致我的CUDA是12.1.1,所以这里选择12.1

Torch官网:https://pytorch.org/get-started/locally/
LibTorch
这里下载,我只选择了release版本。

为什么分两个版本网上的说法不一:

  • 有的说:调试运行时,debug模式要使用debug版本,release模式要使用release版本;
  • 有的说:用哪个版本都行,只是debug版本会打印较多的调试信息,从而影响运行速度。

CUDA 12.1 release版本下载地址:
https://download.pytorch.org/libtorch/cu121/libtorch-win-shared-with-deps-2.5.1%2Bcu121.zip
CUDA 12.1 debug版本下载地址:
https://download.pytorch.org/libtorch/cu121/libtorch-win-shared-with-deps-debug-2.5.1%2Bcu121.zip

3.2 LibTorch环境变量

环境变量:下载完解压到本地,将以下配置添加到环境变量

LibTorch环境变量

3.3 VS2022配置

在正式测试运行前,我们先基于VS2022,创建一个C++项目。

VS2022创建C++项目

选择Release X64模式:

选择Release X64模式

右键项目——>属性:

属性

点击调试,点击环境,添加路径至环境:PATH=D:\Program\libtorch-win-shared-with-deps-2.5.1+cu121\lib;%PATH%

点击调试,点击环境,添加路径至环境

点击VC++目录, 点击包含目录, 将libtorch和cuda的路径进行添加。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include
D:\Program\libtorch-win-shared-with-deps-2.5.1+cu121\include
D:\Program\libtorch-win-shared-with-deps-2.5.1+cu121\include\torch\csrc\api\include

点击包含目录, 将libtorch和cuda的路径进行添加

点击VC++目录, 点击库目录,将libtorch和cuda路径进行添加。

D:\Program\libtorch-win-shared-with-deps-2.5.1+cu121\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib\x64

点击库目录,将libtorch和cuda路径进行添加

点击c/c++,点击常规,点击附加包含目录,添加$(IncludePath)

点击常规,点击附加包含目录

点击语言,点击c++语言标准,改为c++17, 根据自己报错进行更改,我的是c++17,默认为c++14.将符合模式改为否

点击语言,点击c++语言标准,改为c++17

点击链接器,点击输入,点击附加依赖项,将你安装的libtorch路径D:\Program\libtorch-win-shared-with-deps-2.5.1+cu121\lib\*.lib下的所有.lib文件进行添加。

点击输入,点击附加依赖项,添加libtorch库

到这里你的libtorch的cpu版本就已经配置完成了。
如果需要配置gpu版本就跟以下这个链接器的命令行有关系,在命令行的其他选型中输入/INCLUDE:?warp_size@cuda@at@@YAHXZ /INCLUDE:"?ignore_this_library_placeholder@@YAHXZ"

命令行

输入以下代码进行测试:

#include <iostream>
#include <vector>
#include<torch/torch.h>
#include<torch/script.h>

using namespace std;

int main() {
	auto a = torch::rand({ 5, 3 });

	std::cout << "cuda::is_available():" << torch::cuda::is_available() << std::endl;
	std::cout << "torch::cuda::cudnn_is_available():" << torch::cuda::cudnn_is_available() << std::endl;
	std::cout << "torch::cuda::device_count():" << torch::cuda::device_count() << std::endl;

	if (torch::cuda::is_available()) {
		cout << "cuda可用" << endl;
	}
	else
	{
		cout << "不可用" << endl;
	}
	cout << a << endl;
}

调试运行

显示以下界面说明你的环境以配置成功:

调试运行

参考

Visual Studio配置libtorch:
https://blog.csdn.net/m0_67021058/article/details/136756869

VS2022+libtorch+Cuda11.3:
https://blog.csdn.net/ssunshining/article/details/124678278

相关文章:

  • marked库(高效将 Markdown 转换为 HTML 的利器)
  • 算法训练营第二十九天 | 动态规划(二)
  • TS 中 keyof 和 in 关键字详解
  • 使用Vscode的Remote-SSH通过ssh密钥免输入密码连接远程服务器
  • Java NIO之FileChannel 详解
  • unity客户端面试高频2(自用未完持续更新)
  • Androidstudio开发,实现商品分类
  • mysql 八股
  • android开启Sys V IPC,并使用共享内存编程
  • 流影---开源网络流量分析平台(二)(功能部署--流量探针)
  • C++ 中遍历 std::map
  • 网络基础概念
  • vue在template块里使用v-for循环对象、数组及嵌套结构数据
  • Redis-01.Redis课程内容介绍
  • YO-CSA-T:基于上下文与空间注意力的实时羽毛球轨迹追踪系统解析
  • 为什么package.json里的npm和npm -v版本不一致?
  • Flutter项目之构建打包分析
  • OpenCV 图形API(4)内核 API
  • 某合约任意提取BNB漏洞
  • centos7修复漏洞CVE-2023-38408
  • 动漫做视频在线观看网站/天津百度推广公司
  • 网站内容的编辑和更新怎么做/比百度好用的搜索软件手机版
  • 国家建设部网站2018年/seo前景
  • wordpress怎么翻译英文插件/成都seo招聘
  • 旅行社网站建设方案/在线培训系统平台
  • 怎么创建个网站/it培训机构哪家好