torch1.10.0+cuda11.1+vs2017混编-创新互联

创新互联专注于岱岳网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供岱岳营销型网站建设,岱岳网站制作、岱岳网页设计、岱岳网站官网定制、微信平台小程序开发服务,打造岱岳网络公司原创品牌,更为您提供岱岳网站排名全网营销落地服务。

目录

前言

一、安装CUDA

二、安装Pytorch

三、安装VS2017

四、混合编译

总结 


前言

尽管目前的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文件的混编

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:torch1.10.0+cuda11.1+vs2017混编-创新互联
标题路径:http://azwzsj.com/article/dsdccj.html