torch1.10.0 + cuda11.1 + vs2017 混编

本文详细介绍了如何配置PyTorch与CUDA的混编环境,包括安装CUDA、PyTorch、VS2017,以及解决常见错误。通过设置环境变量和混合编译,可以实现自定义算法的GPU加速。注意CUDA版本与PyTorch版本的匹配,以及Visual Studio环境变量的正确配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

尽管目前的PyTorch可以直接使用GPU进行加速,但是一些特殊的自定义算法可能依然无法直接使用GPU加速,或者PyTorch对该操作的实现还不够高效。使用C++扩展和CUDA扩展可改善上述状况,在Pytorch中可调用扩展的算子测试其正确性和性能,本文仅介绍如何配置混编的环境。


提示:以下是本篇文章正文内容,下面案例可供参考

 一、安装CUDA

查看自己电脑显卡信息,命令行输入nvidia-smi

我的显卡比较旧,最高只能支持CUDA Version:11.1

 下载CUDA工具包, CUDA Toolkit Archive | NVIDIA Developer

由于CUDA10.2支持的Pytorch版本较多,我选择了下载这个版本

安装NVIDIA CUDA,由于我们不是简单的使用CUDA,而是需要混编,所以保险起见选择自定义的模式。

 

配置CUDA环境变量

win10系统中右键:“我的电脑”->“属性”,选择"高级"中的"环境变量",开始设置环境变量。

手动添加以下的环境变量:

CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
CUDA_BIN_PATH=%CUDA_PAT%\bin
CUDA_LIB_PATH=%CUDA_PATH%\lib\x64

CUDA_SKD_PATH=C:\ProgramData\NVIDIA Corporation\CUDA Sample\v10.2
CUDA_SDK_BIN_PATH=%CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH=%CUDA_SDK_PATH%\common\lib\x64

二、安装Pytorch

Previous PyTorch Versions | PyTorch  可以找到各个版本的Pytorch的GPU版本

分为conda的安装方法和pip安装方法,pip速度非常慢,推荐conda安装。但是conda的某些较新版本显示支持CUDA,实际上是不支持的,下载时会自动链接到CPU版本,要注意仔细鉴别。

 安装完毕后进入conda虚拟环境验证

如果是支持CUDA版本的Pytroch的版本号会显示cu102类似的字样

三、安装VS2017

Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本
我选择的2017版,下载VisualStudioSetup.exe
下载完毕后选择Enterprise版本,勾选:使用C++ 的桌面开发,开始安装

在使用Visual Studio前,需要设置多个环境变量,而且所需的环境变量特定于安装和选择的生成体系结构,可能因产品更新或升级而更改。 考虑到环境变量的复杂性和可变性,建议不要自行在 Windows环境中设置这些变量,而是使用命令文件(.bat)或者已安装的命令提示符快捷方式来完成配置。

方法1:.如果想要在现有命令提示窗口中设置生成环境,则可以使用安装程序创建的命令文件之一。在 Visual Studio 2017 和 Visual Studio 2019 中,可以在 VC\Auxiliary\Build 子目录中找到它们。

第一次打开命令提示窗口时,编译前输入下列命令配置环境变量:

call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"

方法2:MSVC 命令行工具使用 PATHTMPINCLUDELIB 和 LIBPATH 环境变量,还使用特定于已安装工具、平台和 SDK 的其他环境变量。

我采用的方法1,方法2未尝试过

更详细的说明参看通过命令行使用 Microsoft C++ 工具集 | Microsoft Learn

四、混合编译

下载代码CudaExtension.7z,可以在资源区下载,可以在评论区留下邮箱。

激活对应的conda 环境

步骤1:cd D:\pytorch\pytorch-master\8-1\CudaExtension 

步骤2:call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" 

步骤3:python setup.py install

完成后可利用代码里的test.py进行测试

五、常见报错

cuda与torch版本不匹配

The detected CUDA version (10.1) mismatches the version that was used to compile
PyTorch (11.1). Please make sure to use the same CUDA versions.

C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.1/include\__config(491): fatal error C1189: #error:  "We don't know a correct way to implement alignof(T) in C++03 outside of Clang"
error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.1\\bin\\nvcc.exe' failed with exit status 2

No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1' 


VS2017环境变量配置失败


C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\cstddef(7): fatal error C1083: 无法打开包括文件: “stddef.h”: No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\VC\\Tools\\MSVC\\14.16.27023\\bin\\Hostx64\\x64\\cl.exe' failed with exit status 2


总结 

        此方法可以避开繁琐的VS2017界面也可以完成.cu文件和.cpp文件的混编

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值