WSL2安装Ubuntu22.04并开启GPU进行ML学习教程

news/2024/11/18 15:44:57/

文章目录

    • 一 启用 WSL2
    • 二、安装 Ubuntu
    • 三 安装 NVIDIA GPU 驱动和 CUDA 工具
    • 四、安装pytouch运行环境

这几天一直在研究下,怎么在笔记本win11电脑上安装linux系统用于机器学习、深度学习、大模型等相关的研究,前面试了VMWARE、HYPER-V等方式,发现要通过显卡虚化方式,直接调用笔记本独立显卡RTX4060都非常复杂。最后还是选定win11自带的WSL2的方式,部署linux子系统,发现此种方式非常简单,特别在windows和linux交互便利性上,远超vmware和hyper-V,后续会介绍vscode集成wsl方式等,本文介绍下wsl2启用、安装ubuntu、开启GPU及pytouch的过程​。

WSL2(Windows Subsystem for Linux 2)是微软在Windows系统中提供的一种工具,它允许用户在Windows上原生运行完整的Linux内核,从而实现更高效的Linux与Windows系统的兼容和集成。为了进行大模型及相关DSML学习,借助WSL2安装linux系统,并在linux使用显卡进行训练加速,相关配置方法记录。

一 启用 WSL2

首先需要在 Windows 上启用 WSL2。
步骤如下:

  1. 启用 WSL 功能:
    • 右键点击“开始”菜单,选择“Windows PowerShell (管理员)”或“终端 (管理员)”。
    • 输入以下命令启用 WSL 和虚拟机功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

以上也可以通过启用关闭windows功能选项进行操作,如下截图中红框的几项勾选好,确定重启系统
启用关闭win功能
选择

  1. 设置 WSL2 为默认版本:
    在 PowerShell 中输入以下命令,将 WSL 2 设置为默认的 WSL 版本:
wsl --set-default-version 2
  1. 安装 Linux 内核更新包:
    wsl --update4. 重启系统

二、安装 Ubuntu

在 WSL2 环境中安装 Ubuntu。
步骤如下:

  1. 在 Microsoft Store 中安装 Ubuntu:
    ◦ 打开 Microsoft Store,搜索“Ubuntu”并选择想要安装的版本(如 Ubuntu-24.04)。
    ◦ 点击获取,等待安装完成即可。
  2. 配置 Ubuntu:
    ◦ 安装完成后,打开 Ubuntu 应用,等待初始化过程。
    ◦ 按提示设置用户名和密码,配置完成后就可以使用 Ubuntu 了

也可在powershell中通过如下命令进行安装(可能需要开梯子)

# 查看包含所有可用发行版和版本的输出
wsl --list --online
# 选择合适的版本进行安装,这里安装的是Ubuntu-24.04
wsl --install -d Ubuntu-24.04

1
2
查看安装进度,安装完成后,通过如下命令查看安装版本

wsl -l -v

添加新用户和密码,即可进入ubuntu终端,退出直接输入exit即可返回powershell

如果要打开 Ubuntu 24.04 终端,请在 PowerShell 中运行以下命令:
ubuntu2404.exe
最好通过在 Ubuntu 终端中运行以下命令来安装最新更新,并在出现提示时输入密码:

$ sudo apt update
$ sudo apt full-upgrade -y

系统升级前,请把系统源替换为国内源,参照:

https://blog.csdn.net/v997282418/article/details/140105030

如果后续要卸载ubuntu,可通过如下命令进行卸载

# 停止 WSL 实例
wsl --shutdown
# 查看已安装的 Linux 发行版: 列出当前已安装的 WSL 发行版:
wsl --list --verbose
# 卸载 Ubuntu: 找到要卸载的 Ubuntu 发行版的名称,然后运行以下命令进行卸载:
wsl --unregister Ubuntu-24.04

三 安装 NVIDIA GPU 驱动和 CUDA 工具

  1. 检查显卡驱动
    为了让 RTX 4060 GPU 在 WSL2 中用于深度学习,需要安装 NVIDIA 驱动和 CUDA 工具包
    注意:在系统上安装 NVIDIA GeForce Game Ready这是您要安装的唯一驱动程序。不要在 WSL 中安装任何 Linux 显示驱动程序。
    GetForce Experience查看自己是否已经安装了NVIDIA GeForce Game Ready,我的宿主机已经安装了相关驱动,因此不需要再安装,可以在ubuntu下输入如下命令进行验证显卡在unbuntu上是否正常
nvidia-smi

我的直接弹出:
1
说明显卡已经正常加载
如果未安装,可通过如下链接选择显卡并下载GeForce Game Ready版本的驱动
https://www.nvidia.cn/drivers/lookup/
2
2. 安装CUDA Toolkit
输入nvidia-smi,找到CUDA Version,我的是12.4,注意选择的CUDA Toolkit一定不能超过cuda的版本,可参照官网的对照表,下载对应的安装包进行安装,下载链接如下:

https://developer.nvidia.com/cuda-toolkit-archive

版本选择:12.4.0,下载选项如下:
1
选择完成后,会生成下载的命令,在ubuntu下执行命令即可完成相关安装。

# 下载安装包
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
# 安装
sudo sh cuda_12.4.0_550.54.14_linux.run

安装完成后通过nvcc -V命令验证是否安装成功,如果提示命令未找到,修改如下环境变量,把命令路径加入环境变量
执行命令:vim ~/.bashrc
末尾插入如下内容:

export PATH=/usr/local/cuda/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH

执行命令:source ~/.bashrc
之后正常即可运行命令:nvcc -V

四、安装pytouch运行环境

  1. python虚拟运行环境搭建
    通过如下命令,安装Anaconda3
# 下载Anaconda3,这里选择了最新的conda版本
wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
# 安装
bash Anaconda3-2024.06-1-Linux-x86_64.sh -p /home/wangdenuan/apps/anaconda3

输入conda -V查看当前版本
构建python的虚拟环境,这里需要对照pytorch\python的版本对应关系,命令如下:

conda create -n py_gpu python=3.12

执行命令:conda env list,查看创建的虚拟环境
2. 安装pytouch环境
执行如下命令切换到缓冲环境py_gpu:conda activate py_gpu
从下面链接配置pytouch,得到conda安装命令:

https://pytorch.org/get-started/locally/

1
在ubuntu终端下运行安装命令:

conda install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia

检查 PyTorch 是否正确安装,是否正常启用GPU
在终端下输入:

# 启动python
python
import torch
print(torch.cuda.is_available())
print(torch.cuda.current_device())
print(torch.cuda.get_device_name(0))

验证结果如下:
1


http://www.ppmy.cn/news/1548021.html

相关文章

重构代码之删除对参数的赋值

删除对参数的赋值 是一种重构技术,旨在消除对方法参数的重新赋值。这种实践可以增强代码的可读性和维护性,避免潜在的副作用。以下是详细讲解: 一、动机 保护参数的意图:方法参数通常表示传入数据或状态。如果重新赋值&#xff…

[BSidesCF 2019]SVGMagic

打开题目 给了提示&#xff0c;使用魔法将svg转换成png&#xff0c;搜索了一下svg 是一种XML标记语言&#xff0c;既然是XML&#xff0c;就可能存在XXE漏洞 构造一个XML外部实体注入&#xff08;XXE&#xff09;攻击&#xff0c;尝试一下 <!ENTITY file SYSTEM "file…

IPv6 NDP 记录

NDP&#xff08;Neighbor Discovery Protocol&#xff0c;邻居发现协议&#xff09; 是 IPv6 的一个关键协议&#xff0c;它组合了 IPv4 中的 ARP、ICMP 路由器发现和 ICMP 重定向等协议&#xff0c;并对它们作出了改进。该协议使用 ICMPv6 协议实现&#xff0c;作为 IPv6 的基…

后台运行docker compose项目,一直失败,提示:Timeout exceeded while awaiting headers?让我来看看~

最近做实验&#xff0c;后台运行docker compose 项目的时候&#xff0c;一直做不下去&#xff0c;卡了好几天。提示是这样的&#xff1a; Get "https://registry-1.docker.io/v2/": net/http: reguest canceled while waiting for connection (client.Timeout exceed…

Python 第三方库 PyQt5 的安装

目录 前言 PyQt5安装 不同操作系统PyQt5安装 一、Windows 系统 二、macOS 系统 三、Linux 系统&#xff08;以 Ubuntu 为例&#xff09; 安装 PyQt5 可能会遇到的问题 一、环境相关问题 二、依赖问题 三、网络问题 四、安装工具问题 五、运行时问题 六、环境配置问…

单电源运放

我们经常看到很多非常经典的运算放大器应用图集&#xff0c;但是他们都建立在双电源的基 础上&#xff0c;很多时候&#xff0c;电路的设计者必须用单电源供电&#xff0c;但是他们不知道该如何将双电源 的电路转换成单电源电路。 在设计单电源电路时需要比双电源电路更加小…

大语言模型的算力共享体系中,Reduce、LayerNorm和Broadcast操作

目录 大语言模型的算力共享体系中,Reduce、LayerNorm和Broadcast操作 示例说明 1. 前向传播与梯度计算 2. All-Reduce操作(包含Reduce和Broadcast-like阶段) 3. LayerNorm的应用 示例中的顺序 结论 大语言模型的算力共享体系中,Reduce、LayerNorm和Broadcast操作 在…

计算机的错误计算(一百五十七)

摘要 探讨 MATLAB 中多项式的计算误差。 例1. 已知 计算 与 直接贴图吧&#xff1a; 另外&#xff0c;两个多项式的准确值分别为 7.13 与 4&#xff08;ISRealsoft 提供&#xff09;。这样&#xff0c;MATLAB 的输出均是错误的。 注&#xff1a;可参考计算机的错误计算&am…