赞
踩
哦哦哦哦哦哦,成了,成了,大功终于成了!!!
由于一些原因,博主需要搭建一个Torch7环境。
整个配置过程十分艰辛,各种问题层出不穷。好不容易安装成功,结果发现没法使用GPU进行运算,博主逐渐裂开。
不过就在今天,就在2022年5月25日,博主终于练成神功,修得正果。
特写下此博客,来帮助其他被Torch7折磨的道友。终有一日,你们也可以原地飞升的。
提醒:
1.如果你不需要使用GPU进行运算,那么你可以忽视掉第二步中检测gpu的步骤。
2.如果你使用的不是WSL2,那也没有关系,直接跳转至第四步开始即可。
3.如果你使用的是Ubuntu16.04,也没有关系,步骤顺序是相同的,只不过可能某些步骤的实现方法不同,但是每一步你要做的事是完全相同的。
先说一下博主安装成功时的电脑配置:
winver
)1.Ubuntu18.04更换国内源及详细操作
2.Windows10/11 WSL2 安装nvidia-cuda驱动
3.cuda:Missing recommended library: libGLU.so,libX11.so,libXi.so,libXmu.so
4.ubuntu18.04和cuda10.0下安装Torch7(非pytorch)
5.Ubuntu18.04安装gcc——史上最全安装教程
6.Windows 11/10 WSL2 Ubuntu 20.04 下配置Cuda及Pytorch
7.Fails to build against CUDA 10
8.cmake安装时遇到的两个问题
9.Ubuntu安装Lua
10.wsl迁移到非系统盘最简单的方法
百度网盘链接:https://pan.baidu.com/s/1nl4UiTcjKq_cnrjdo4F7fA
提取码:0525
进入NVIDIA 驱动程序下载,选择自己电脑显卡的型号,然后下载安装即可。
安装成功后可以打开cmd窗口输入nvidia-smi
,显示结果大致如下:
这里博主就不班门弄斧了,大家直接可以按照官方给出的方法进行安装即可。
官方网址:安装 WSL
虚拟机安装完毕之后在命令行中输入nvidia-smi
,如果有显示结果并且和上面的结果一致,那就说明你可以继续进行了。
如果是其他结果那你就需要找一下原因了。
博主一开始弄的时候WSL2压根检测不到我的显卡,后来从大佬的文章中得到启发,把win10升级成了win11,然后就搞定了。
WSL2还有一个十分便捷的地方:在资源管理器处输入\\wsl$
,便可以管理虚拟机文件了。(可能权限不是很够,自己调一下就好)
博主电脑的C盘内存不多了,所以从长远角度考虑博主决定把虚拟机迁移到F盘。
# 查看本电脑所安装的所有wsl虚拟机
.\LxRunOffline.exe list
# 将Ubuntu-18.04迁移至指定目录
.\LxRunOffline.exe move -n Ubuntu-18.04 -d F:\wsl_ubuntu_1804
cp /etc/apt/sources.list /etc/apt/sources_backup.list
#1.进入编辑模式 vim /etc/apt/sources.list #2.删除内容 dd(长按) #3.进入插入模式 i #4.粘贴内容(阿里云源) deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse #5.退出插入模式 按下esc键 #6.保存并退出 :wq 或 :x
sudo apt update
sudo apt upgrade
请注意Ubuntu版本,各版本的下载源并不互通,请挑选适合自己Ubuntu版本的下载源。
Ubuntu16.04参考文章:Ubuntu16.04更换国内的源
在命令行内输入下述命令,然后等待。
sudo apt install build-essential
结束之后输入gcc -v
,如果结果如下则安装成功。
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
到官网下载ubuntu18.04的cuda10.0安装包,并按照官网所给出的步骤安装cuda。
sudo vim ~/.bashrc
在结尾处添加内容:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存退出,更新文件:
source ~/.bashrc
#查看cuda版本
nvcc -V
在官网下载cudnn文件。
下载的是cuDNN Library for Linux
。
解压文件后将其中include
文件夹里的文件全部复制到/usr/loacl/cuda-10.0/include
文件夹下,将其中lib64
文件夹里的文件全部复制到/usr/loacl/cuda-10.0/lib64
文件夹下,并且提高文件权限。
cp -P lib64/* /usr/local/cuda-10.0/lib64/
cp -P include/* /usr/local/cuda-10.0/include/
sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
git clone https://github.com/torch/distro.git ~/torch --recursive
如果有克隆比较慢的朋友,也可以直接使用网盘里博主已经下载好的安装包。
sudo apt-get purge cmake
git clone https://github.com/Kitware/CMake.git
apt-get install libssl-dev
cd CMake
./bootstrap
make
sudo make install
在官网下载lua5.2的安装包。(网盘里有已经下载好的)
tar zxf lua-5.2.4.tar.gz
cd lua-5.2.4
sudo apt-get install libreadline-dev
make linux test
make install
cd torch
rm -fr cmake/3.6/Modules/FindCUDA*
cd torch/extra/cutorch #创建文件 vim atomic.patch #将下面的内容复制进去 diff --git a/lib/THC/THCAtomics.cuh b/lib/THC/THCAtomics.cuh index 400875c..ccb7a1c 100644 --- a/lib/THC/THCAtomics.cuh +++ b/lib/THC/THCAtomics.cuh @@ -94,6 +94,7 @@ static inline __device__ void atomicAdd(long *address, long val) { } #ifdef CUDA_HALF_TENSOR +#if !(__CUDA_ARCH__ >= 700 || !defined(__CUDA_ARCH__) ) static inline __device__ void atomicAdd(half *address, half val) { unsigned int * address_as_ui = (unsigned int *) ((char *)address - ((size_t)address & 2)); @@ -117,6 +118,7 @@ static inline __device__ void atomicAdd(half *address, half val) { } while (assumed != old); } #endif +#endif #保存退出 :wq 或 :x #在命令行输入下面内容 patch -p1 < atomic.patch
修改torch/install-deps的部分内容:
1.这一步可以不修改,博主修改的原因是网络问题,导致博主在用git克隆时会出现一些问题,于是博主事先下载了需要克隆的包,把原本的克隆命令替换为等价的移动文件命令。
将第21行的代码注释掉,在其上面添加mv /home/rainsdrop/study/OpenBLAS "$tempdir"/OpenBLAS
2.(这一步必须要改)将第178行和第261行的sudo apt-get install -y python-software-properties
改成sudo apt-get install -y software-properties-common
保存退出。
bash install-deps
./clean.sh
export TORCH_NVCC_FLAGS="-D__CUDA_NO_HALF_OPERATORS__"
TORCH_LUA_VERSION=LUA52 ./install.sh
在命令行上输入source ~/.bashrc
,然后输入th
:
铛铛铛铛,大功告成。
接下来你就可以尽情的玩耍了。
这个鬼东西博主真的是配置了很久,走了无数条弯路。但是就如那句老话所说:不打不相识
,只有当你被折磨成千上万次之后,你才能够看到更深一层的东西。
博主咕咕咕的这几个月,有一个朋友(真的有,特别感谢你)私信博主催更。
很感谢你的肯定,这说明我的文章给你带来了帮助,这让我获得了极大的充实感,也意识到不挖坑就不需要填坑 自己确实鸽了很久,这个问题确实很严重。但是博主暂时还是没法稳定更新的。
写文章是我的爱好,但我还有生活去经营,还有梦想要去实现。
不过放心,坑还是会填的,文章还是会写的,中二台词还是会继续分享的。
还是那句话:如果这篇文章能帮助到你,那便是我莫大的荣幸。
以下台词取自《银魂》第202集——疣篇:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。