当前位置: 首页 > news >正文

告别双系统!保姆级教程:在Windows 11上用WSL2 + PyCharm Professional 2023.2配置CUDA 12.1深度学习环境

Windows 11深度学习环境终极配置:WSL2 + PyCharm + CUDA 12.1实战指南

在Windows 11上搭建高效的深度学习开发环境,不再需要双系统或虚拟机。本文将带你一步步配置完整的GPU加速开发环境,充分利用WSL2和PyCharm Professional 2023.2的最新特性。

1. Windows 11环境准备与优化

Windows 11对WSL2的支持比Win10更加完善,特别是在GPU加速和文件系统性能方面。首先确保你的系统满足以下要求:

  • Windows 11 22H2或更高版本
  • 支持虚拟化的CPU(Intel VT-x或AMD-V)
  • NVIDIA显卡(RTX系列推荐)和最新驱动

启用必要功能

  1. 以管理员身份打开PowerShell,执行:
wsl --install
  1. 这个命令会自动启用WSL和虚拟机平台功能,无需手动操作

小技巧:检查WSL版本是否为2:

wsl --list --verbose

注意:如果之前安装过WSL1,可以使用wsl --set-version Ubuntu 2进行转换

2. Ubuntu WSL2环境配置

微软商店安装Ubuntu 22.04 LTS后,进行以下优化配置:

系统更新与基础工具安装

sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential git curl wget

配置国内镜像源

  1. 备份原有源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 替换为阿里云源
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list

安装Windows Terminal(推荐):

  • 微软商店搜索安装"Windows Terminal"
  • 配置默认启动Ubuntu WSL2

3. CUDA 12.1与cuDNN安装

Windows 11的WSL2现在支持直接调用宿主机的NVIDIA GPU,无需额外驱动:

安装CUDA Toolkit

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-12-1

配置环境变量

echo 'export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc source ~/.bashrc

验证安装

nvcc --version nvidia-smi

cuDNN安装: 从NVIDIA官网下载对应版本的cuDNN,然后:

sudo dpkg -i libcudnn8_8.9.4.25-1+cuda12.1_amd64.deb sudo dpkg -i libcudnn8-dev_8.9.4.25-1+cuda12.1_amd64.deb

4. Conda环境与PyTorch配置

安装Miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh

配置conda镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes

创建深度学习环境

conda create -n dl python=3.10 conda activate dl conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

验证PyTorch GPU支持

import torch print(torch.cuda.is_available()) # 应该返回True print(torch.cuda.get_device_name(0)) # 显示你的GPU型号

5. PyCharm Professional配置

PyCharm 2023.2对WSL2的支持更加完善:

  1. 安装PyCharm Professional版
  2. 打开设置 → 构建、执行、部署 → 工具 → WSL
  3. 添加你的Ubuntu WSL2分发版
  4. 创建新项目时选择"WSL"作为解释器位置
  5. 选择之前创建的conda环境(通常位于~/miniconda3/envs/dl/bin/python

实用技巧

  • 使用"连接到WSL"功能可以直接在WSL环境中运行和调试代码
  • 配置文件映射确保Windows和WSL路径正确转换
  • 启用"同步WSL发行版中的文件"选项保持文件一致性

6. 性能优化与问题排查

IO性能优化

sudo nano /etc/wsl.conf

添加以下内容:

[automount] options = "metadata,umask=22,fmask=11"

常见问题解决方案

问题现象解决方案
CUDA不可用检查NVIDIA驱动版本,确保≥515
内存不足.wslconfig中配置内存限制
文件权限错误使用chmod修正权限

GPU内存监控

watch -n 1 nvidia-smi

在实际项目中,这种配置方式比传统双系统方案节省了大量上下文切换时间,同时保持了接近原生Linux的性能。特别是在处理大型数据集时,WSL2的直接文件访问优势明显。

http://www.jsqmd.com/news/971914/

相关文章:

  • 汽车电子工程师的LIN总线避坑指南:从帧结构解析到实际车载网络调试(Vector/CANoe工具实操)
  • 当‘寓言’照进现实:用Notion或Obsidian搭建你的第二大脑,告别知识碎片化
  • 别再只盯着FLOPs了!ShuffleNet v2作者教你用这4条黄金法则,真正优化移动端模型速度
  • 3步轻松完成旧iPhone/iPad系统降级:Legacy-iOS-Kit终极指南
  • 汽车ECU开发避坑指南:LIN总线帧头(Header)解析与常见同步错误排查
  • 社区养老服务系统毕设源码
  • Rapid SCADA V6 保姆级安装指南:从Windows IIS到Linux Nginx,一次搞定生产环境部署
  • 异步FIFO仿真全流程:用Testbench抓取wr_rst_busy和empty信号的那些坑
  • 手把手教你用Vector CANdb++ Editor(最新版)从零创建Autosar兼容的DBC文件,附赠几个提升效率的隐藏技巧
  • 从Proteus仿真到PCB打样:手把手教你复刻一个51单片机数字电压表
  • Meshlab新手别慌!这份超全快捷键清单+菜单汉化对照表,让你建模效率翻倍
  • 动态指纹混淆:无痕绕过现代WAF的渗透测试法
  • 别再只会F8了!IDEA Debug实战:5分钟搞定Stream流和Lambda表达式调试(附动图演示)
  • 福布斯榜首富的‘极简’科技观:复盘沃尔玛早期如何用‘笨办法’打赢信息战
  • 手把手教你用TTL线刷电信IHO-3000高安版机顶盒(附固件+避坑指南)
  • 用Arduino Uno和PAJ7620U2手势传感器做个智能床头灯(附完整代码和接线图)
  • 别再手动一个个点了!用MATLAB的dir函数批量处理遥感TIF数据(附完整代码)
  • Rapid SCADA V6 新特性实战:如何用InfluxDB+PostgreSQL打造企业级时序数据中枢
  • AI搜索引擎优化选哪家?闪灵信息口碑怎样? - myqiye
  • 超越CNN?用Swin Transformer在自定义数据集上轻松实现95%+准确率
  • 手把手教你用滑模观测器(SMO)搞定PMSM无感FOC:从α-β方程到转子位置估算
  • 用Postman玩转服务器管理:Redfish接口实战12个场景(含BMC用户、BIOS设置)
  • 英雄联盟Akari助手:5分钟提升你的游戏效率,告别繁琐操作
  • SAP FI配置避坑指南:OBC4定义字段状态变式时,这3个后台表(T004V/T004F)的关系一定要搞清楚
  • 别再手动修音了!用Melodyne Studio 5.3一键分析人声,Adobe Audition内录素材导入全攻略
  • 2026年Java面试核心预测与突破
  • 从建表到查数据:一个完整SQLite项目的数据操作避坑实录(附字段名修改补救方法)
  • 【2027最新】基于SpringBoot+Vue的学生网上选课系统管理系统源码+MyBatis+MySQL
  • 理工科带实验数据论文!选对 AI 降重,数据公式不乱改的降重工具推荐
  • 并行MCMC算法:跨序列长度加速采样技术解析