在windows上编译pytorch-1.3.1的那些坑

由于用的计算卡比较老,官方下载的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 Studio\Installer\vswhere.exe" -version [15^,16^) -products * -latest -property installationPath`) do call "%i\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=%CMAKE_GENERATOR_TOOLSET_VERSION%

set CUDAHOSTCXX=%VCToolsInstallDir%\bin\Hostx86\x64\cl.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)

:-) :-) :-) :-)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值