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

告别Win系统Bug!保姆级教程:在WSL2上从零搭建CUDA 11.8 + PyTorch 2.2深度学习环境(含迁移到D盘避坑指南)

告别Win系统Bug保姆级教程在WSL2上从零搭建CUDA 11.8 PyTorch 2.2深度学习环境含迁移到D盘避坑指南如果你是一名深度学习开发者可能已经受够了Windows系统下各种环境配置的麻烦——驱动冲突、路径错误、C盘空间告急……这些问题不仅浪费时间还可能让整个项目陷入停滞。而WSL2Windows Subsystem for Linux 2提供了一个完美的折中方案既保留了Windows的易用性又能享受Linux环境的稳定和高效。本文将带你从零开始在WSL2上搭建完整的CUDA 11.8和PyTorch 2.2深度学习环境并特别解决一个高频痛点如何将WSL2系统从C盘迁移到D盘彻底解放你的系统盘空间。整个过程包含详细的操作步骤、可能遇到的错误及解决方案确保你能获得一个稳定、高效的开发环境。1. WSL2基础安装与配置1.1 启用WSL2功能在开始之前确保你的Windows系统版本为1903或更高并且支持WSL2。以下是启用步骤以管理员身份打开PowerShell运行以下命令启用WSL功能dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart启用虚拟机平台功能dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启计算机使更改生效。提示如果你的系统版本较旧可能需要先升级Windows。WSL2需要Windows 10版本2004或更高或者Windows 11。1.2 安装Linux发行版Microsoft Store提供了多种Linux发行版选择。对于深度学习环境推荐使用Ubuntu 22.04 LTS打开Microsoft Store搜索Ubuntu 22.04 LTS并安装安装完成后从开始菜单启动Ubuntu首次启动时会提示创建用户名和密码注意输入密码时不会显示字符这是正常现象1.3 设置WSL2为默认版本安装完成后确保WSL2是默认版本wsl --set-default-version 2验证当前WSL版本wsl -l -v输出应显示VERSION为2。2. WSL2系统迁移至D盘解放C盘空间默认情况下WSL2虚拟机文件存储在C盘随着使用会占用大量空间。以下是迁移到D盘的完整步骤2.1 准备工作在D盘创建目标文件夹例如D:\wsl\ubuntu查看已安装的WSL发行版名称wsl -l -v记下你的发行版名称通常是Ubuntu-22.042.2 导出和迁移系统停止WSL服务wsl --shutdown导出当前系统到tar文件wsl --export Ubuntu-22.04 D:\wsl\ubuntu.tar注销原有系统wsl --unregister Ubuntu-22.04导入系统到新位置wsl --import Ubuntu-22.04 D:\wsl\ubuntu D:\wsl\ubuntu.tar --version 22.3 恢复用户配置迁移后需要重新设置默认用户在PowerShell中查看你的用户名ubuntu2204.exe config --default-user设置默认用户替换yourusername为你的实际用户名ubuntu2204.exe config --default-user yourusername注意如果遇到权限问题可能需要以管理员身份运行PowerShell。3. 深度学习环境基础配置3.1 系统更新与基础工具在WSL2终端中执行以下命令更新系统并安装必要工具sudo apt update sudo apt upgrade -y sudo apt install -y build-essential cmake git wget curl unzip3.2 配置清华软件源为了加速国内下载速度更换为清华源备份原有源列表sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源列表sudo sed -i shttp://.*archive.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list sudo sed -i shttp://.*security.ubuntu.comhttps://mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list更新软件包索引sudo apt update4. Conda环境配置4.1 安装Miniconda推荐使用更轻量级的Minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh按照提示完成安装然后重新打开终端使更改生效。4.2 创建Python虚拟环境创建一个专用于深度学习的虚拟环境conda create -n dl python3.10 -y conda activate dl配置pip使用国内镜像源加速下载pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple5. CUDA 11.8安装与配置5.1 安装NVIDIA驱动在Windows主机上访问NVIDIA驱动下载页面选择你的显卡型号并下载最新驱动安装完成后重启计算机5.2 安装CUDA Toolkit在WSL2中安装CUDA 11.8wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run安装时注意当提示安装驱动时选择No驱动已在Windows安装其他选项保持默认5.3 配置环境变量编辑~/.bashrc文件echo export PATH/usr/local/cuda-11.8/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH ~/.bashrc echo export CUDA_HOME/usr/local/cuda-11.8 ~/.bashrc source ~/.bashrc验证安装nvcc --version应显示CUDA 11.8相关信息。6. cuDNN安装6.1 下载cuDNN从NVIDIA开发者网站下载与CUDA 11.8兼容的cuDNN版本需要注册账号。6.2 安装cuDNN假设下载的文件为cudnn-linux-x86_64-8.x.x.x_cuda11-archive.tar.xztar -xvf cudnn-linux-x86_64-8.x.x.x_cuda11-archive.tar.xz sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64 sudo chmod ar /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*验证安装cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 27. PyTorch 2.2安装与验证7.1 安装PyTorch在之前创建的conda环境中运行conda install pytorch2.2.2 torchvision0.17.2 torchaudio2.2.2 pytorch-cuda11.8 -c pytorch -c nvidia7.2 验证安装启动Python解释器并运行以下代码import torch print(torch.__version__) # 应显示2.2.2 print(torch.cuda.is_available()) # 应返回True print(torch.cuda.get_device_name(0)) # 显示你的GPU型号8. 性能优化与实用技巧8.1 内存与交换空间配置WSL2默认内存限制可能不足在Windows用户目录下创建或修改.wslconfig文件[wsl2] memory16GB # 根据你的系统调整 swap8GB localhostForwardingtrue然后重启WSLwsl --shutdown8.2 GPU加速验证运行一个简单的矩阵乘法测试GPU性能import torch import time device torch.device(cuda) x torch.randn(10000, 10000, devicedevice) y torch.randn(10000, 10000, devicedevice) start time.time() z torch.matmul(x, y) print(fTime: {time.time()-start:.4f} seconds)8.3 文件系统交互优化WSL2与Windows文件系统交互较慢建议将项目代码放在WSL2文件系统中/home/username使用/mnt/c访问Windows文件时避免频繁IO操作9. 常见问题解决9.1 CUDA不可用问题如果torch.cuda.is_available()返回False检查NVIDIA驱动版本是否支持CUDA 11.8确保WSL2中安装了正确的CUDA版本验证环境变量设置是否正确9.2 内存不足错误训练大型模型时可能遇到内存不足调整.wslconfig中的内存限制使用更小的batch size启用梯度检查点gradient checkpointing9.3 文件权限问题在Windows和WSL之间操作文件可能导致权限混乱# 修复WSL中文件权限 sudo chown -R $USER:$USER /path/to/directory10. 环境备份与恢复10.1 备份conda环境conda env export environment.yml10.2 创建系统快照定期导出WSL系统备份wsl --export Ubuntu-22.04 D:\wsl_backups\ubuntu_$(Get-Date -Format yyyyMMdd).tar10.3 恢复环境从备份恢复conda环境conda env create -f environment.yml从快照恢复WSL系统wsl --import Ubuntu-22.04 D:\wsl\ubuntu D:\wsl_backups\ubuntu_20240101.tar --version 2

相关文章:

告别Win系统Bug!保姆级教程:在WSL2上从零搭建CUDA 11.8 + PyTorch 2.2深度学习环境(含迁移到D盘避坑指南)

告别Win系统Bug!保姆级教程:在WSL2上从零搭建CUDA 11.8 PyTorch 2.2深度学习环境(含迁移到D盘避坑指南) 如果你是一名深度学习开发者,可能已经受够了Windows系统下各种环境配置的麻烦——驱动冲突、路径错误、C盘空间…...

5G入网第一步之后:手把手拆解UE如何从PDCCH上‘听’到SIB1的调度指令

5G入网第一步之后:手把手拆解UE如何从PDCCH上‘听’到SIB1的调度指令 想象一下,你刚搬进一座巨大的新城市,手机信号栏突然跳出5G标志——这一刻背后,是用户设备(UE)像侦探破案般完成的一场精密协作。当UE通…...

5步掌握Krita AI Diffusion:从零到精通的智能绘画完整指南

5步掌握Krita AI Diffusion:从零到精通的智能绘画完整指南 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://git…...

AFDM Turbo接收机:6G通信中的关键技术革新

1. AFDM Turbo接收机:下一代通信系统的关键技术革新在6G通信系统的研发浪潮中,AFDM(Affine Frequency Division Multiplexing)作为一种新型多载波调制技术,正在引起学术界和产业界的广泛关注。而Turbo接收机作为其核心…...

新手开发者从零开始使用Taotoken完成第一个AI应用

新手开发者从零开始使用Taotoken完成第一个AI应用 1. 注册Taotoken并获取API Key 要开始使用Taotoken平台,首先需要注册账号并获取API Key。访问Taotoken官网,点击注册按钮完成账号创建。登录后进入控制台,在"API密钥管理"页面点击…...

Vivado综合指南:手把手教你用Verilog代码“召唤”BRAM,并对比IP核生成方式的优劣

Vivado实战:Verilog代码生成BRAM的工程化决策指南 在FPGA开发中,Block RAM(BRAM)作为关键存储资源,其配置方式直接影响项目效率与性能。面对IP核配置与代码生成两种路径,工程师常陷入选择困境——是拥抱图形…...

变现宝多功能知识付费源码,可对接小程序

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 thinkphp多功能知识付费源码,变现方式多,多领域素材资源知识变现营销裂变独立版本。 支持:视频、音频、图文、文档、会员、社群、用户发布、创作分成…...

Lumafly:空洞骑士玩家的终极模组管理器,跨平台一键安装告别复杂配置 [特殊字符]

Lumafly:空洞骑士玩家的终极模组管理器,跨平台一键安装告别复杂配置 🚀 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 你是…...

CefFlashBrowser:让Flash内容在现代浏览器中重生的终极解决方案

CefFlashBrowser:让Flash内容在现代浏览器中重生的终极解决方案 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 还记得那些在4399上玩过的经典Flash小游戏吗?那些充…...

LLM代理中高效工具调用与推理优化实践

1. 项目概述"高效工具调用与推理在LLM代理中的应用"这个主题探讨的是如何让大型语言模型(LLM)更智能地使用外部工具和进行逻辑推理。作为一名长期从事AI应用开发的工程师,我发现这是当前LLM落地实践中最具挑战性也最有价值的领域之一。在实际项目中&#…...

终极指南:如何快速修复洛雪音乐六音音源失效问题

终极指南:如何快速修复洛雪音乐六音音源失效问题 【免费下载链接】New_lxmusic_source 六音音源修复版 项目地址: https://gitcode.com/gh_mirrors/ne/New_lxmusic_source 还在为洛雪音乐1.6.0版本后六音音源失效而烦恼吗?今天我将为你带来完整的…...

AI如何革新电影分镜:ShotVerse框架解析与应用

1. 项目概述:当电影制作遇上AI生成技术去年参与某短片项目时,导演临时提出要补拍三个机位镜头,整个团队不得不重新协调场地、演员和设备。这种经历让我开始思考:如果有个工具能根据剧本自动生成多角度镜头素材,影视创作…...

10分钟掌握城通网盘直连解析:突破限速瓶颈的完整技术方案

10分钟掌握城通网盘直连解析:突破限速瓶颈的完整技术方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 城通网盘直连解析器是一款专为技术用户设计的开源工具,通过智能API解析…...

STM32驱动AS608指纹模块避坑指南:从标准库到HAL库的移植实战(附完整代码)

STM32驱动AS608指纹模块避坑指南:从标准库到HAL库的移植实战 指纹识别技术在嵌入式系统中应用广泛,而AS608作为一款性价比较高的光学指纹模块,常与STM32系列微控制器搭配使用。随着STM32CubeMX工具的普及,越来越多的开发者从标准外…...

STM32新手避坑:用TIM6/TIM7基本定时器实现精准0.5秒LED闪烁(附完整代码)

STM32新手避坑:用TIM6/TIM7基本定时器实现精准0.5秒LED闪烁(附完整代码) 在嵌入式开发中,定时器是最基础也最核心的外设之一。对于STM32初学者来说,基本定时器(TIM6/TIM7)往往是接触定时功能的第…...

B站视频转文字终极指南:3分钟学会用bili2text提升学习效率10倍

B站视频转文字终极指南:3分钟学会用bili2text提升学习效率10倍 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频内容而头疼吗&am…...

从‘好友共享’流程倒推:CCC数字钥匙3.0中的数据结构是如何设计的?

从好友共享流程解析CCC数字钥匙3.0的数据架构设计 想象一下这样的场景:周末露营前,你通过手机将车钥匙临时共享给同行的朋友。这个看似简单的动作背后,隐藏着一套精密的数据交互体系——CCC(Car Connectivity Consortium&#xf…...

终极高效Gofile下载器:简单三步搞定所有文件下载难题 [特殊字符]

终极高效Gofile下载器:简单三步搞定所有文件下载难题 🚀 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 还在为Gofile文件下载而烦恼吗?…...

通过curl命令快速测试Taotoken大模型API的兼容性与可用性

通过curl命令快速测试Taotoken大模型API的兼容性与可用性 1. 准备工作 在开始测试前,请确保已获取有效的Taotoken API Key。登录Taotoken控制台,在「API密钥」页面可创建和管理密钥。同时建议在「模型广场」查看当前支持的模型ID列表,例如c…...

AMD Ryzen终极调试工具:SMUDebugTool完整实战指南

AMD Ryzen终极调试工具:SMUDebugTool完整实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…...

网盘直链下载助手终极指南:5分钟掌握浏览器直接下载网盘文件的完整方法

网盘直链下载助手终极指南:5分钟掌握浏览器直接下载网盘文件的完整方法 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国…...

树莓派彩色电子墨水相框开发指南

1. 项目概述:树莓派专属的彩色电子墨水相框 作为一名长期折腾树莓派周边设备的硬件爱好者,当我第一次看到Waveshare这款7.3英寸彩色电子墨水相框时,立刻被它的设计理念所吸引。这不仅仅是一个简单的显示器,而是专为树莓派Zero系列…...

8步系统修复:YuukiPS Launcher全生命周期故障诊断与解决方案

8步系统修复:YuukiPS Launcher全生命周期故障诊断与解决方案 【免费下载链接】Launcher-PC 项目地址: https://gitcode.com/gh_mirrors/la/Launcher-PC YuukiPS Launcher是一款专为多款动漫游戏设计的智能启动器,它集成了游戏自动检测、本地代理…...

ARM RAS架构:硬件错误检测与处理机制详解

1. ARM RAS系统架构概述 在现代计算系统中,硬件错误处理机制是确保系统可靠性的基石。ARM RAS(Reliability, Availability, Serviceability)系统架构提供了一套完整的硬件级错误检测与处理框架,其设计哲学可概括为"分级处理、…...

5分钟快速上手:绝地求生罗技鼠标压枪宏终极配置指南

5分钟快速上手:绝地求生罗技鼠标压枪宏终极配置指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 想要在绝地求生中轻松实现精准压…...

别再纠结vLLM和TGI了!实测Llama-2-7B吞吐量,手把手教你调优max-num-batched-tokens

深度实测:Llama-2-7B在vLLM与TGI框架下的吞吐量调优实战 当你在深夜调试大语言模型服务时,是否遇到过这样的场景:用户请求突然激增,响应时间从毫秒级飙升到秒级,监控面板上的显存占用曲线像过山车一样起伏不定&#x…...

如何快速解决NCM格式限制:完整应用方案指南

如何快速解决NCM格式限制:完整应用方案指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 当你准备在车载音响播放收藏的音乐时,却发现所有NCM文件都无法识别;当更换手机时,多年积累的…...

Hitboxer:5大核心功能彻底解决游戏键盘输入冲突的终极工具

Hitboxer:5大核心功能彻底解决游戏键盘输入冲突的终极工具 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 你是否在激烈的游戏对战中因为键盘输入冲突而错失良机?当W和S键同时按下时角色…...

TF-IDF改造应用于LLM任务理解评估的方法与实践

1. 项目背景与核心价值在自然语言处理领域,大型语言模型(LLM)的任务执行质量评估一直是个棘手问题。传统评估方法往往依赖人工标注或简单的结果比对,难以量化模型对任务本质的理解程度。我们团队开发的"LLM任务动机评估与TF-IDF关键词分析"方法…...

3步掌握网页视频下载神器:猫抓浏览器扩展全面指南

3步掌握网页视频下载神器:猫抓浏览器扩展全面指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存心仪的网页视频而烦恼…...