1. WSL2安装与基础配置最近在Windows上折腾深度学习环境的朋友应该都听说过WSL2的大名。作为微软官方推出的Linux子系统WSL2相比第一代有了质的飞跃——完整的内核支持、接近原生性能的IO速度最关键的是可以直接调用NVIDIA GPU这意味着我们终于可以在Windows上获得接近Linux的开发体验。先说说我的硬件配置Windows 11专业版RTX 3070显卡。如果你的系统是Windows 10需要确保版本号在2004以上内部版本19041。安装过程其实特别简单wsl --install这个命令会自动完成所有基础组件的安装。不过我发现默认安装的Ubuntu会占用C盘空间对于系统盘容量紧张的用户比如我128GB的SSD建议先迁移到其他分区# 查看当前WSL状态 wsl -l -v # 如果正在运行需要先关闭 wsl --shutdown # 导出系统镜像 wsl --export Ubuntu d:\wsl_backup.tar # 注销原有系统 wsl --unregister Ubuntu # 重新导入到新位置 wsl --import Ubuntu d:\WSL d:\wsl_backup.tar迁移完成后建议修改默认登录用户。每次以root身份登录不仅不安全操作起来也不方便。编辑/etc/wsl.conf文件[user] default你的用户名保存后执行wsl --shutdown重启即可生效。第一次进入系统记得先更新软件包sudo apt update sudo apt upgrade -y2. Anaconda环境管理实战在WSL2中管理Python环境我强烈推荐使用Miniconda而不是原生Python。原因很简单深度学习项目往往需要隔离不同的依赖版本conda的虚拟环境管理比venv更加成熟稳定。安装Miniconda的步骤其实官网都有但有几个坑需要注意。首先下载安装脚本时建议在Windows端用浏览器下载Linux版本的.sh文件然后复制到WSL中。因为wget在国内下载速度可能很慢# 进入下载目录执行安装 bash Miniconda3-latest-Linux-x86_64.sh安装过程中会询问是否初始化conda一定要选yes这样每次打开终端都会自动激活base环境。安装完成后我习惯添加几个实用alias到~/.bashrc# Conda快捷命令 alias caconda activate alias cdaconda deactivate # 清理缓存 alias condacleanconda clean --all -y创建深度学习专用环境时建议指定Python版本。我就遇到过不指定版本导致装错依赖的情况conda create -n dl python3.10 -y conda activate dl配置清华源能大幅提升包下载速度。创建~/.condarc文件写入channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud3. PyTorch-GPU版精准安装指南装PyTorch最头疼的就是CUDA版本匹配问题。经过多次踩坑我总结出一个可靠的工作流首先在Windows端确认显卡驱动版本在cmd中运行nvidia-smi。以我的机器为例显示CUDA Version: 12.4。但要注意这里显示的是驱动支持的最高CUDA版本不是实际安装的版本。进入WSL2环境后千万不要安装任何NVIDIA驱动WSL2的特殊之处在于直接使用宿主机的驱动。我们需要的是CUDA Toolkit建议通过conda安装conda install cudatoolkit11.8 -c pytorch为什么选11.8而不是12.x因为截至2024年5月PyTorch稳定版对CUDA 12.1支持最好。安装PyTorch时一定要用官网提供的精准命令pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118验证安装是否成功时别只看torch.cuda.is_available()返回True就完事了。我遇到过能检测到CUDA但实际计算报错的情况。完整的测试脚本应该是import torch print(torch.__version__) # 应该显示类似2.3.0cu118 print(torch.cuda.get_device_name(0)) # 显示你的显卡型号 x torch.randn(3,3).cuda() # 创建张量并转移到GPU print(x x.T) # 执行矩阵乘法测试如果最后一步能正常输出计算结果说明环境配置完全正确。遇到问题的话建议先检查nvcc --version和nvidia-smi显示的CUDA版本是否一致。4. VSCode远程开发深度集成用VSCode连接WSL2开发绝对是生产力利器。安装Remote Development扩展包后你会发现左下角多了一个绿色图标点击即可连接到WSL。但要让Python开发体验更顺畅还需要做些配置在WSL中安装VSCode服务器组件code .这个命令会自动完成远程组件的安装在扩展页面搜索并安装Python和Pylance注意要安装在WSL环境中扩展列表会显示安装到WSL的提示配置Python解释器路径。按CtrlShiftP输入Python: Select Interpreter选择你的conda环境路径通常是~/miniconda3/envs/dl/bin/python推荐配置.vscode/settings.json{ python.linting.enabled: true, python.formatting.provider: black, python.analysis.typeCheckingMode: basic, python.languageServer: Pylance }调试功能是VSCode的杀手锏。配置launch.json后可以设置断点、查看变量值。我常用的配置模板{ version: 0.2.0, configurations: [ { name: Python: Current File, type: python, request: launch, program: ${file}, console: integratedTerminal, justMyCode: false } ] }5. 系统优化与性能调优默认配置下的WSL2有几个性能瓶颈需要特别注意内存管理WSL2默认会占用最多50%的物理内存。对于大模型训练建议在%UserProfile%\.wslconfig中添加限制[wsl2] memory16GB # 根据你的实际内存调整 swap8GB localhostForwardingtrueIO性能WSL2访问Windows文件系统/mnt/目录速度较慢。建议将项目文件放在WSL原生文件系统中如~/projects禁用Windows Defender对WSL目录的实时扫描GPU共享当多个WSL实例运行时GPU内存分配可能出问题。可以通过nvidia-smi -i 0 -lgc锁定GPU时钟频率来提高稳定性。最后分享一个实用技巧——在Windows Terminal中预设WSL启动环境。修改配置文件直接启动conda环境{ commandline: wsl ~ -d Ubuntu --exec /bin/bash -c conda activate dl cd ~/projects bash, name: WSL (DL Env) }这些配置完成后你的WSL2环境应该既能满足日常深度学习开发需求又能保持系统稳定。我在这个环境下跑过BERT训练和Stable Diffusion推理性能损失不到5%比纯Windows环境舒服太多了。