WSL2 Ubuntu 22.04 安装 NVIDIA 驱动与 CUDA 完整指南

window11使用wsl2安装Ubuntu22.04及conda、cuda等 了解使用适用于Linux的Windows子系统(WSL)时访问网络应用程序的注意事项。适用于Linux的Windows子系统(WSL)中基本命令的参考。使用WSL访问网络应用程序|MicrosoftLearn。wsl2docker、cudatoolkit等安装。WSL的基本命令|MicrosoftLearn。子系统linux使用window网络代理、网络配置。wsl2Ubuntuminiconda安装。windows与子系统Linux文件访问。 阅读详情

先说个真实体验:我最初在 WSL2 Ubuntu 22.04 里配 NVIDIA 环境时,也习惯性地打开终端敲 apt install nvidia-driver-535 ,结果要么提示找不到包,要么装完在 WSL2 里 nvidia-smi 照样报 command not found。后来查了一圈才明白,WSL2 的 GPU 访问机制和双系统、虚拟机完全不一样,你以为你在“给 Linux 装驱动”,其实 WSL2 根本不需要也不应该这么干。这篇文章我会从驱动版本选择开始,把 WSL2 Ubuntu 22.04 里 NVIDIA 驱动和 CUDA 的完整安装过程、底层逻辑、以及我踩过的那些坑全部讲一遍。

这篇东西适合谁看?只要你想在 Windows 上的 WSL2 里跑 PyTorch、TensorFlow、Isaac Sim、CUDA C/C++ 程序,或者给 IDEA、VS Code 配 WSL2 开发环境,都值得先花五分钟搞懂驱动和 CUDA 到底落在哪一层。搞懂之后你会发现,真正要手动安装的其实只有 CUDA Toolkit,驱动反而是最不需要操心的一环。

1. 先想明白 WSL2 里的 GPU 到底是谁在管

很多人上来就翻车,原因是把 WSL2 当成了一台普通 Linux 虚拟机。实际上 WSL2 的 GPU 访问是特例中的特例,理解这一点,后面所有操作都不会跑偏。

1.1 WSL2 的 GPU 机制和普通虚拟机有什么区别

普通的 VMware、VirtualBox 虚拟机里,GPU 默认是虚拟显卡,想在虚拟机里用 NVIDIA GPU,得在虚拟机系统里再装一遍 NVIDIA 驱动,也就是“虚拟化层之上做 PCIE 穿透”。但 WSL2 不是走这条路的,它用的是一套叫做 GPU Paravirtualization 的机制,简单理解就是 Windows 上的 NVIDIA 驱动统一管理显卡,然后通过 /usr/lib/wsl/lib/ 这个目录把 GPU 计算能力“映射”给 WSL2 内的 Linux 系统。

这意味着你在 WSL2 里执行 nvidia-smi 时,实际上调用的是 Windows 侧驱动的动态库,而不是 Linux 侧自己装的驱动模块。所以三个关键结论:

  • WSL2 内不需要安装 Linux 版 NVIDIA 驱动;
  • Windows 侧驱动更新后,WSL2 里的 nvidia-smi 显示版本会跟着变;
  • 你在网上搜到的“Ubuntu 22.04 安装 nvidia 显卡驱动”教程,大多针对双系统或纯 Linux 环境,照搬到 WSL2 里是错的。

1.2 驱动、CUDA Driver、CUDA Toolkit 三者别搞混

我见过最典型的误解是把 CUDA 当成一个“安装包”,装完以为万事大吉。实际上 CUDA 体系是分层的,搞清楚这三层的关系,很多报错你会自己判断:

  • NVIDIA Driver(显卡驱动):最底层,负责管理硬件,包含一组 CUDA Driver;
  • CUDA Driver:驱动里自带的用户态运行时, nvidia-smi 里的 CUDA Version 指的就是它支持的 CUDA API 最高版本;
  • CUDA Toolkit:开发工具包,包含 nvcc 编译器、CUDA 数学库(cuBLAS、cuFFT)、头文件、以及 sample 源码,这才是我们需要在 Linux 里手动装的东西。

用生活类比就是:显卡驱动是“操作系统”,CUDA Driver 是“系统 API”,CUDA Toolkit 是“软件开发 SDK”。你在 WSL2 里做开发,需要的是 SDK,而不是重新装操作系统。所以后面我们的任务很简单:确认 Windows 驱动足够新,然后在 Ubuntu 22.04 里正确安装 CUDA Toolkit。

2. 动手前先把驱动和 CUDA 版本定下来

版本选择是所有坑里最隐蔽的一个,选错了要么 nvcc 编译不通过,要么 PyTorch 检测不到 GPU,但驱动本身没任何报错,排查起来特别耗时间。我建议按下面的顺序做决策。

2.1 先检查 Windows 侧驱动版本

在 Windows 的 PowerShell 或 CMD 里执行:

nvidia-smi

看输出顶部两行:

  • Driver Version:比如 550.54.15;
  • CUDA Version:比如 12.4。

这个 CUDA Version 表示当前驱动支持的最高 CUDA 运行时版本。比如它显示 12.4,那你装 CUDA 12.4 或更低版本(12.1、12.0)都完全没问题;如果显示 11.7,就别强行装 CUDA 12.x 的 Toolkit,因为驱动侧不兼容。

很多人问“4060 Ti 支持哪个 CUDA 版本”,其实显卡本身没有“支持 CUDA 12 还是 11”的说法,决定权在驱动。RTX 40 系列是 Ada Lovelace 架构,计算能力 8.9,至少需要 CUDA 11.8 以上才能完全发挥,我建议直接从 CUDA 12.x 起步。如果当前驱动太旧,建议从 NVIDIA 官网下载 Game Ready 或 Studio 驱动更新到 525 以上,实测 535、550、560 系列在 WSL2 里都很稳定。

2.2 根据实际需求倒推 CUDA 版本

这个思路很关键,不要为了“用最新版”而用最新版,要让工具链决定版本:

  • 跑 PyTorch:PyTorch 对 CUDA 12.1 支持非常成熟,官方安装命令直接可用,建议优先 12.1;
  • 跑 TensorFlow:TensorFlow 2.15 之后对 CUDA 12.x 支持良好,12.1 或 12.3 均可;
  • 跑 Isaac Sim / Omniverse:官方对 CUDA 12.1 有明确要求,需要搭配特定版本驱动;
  • 自己写 CUDA C/C++ 程序:没有第三方依赖,装 CUDA 12.4 或 12.6 随便选,越新特性越多;
  • 老项目维护:如果项目是在 CUDA 11.7 上做的,那就乖乖装 11.7,升级 CUDA 可能导致 cuDNN、OpenCV 等第三方库全部重编。

我自己的方案是安装 CUDA 12.1,既能满足 PyTorch 官方预编译包的依赖,也能跑大部分 Isaac Sim 需求。如果以后需要别的版本,多版本共存也没有问题,后面我会讲切换方法。

2.3 驱动和 CUDA 的兼容关系速查表

这里给一个常用对照,主流的 Windows 驱动版本和可安装 CUDA Toolkit 版本关系大致如下,注意“更高版本驱动可以向下兼容安装更低版本 Toolkit,但反之不行”:

Windows NVIDIA 驱动 最大支持的 CUDA Toolkit 适用场景
525.xx 系列 CUDA 12.0 WSL2 可用,偏旧
535.xx 系列 CUDA 12.2 比较稳定,跑 12.1 没问题
545.xx 系列 CUDA 12.3 中规中矩
550.xx 系列 CUDA 12.4
wsl2 ubuntu子系统安装显卡驱动与cuda 执行nvidia-smi命令查看英伟达显卡信息,如果没有安装驱动会提示安装,开始安装默认源里面的最新版。安装ubuntu 命令:wsl --install -d Ubuntu-22.04。再次执行nvidia-smi 命令看是否能看到显卡信息,如何能看到则安装成功。安装命令:apt install nvidia-utils-535。列出可安装的子系统 命令:wsl --list --online。执行nvcc -V 能看到版本信息说明安装成功。选好后下面会提供安装方法一条一条执行即可。 阅读详情

相关推荐

Win10+WSL2+Ubuntu22.04安装Lammps+GPU+Python

Win10 子系统WSL-2安装可以调用python和gpu加速的lammps

apathiccccc的博客 3225

WSL安装Ubuntu22.04,以及深度学习环境的搭建

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。计算机需要虚拟化功能才能使用此功能。下载 Linux 内核更新包:l链接:下载完成后更新。打开 Microsoft Store,搜索WSL,选择你偏好的 Linux版本。我选择的是Ubuntu22.04版本。点进去就可以看到下载链接下载即可。下载完成后,启动系统,配置用户名和密码。输入nvidia-smi。

m0_47867638的博客 3122

WSL2 Ubuntu 22.04安装NVIDIA驱动避坑指南:从驱动版本选择到CUDA环境验证

本文详细介绍了在WSL2 Ubuntu 22.04中安装NVIDIA驱动和配置CUDA环境的完整流程,包括驱动版本选择、环境变量设置以及常见问题解决方案。通过本指南,用户可以避免常见的安装陷阱,确保GPU加速环境正确配置,适用于深度学习开发和CUDA编程。

weixin_28419039的博客 461

WSL 安装 NVIDIA显卡驱动

最近在研究一些 AIGC 工具,由于 Windows 加入了 WSL 之后的各种特性,本文记录一下如何在 WSL 的 Linux发行版 中安装 NVIDIA 显卡驱动的步骤,本文以 WSL 下的 Ubuntu 22.04 发行版为例;

小白的博客 3501

Windows WSL Ubuntu 22.04 安装 vLLM 支持 50 系显卡CUDA

本文详细介绍了在Windows WSL Ubuntu 22.04中安装vLLM以支持50系显卡的步骤。主要内容包括:确认WSL和CUDA版本、安装NVIDIA CUDA Toolkit 12.8、配置环境变量、检查GPU识别、性能优化设置、创建Python虚拟环境、安装PyTorch和uv工具,最后通过vLLM运行DeepSeek-R1-Distill-Qwen-1.5B模型进行验证。文中提供了完整的命令行操作指南,并附有国内软件源配置和模型下载的优化建议,确保国内用户能够顺利完成安装和使用。

calmpurp的博客 1505

告别环境冲突:在WSL2 Ubuntu 22.04上为PyTorch配置CUDA 12.2的完整指南

本文提供了在WSL2 Ubuntu 22.04上为PyTorch配置CUDA 12.2的完整指南,涵盖环境准备、兼容性验证、CUDA Toolkit安装与配置、PyTorch集成验证及故障排除。通过详细步骤和实用技巧,帮助开发者避免环境冲突,打造稳定高效的深度学习开发环境。

weixin_30572613的博客 645

WSL2 Ubuntu 22.04下CUDA Toolkit 12.3安装避坑指南(附环境变量配置)

本文详细介绍了在WSL2 Ubuntu 22.04环境下安装和配置CUDA Toolkit 12.3的完整指南,包括系统要求、WSL2环境搭建、CUDA安装步骤、环境变量配置以及常见问题解决方案。通过本指南,开发者可以高效搭建GPU加速开发环境,避免常见安装陷阱,提升深度学习开发效率。

weixin_33712987的博客 469

ADB详细(从下载安装到灵活运用)

ADB(Android Debug Bridge)是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。可以在Android SDK/platform-tools中找到 adb 工具或下载ADB Kits。

LiuYong_01的博客 10万+

STM32以太网通信-STM32以太网外设(ETH)

通过 DMA 控制器进行介质访问控制 (MAC) STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。 ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于

暖暖_的_纠结的博客 2万+

在Cursor IDE中集成Datadog监控:自然语言查询实战指南

在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台

weixin_42519772的博客 345

四自由度SCARA机器人的运动学和动力学MATLAB建模与仿真

本文介绍了四自由度SCARA机器人的运动学和动力学建模,使用MATLAB进行了相应的建模与仿真。通过正运动学和动力学分析,可以了解机器人在不同状态下的运动特性和力学特性。这为后续的控制算法设计和性能优化打下了基础。希望本教程对学习SCARA机器人有帮助。

小蜗牛的珍贵百宝箱 3634

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 981

Unity零基础到进阶 | Unity中的内存泄漏全解析,原因、排查及避免

Unity 内存泄漏并非传统C++语境中的野指针或未释放堆内存,而是基于其「托管内存(C#)+ 原生内存(引擎/非托管)」双架构的特殊问题——即已废弃、不再被业务逻辑使用的内存块,无法被引擎或系统自动回收,持续占用内存空间,最终引发内存暴涨、GC卡顿、OOM(内存溢出)崩溃,其中移动端、主机端受影响最显著。 Unity 内存主要分为三类,其中泄漏仅发生在前两类,栈内存因系统自动分配/释放,无泄漏风险:

努力前行,总会成为自己心中的那道光 1万+

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8285

mjlab & MimicKit 宇树 G1 人形机器人强化学习训练部署

基于mjlab框架训练Unitree G1人形机器人执行双旋踢的示例。参考动作源自Jason Peng的MimicKit项目。数据转换脚本(MimicKit pkl → mjlab csv)完整训练结果与超参数预训练ONNX检查点用于部署实体硬件部署指南⚠️ 免责声明仅用于教育目的。对于因尝试复现此处展示结果而导致的财产损失或人身伤害,我们概不负责。操作硬件时请谨慎行事并保持良好判断力。

2506_90492529的博客 1699

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: PX4+ROS2画圆实战:从数学公式到可执行轨迹的完整链路
下一篇: Carla自动驾驶仿真环境搭建与Python API实战指南
weixin_34007906
博客等级 码龄11年 7376粉丝 1255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值