1. 环境准备开启WIN11隐藏功能第一次在Windows系统里跑Linux就像在客厅搭了个实验室WSL2就是这个神奇通道。我当初为了跑通这个环境重装了三次系统现在把血泪经验浓缩成这几个关键步骤首先按住WinX调出菜单选择Windows终端管理员输入这个魔法命令dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart这相当于同时打开了两个开关左边是Linux子系统大门右边是虚拟化技术引擎。有个坑我踩过——如果你电脑没开CPU虚拟化支持这时候会报错。进BIOS找到Intel VT-x或AMD-V选项开启就行。重启后还有个隐藏操作把WSL2设为默认版本。在PowerShell里执行wsl --set-default-version 2这里有个玄学问题有些机器会卡在正在安装WSL2内核组件这时候需要手动下载WSL2内核更新包。我测试过三台不同配置的电脑联想小新Pro16需要这步操作戴尔XPS却不用。2. Ubuntu22.04安装与调优微软商店里的Ubuntu22.04就像个精装房我们得自己改造。安装完成后首次启动会卡在Installing...这时候千万别关窗口我试过强制关闭导致用户配置损坏最后只能重装。建议立即做这三件套sudo apt update sudo apt upgrade -y sudo apt install build-essential manpages-dev第一个命令更新软件库第二个安装开发工具链。有次我偷懒没装build-essential后面编译CUDA样例时直接报错浪费两小时查问题。移动WSL安装位置是个实用技巧用管理员PowerShell执行wsl --export Ubuntu D:\wsl-ubuntu.tar wsl --unregister Ubuntu wsl --import Ubuntu D:\WSL D:\wsl-ubuntu.tar注意路径要用反斜杠我最初用正斜杠导致导入失败。移动后默认用root登录要改回普通用户ubuntu2204.exe config --default-user yourname3. CUDA Toolkit的精准安装CUDA版本选择是门玄学PyTorch官方适配表才是真理。截至2023年10月稳定组合是PyTorch 2.0 → CUDA 11.8PyTorch 1.13 → CUDA 11.7安装命令要严格按NVIDIA官方文档wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub sudo add-apt-repository deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ / sudo apt-get update sudo apt-get -y install cuda-toolkit-12-2关键点在于最后一行版本号要匹配你的PyTorch需求。有次我装了CUDA 12.1结果PyTorch报Not compiled with CUDA support错误。环境变量配置也有讲究在~/.bashrc末尾添加export PATH/usr/local/cuda-12.2/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}保存后执行source ~/.bashrc测试时用nvcc --version和nvidia-smi对照版本号。我遇到过两者显示版本不一致的情况通常是驱动问题需要回退NVIDIA驱动版本。4. Miniconda环境配置Miniconda比Anaconda轻量特别适合WSL环境。下载安装要用清华源wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda安装时一定选no禁止自动初始化否则每次启动终端都激活base环境。我推荐手动配置echo export PATH$HOME/miniconda/bin:$PATH ~/.bashrc source ~/.bashrcconda换源要修改~/.condarc文件channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - defaults show_channel_urls: true创建环境时指定python版本很关键conda create -n pytorch python3.9PyTorch 2.0对Python 3.11支持还不完善我测试时遇到过NumPy兼容性问题。5. PyTorch终极安装方案PyTorch官网的安装命令可能不适合WSL环境我的私藏配方是conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia安装后验证GPU是否可用import torch print(torch.cuda.is_available()) # 应该返回True print(torch.rand(2,3).cuda()) # 应该显示GPU张量如果遇到CUDA driver version is insufficient错误八成是Windows主机端的NVIDIA驱动太旧。有个冷知识WSL2中的CUDA驱动实际调用的是Windows主机的驱动需要去NVIDIA官网下载最新Game Ready驱动。最后分享个性能优化技巧在%USERPROFILE%.wslconfig文件中添加[wsl2] memory8GB processors4 localhostForwardingtrue这可以防止WSL2内存泄漏问题。我在训练模型时遇到过OOM错误调整这个配置后稳定运行了72小时。
WIN11 + WSL2 + Ubuntu22.04 + CUDA + PyTorch 环境一站式部署与避坑指南,从零到AI开发实战
1. 环境准备开启WIN11隐藏功能第一次在Windows系统里跑Linux就像在客厅搭了个实验室WSL2就是这个神奇通道。我当初为了跑通这个环境重装了三次系统现在把血泪经验浓缩成这几个关键步骤首先按住WinX调出菜单选择Windows终端管理员输入这个魔法命令dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart这相当于同时打开了两个开关左边是Linux子系统大门右边是虚拟化技术引擎。有个坑我踩过——如果你电脑没开CPU虚拟化支持这时候会报错。进BIOS找到Intel VT-x或AMD-V选项开启就行。重启后还有个隐藏操作把WSL2设为默认版本。在PowerShell里执行wsl --set-default-version 2这里有个玄学问题有些机器会卡在正在安装WSL2内核组件这时候需要手动下载WSL2内核更新包。我测试过三台不同配置的电脑联想小新Pro16需要这步操作戴尔XPS却不用。2. Ubuntu22.04安装与调优微软商店里的Ubuntu22.04就像个精装房我们得自己改造。安装完成后首次启动会卡在Installing...这时候千万别关窗口我试过强制关闭导致用户配置损坏最后只能重装。建议立即做这三件套sudo apt update sudo apt upgrade -y sudo apt install build-essential manpages-dev第一个命令更新软件库第二个安装开发工具链。有次我偷懒没装build-essential后面编译CUDA样例时直接报错浪费两小时查问题。移动WSL安装位置是个实用技巧用管理员PowerShell执行wsl --export Ubuntu D:\wsl-ubuntu.tar wsl --unregister Ubuntu wsl --import Ubuntu D:\WSL D:\wsl-ubuntu.tar注意路径要用反斜杠我最初用正斜杠导致导入失败。移动后默认用root登录要改回普通用户ubuntu2204.exe config --default-user yourname3. CUDA Toolkit的精准安装CUDA版本选择是门玄学PyTorch官方适配表才是真理。截至2023年10月稳定组合是PyTorch 2.0 → CUDA 11.8PyTorch 1.13 → CUDA 11.7安装命令要严格按NVIDIA官方文档wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/3bf863cc.pub sudo add-apt-repository deb https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/ / sudo apt-get update sudo apt-get -y install cuda-toolkit-12-2关键点在于最后一行版本号要匹配你的PyTorch需求。有次我装了CUDA 12.1结果PyTorch报Not compiled with CUDA support错误。环境变量配置也有讲究在~/.bashrc末尾添加export PATH/usr/local/cuda-12.2/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}保存后执行source ~/.bashrc测试时用nvcc --version和nvidia-smi对照版本号。我遇到过两者显示版本不一致的情况通常是驱动问题需要回退NVIDIA驱动版本。4. Miniconda环境配置Miniconda比Anaconda轻量特别适合WSL环境。下载安装要用清华源wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda安装时一定选no禁止自动初始化否则每次启动终端都激活base环境。我推荐手动配置echo export PATH$HOME/miniconda/bin:$PATH ~/.bashrc source ~/.bashrcconda换源要修改~/.condarc文件channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ - defaults show_channel_urls: true创建环境时指定python版本很关键conda create -n pytorch python3.9PyTorch 2.0对Python 3.11支持还不完善我测试时遇到过NumPy兼容性问题。5. PyTorch终极安装方案PyTorch官网的安装命令可能不适合WSL环境我的私藏配方是conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia安装后验证GPU是否可用import torch print(torch.cuda.is_available()) # 应该返回True print(torch.rand(2,3).cuda()) # 应该显示GPU张量如果遇到CUDA driver version is insufficient错误八成是Windows主机端的NVIDIA驱动太旧。有个冷知识WSL2中的CUDA驱动实际调用的是Windows主机的驱动需要去NVIDIA官网下载最新Game Ready驱动。最后分享个性能优化技巧在%USERPROFILE%.wslconfig文件中添加[wsl2] memory8GB processors4 localhostForwardingtrue这可以防止WSL2内存泄漏问题。我在训练模型时遇到过OOM错误调整这个配置后稳定运行了72小时。