实验环境:ubuntu2204 、ubuntu1804,最新4060笔记本电脑,自我觉得是目前比较好用的搭配:
wsl2+gnome+wsl中的pycharm,写的很全,都是亲测好用的,研究了1周得到的最好搭配。
教程
官方文档
https://learn.microsoft.com/zh-cn/windows/wsl/
-
准备环境和驱动
http://events.jianshu.io/p/6f3195bad5f1
这个教程现在看不了图片,但不太影响,
看他的前9步,也可以执行后面的存储位置迁移,到处的tar文件可以理解为安装包,有了这个包就可以实现多台电脑上使用同一个系统了。
注意
所有的mnt挂载目录的所有者都是默认用户,如果我们不是以默认用户登录,那么挂载文件(也可以说是windows的文件),就没有权限修改,这个可以通过修改conf修改默认用户,下次挂载文件所有者就会更换。
-
配置图形化界面等进阶操作
https://blog.csdn.net/RenLJ1895/article/details/122741040
可以双方相互访问文件资源,等等
其中图形化界面涉及到了display变量的使用
https://blog.csdn.net/rockpk008/article/details/38325179
-
使用GUI APP,vscode,git等等
参考微软的官方手册
https://learn.microsoft.com/en-us/windows/wsl/setup/environment
-
(可选)安装gnome的图形化程序(亲测可用)
这个回答
在
这里可以更方便地使用systemd,见ubuntu的文档
/sbin/init的文件路径就是systemd文件夹的软连接,如果ps查看为/sbin/init说明更换成功,或者直接输入命令systemctl,如果成功返回则成功。
修改字体
禁止锁屏
注意点
-
我最开始创建wsl.conf文件时是在我windows系统中,就是txt文件改一下后缀,但是这种行不通,是CRLF的换行符就会导致配置无法生效,要改一下行分隔符,改为LF,就是linux用的。
-
vscode有可能会报
这样的错误,这里就涉及到一些权限的知识了。
比如我们想修改/etc下的wsl.conf,在/etc输入
ls -l
可以查看文件的详细信息,包括权限
可以看到wsl.conf是root所有的,他又rw就是读和写权限,并且其他人只能读,不能写,那么我们可以,这里的7也就是二进制的111,对应rwx就是r=1,w=1,x=1也就是有全部的权限。
sudo chmod 777 wsl.conf
-
安装gcc,更新apt包
gcc直接安装build-essional包
sudo apt update
sudo apt install build-essential
-
可能出现的问题
WSL2出现“参考的对象类型不支持尝试的操作”的解决方法
https://cloud.tencent.com/developer/article/1986728
-
安装Mambaforge
用Mambaforge集成了mamba和conda,mamba是conda的c语言实现版。
下载地址
https://github.com/conda-forge/miniforge#mambaforge
使用教程
https://mamba.readthedocs.io/en/latest/installation.html
-
安装cudatoolkit(只使用pytorch的话可以不安装)
安装完成后要添加环境变量,在~/.bashrc中,比如我的是cuda12.1版本
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
-
安装pytorch和cuda
比如我想安装pytorch1.10可以使用命令如下,可以在官网上找到
https://pytorch.org/get-started/previous-versions/
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
但官网给出的命令并不能成功,即使是配置好了第七步的cudatoolkit。
解决方法一:
添加pytorch-cuda=11.8到安装语句中即可解决问题
测试在pytorch1.10上有效,1.09无效,尽量选择高版本pytorch
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 pytorch-cuda=11.8 -c pytorch -c conda-forge
调用测试的py文件
import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)
输出
1.10.1
True
11.3
可以看到安装成功了
原因猜测
输入命令
conda list |grep cuda
可以看到
可以看到cuda11.8带来了很多东西,可能是40系显卡只能使用最新的running api等才能完成cuda的调用,而cuda11.8好像并没有wsl的cudatoolkit能够下载到,目前原因还不太清楚。
方法二:
使用pip安装,比如
pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html
-
(可选)安装cudNN(和ubuntu一样的安装方式)
需要先安好第8步的cuda toolkit
cuDNN所有包的下载位置
cuDNN Archive | NVIDIA Developer
官方文档安装教程(亲测有效)
Installation Guide :: NVIDIA cuDNN Documentation
两种安装方式
其中的tar文件或者deb文件名要替换成自己的。其他直接照着敲就行
1、Tar 文件安装(不推荐)
在发出以下命令之前,您必须更换XY和 v8.xxx与您的特定 CUDA 和 cuDNN 版本和包日期。
-
导航到您的<cudnn路径>包含 cuDNN tar 文件的目录。
-
解压缩 cuDNN 包
$ tar -xvf cudnn-linux-x86_64-8.x.x.x_cudaX.Y-archive.tar.xz
-
将以下文件复制到 CUDA 工具包目录中
$ sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
$ sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
2、deb安装(推荐)
通过第一种Tar 文件安装的方式可以了解到,安装cudNN实际上就是加入了一些库和头文件到cuda toolkit中。
-
通过mobaxterm的x11连接pycharm
mobaxterm配置
确保mobaxterm的x server已打开(打开为彩色,关闭为灰色)
配置
使用多窗口,硬件加速,所有主机都可访问x11
pycharm下载
ubuntu直接敲命令就行
sudo snap install pycharm-professional --classic
之后在
远程桌面链接的gnome中(只能在这里有效,见第4步的配置)
中打开终端,输入
pycharm-professional
mobaxterm会检测到pycharm的x11请求,并建立链接。
至此就配置完毕了~
11.wsl2配置代理(尝试没有成功)
https://www.cnblogs.com/tuilk/p/16287472.html
-
wsl出现内存不够用,shd不够用的情况
内存不够用
增大swap分区可以缓解这个状况,swap分区就是硬盘的一部分被用来做虚拟内存了,
见官方文档中的配置,
.wslconfig 的配置设置部分
https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config
可以看到默认是真机内存的25%作为默认swap,我们想改按照文档的格式进行修改就好了
shd不够用
dev/shd就是share memory,是
在内存中存储,可以多个进程共享访问的文件的一片区域,
,深度学习并行计算可能会用到一个包叫shared array,就是创建共享内存的。shd默认也只有内存的25%,不过我们可以通过重新挂载的方式进行扩充,详细见
https://blog.csdn.net/Sunny_Future/article/details/100569637
经验证使用普通快速修改可以成功
# 普通快速修改
# mount -o size=16000M -o remount /run/shm
这里我给/run/shm分配16G,可以将这条命令写在bashrc或profile中,因为这条命令可以多次执行,并且已经在shm中的文件不会消失。
最优当然是使用修改/etc/fstab来进行修改,不过我这个没有成功
# 修改 tmpfs size
# echo 'tmpfs /run/shm tmpfs defaults,size=1.2G 0 0' >> /etc/fstab
wsl配置输入法
如果是ubuntu的pycharm输入法
https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/
还有搜狗的教程
https://shurufa.sogou.com/linux
我是两个都试了试,结果成功了,不知道是那种有效了。可以都试一下
按win+shift+t的组合键,可以改输入法,如果输入法调不出来了试试win+shift+t
搜狗输入法看不到打的汉字内容解决:
进入搜狗设置,将显示变为竖排,就可以看到打出的汉字了
但有时输入法会抽风,出不来,这时可以试试对输入法配置进行一下修改,如下图进入修改页面,就随便修改就可能会好,很玄学,我也是瞎改。