概述
由于用的计算卡比较老,官方下载的pytorch gpu版本不支持显卡,在使用gpu部分时显示
no kernel image is available for execution on the device
就起了自己编译pytorch包的念头,中间遇到几个坑,记录一下
0,安装nvidia 驱动,cudatool,anaconda, vs2017就不说了,网上到处有
1,github下载中断问题
git clone --recursive https://github.com/pytorch/pytorch cd pytorch
github上clone pytorch总是失败,在网上找到如下设置,保证足够缓存
git config --global http.postbuffer 1048576000
git config --global http.lowspeedlimit 0
git config --global http.lowspeedtime 999
git clone --recursive https://github.com/pytorch/pytorch #建议早上6点到8点下载,否则网不好会中断
cd pytorch
#这一步是从v1.3.1上创建自己的分支
git checkout -b mybuild v1.3.1
# 更新分支对应的模块,我一开始忘了这一步,于是各种错误:(
git submodule sync
git submodule update --init --recursive
2,安装anaconda,并安装相应的包
conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing
3,设置编译器等环境变量
一开始我是按照官网说明设置的,使用visual studio编译,需要设置
set USE_NINJA=0 才能编译
但发现如果用visual studio编译时,编译cu文件是单线程,奇慢无比而且会莫名奇妙的锁死不动,几个小时都编译不完,后来发现第二步中conda安装了ninja,尝试用Ninja编译,并行速度简直上了天。
我所用的编译设置如下
#set CMAKE_GENERATOR=Visual Studio 15 2017
#set USE_NINJA=0
set CMAKE_GENERATOR=Ninja #大小写必须一致
set TORCH_PACKAGE_NAME=pytorch #安装时包的名字
set CMAKE_GENERATOR_TOOLSET_VERSION=14.16 #这个vs2017最新版本
set DISTUTILS_USE_SDK=1
for /f "usebackq tokens=*" %i in (`"%ProgramFiles(x86)%Microsoft Visual StudioInstallervswhere.exe" -version [15^,16^) -products * -latest -property installationPath`) do call "%iVCAuxiliaryBuildvcvarsall.bat" x64 -vcvars_ver=%CMAKE_GENERATOR_TOOLSET_VERSION%
set CUDAHOSTCXX=%VCToolsInstallDir%binHostx86x64cl.exe
set PYTORCH_BUILD_VERSION=1.3.1 #版本号
set PYTORCH_BUILD_NUMBER=001
python setup.py install
4,磁盘空间
编译这玩意儿需要31G的磁盘空间,:(
5,编译成功安装完成后
cuda install cudatoolkit=10.1
conda install torchvision -c pytorch --no-deps # --no-deps是为了防止自动下载安装官网pytorch
6,测试
import torch
x=torch.rand(5,3)
device = torch.device("cuda")
y=torch.ones_like(x,device=device)
x=x.to(device)
z=x+y
print(z)
:-) :-) :-) :-)
最后
以上就是粗犷大象为你收集整理的在windows上编译pytorch-1.3.1的那些坑的全部内容,希望文章能够帮你解决在windows上编译pytorch-1.3.1的那些坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复