实验环境: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
参考微软的官方手册
https://learn.microsoft.com/en-us/windows/wsl/setup/environment
这个回答
在
https://askubuntu.com/questions/1252007/opening-ubuntu-20-04-desktop-on-wsl2/1365455#1365455?newreg=73a1533e00d64d7e8034fb0566634f27
这里可以更方便地使用systemd,见ubuntu的文档
https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support#4-configure-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直接安装build-essional包
sudo apt update
sudo apt install build-essential
https://cloud.tencent.com/developer/article/1986728
用Mambaforge集成了mamba和conda,mamba是conda的c语言实现版。
下载地址
https://github.com/conda-forge/miniforge#mambaforge
使用教程
https://mamba.readthedocs.io/en/latest/installation.html
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local
安装完成后要添加环境变量,在~/.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
比如我想安装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
需要先安好第8步的cuda toolkit
cuDNN所有包的下载位置
cuDNN Archive | NVIDIA Developer
官方文档安装教程(亲测有效)
Installation Guide :: NVIDIA cuDNN Documentation
两种安装方式
其中的tar文件或者deb文件名要替换成自己的。其他直接照着敲就行
在发出以下命令之前,您必须更换XY和 v8.xxx与您的特定 CUDA 和 cuDNN 版本和包日期。
导航到您的
解压缩 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*
通过第一种Tar 文件安装的方式可以了解到,安装cudNN实际上就是加入了一些库和头文件到cuda toolkit中。
确保mobaxterm的x server已打开(打开为彩色,关闭为灰色)
配置
使用多窗口,硬件加速,所有主机都可访问x11
ubuntu直接敲命令就行
sudo snap install pycharm-professional --classic
之后在远程桌面链接的gnome中(只能在这里有效,见第4步的配置)中打开终端,输入
pycharm-professional
mobaxterm会检测到pycharm的x11请求,并建立链接。
至此就配置完毕了~
https://www.cnblogs.com/tuilk/p/16287472.html
增大swap分区可以缓解这个状况,swap分区就是硬盘的一部分被用来做虚拟内存了,
见官方文档中的配置,.wslconfig 的配置设置部分
https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config
可以看到默认是真机内存的25%作为默认swap,我们想改按照文档的格式进行修改就好了
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
如果是ubuntu的pycharm输入法
https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/
还有搜狗的教程
https://shurufa.sogou.com/linux
我是两个都试了试,结果成功了,不知道是那种有效了。可以都试一下
按win+shift+t的组合键,可以改输入法,如果输入法调不出来了试试win+shift+t
搜狗输入法看不到打的汉字内容解决:
进入搜狗设置,将显示变为竖排,就可以看到打出的汉字了
但有时输入法会抽风,出不来,这时可以试试对输入法配置进行一下修改,如下图进入修改页面,就随便修改就可能会好,很玄学,我也是瞎改。