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

文章目录

    • 一 启用 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.xdnf.cn/news/15665.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

用 Python 从零开始创建神经网络(七):梯度下降(Gradient Descent)/导数(Derivatives)

梯度下降(Gradient Descent)/导数(Derivatives) 引言1. 参数对输出的影响2. 斜率(The Slope)3. 数值导数(The Numerical Derivative)4. 解析导数(The Analytical Derivat…

Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件

本文将介绍一种手动的轻量级的方式,还原HTTP/TLS协议中传输的文件,为流量数据包中的文件分析提供帮助。 如果捕获的数据包中存在非文本类文件,例如png,jpg等图片文件,或者word,Excel等office文件异或是其他类型的二进…

Java结合ElasticSearch根据查询关键字,高亮显示全文数据。

由于es高亮显示机制的问题。当全文内容过多,且搜索中标又少时,就会出现高亮结果无法覆盖全文。因此需要根据需求手动替换。 1.根据es的ik分词器获取搜索词的分词结果。 es部分: //中文分词解析 post /_analyze {"analyzer":"…

一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Fei Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。* 这一节我们主要来学习scanf的基本用法,了解scanf返回值,懂得scanf占位符和…

Kafka一些常用的命令行操作【包含主题命令、生产者和消费者命令】

文章目录 1、主题命令2、生产者命令行操作3、消费者命令行操作 1、主题命令 查看当前服务器中的所有 topic: kafka-topics.sh --bootstrap-server node01:9092 --list 创建topic: kafka-topics.sh --bootstrap-server node01:9092 --create --topic to…

基于物联网的温室大棚控制系统

本设计采用物联网方案,用STM32f103c8t6作为主控芯片,采用DHT11作为温湿度传感器,采集CO2使用JW01-CO2-V2.2传感器模块,并且通过BH1750传感器模块采集光照,通过土壤湿度传感器来获取大棚内部土壤湿度,ESP-01…

Ubuntu24安装配置NDK

1、下载NDK 下载压缩包,下载地址如下,建议下载LTS支持版本。 https://developer.android.google.cn/ndk/downloads?hlcs 2、解压缩 将NDK解压到指定文件夹。如:/opt 或者先解压,再移动到指定目录下。 3、配置环境变量 找到…

Python中的HTML

文章目录 一. HTML1. html的定义2. html的作用3. 基本结构4. 常用的html标签5. 列表标签① 无序列表② 有序列表 6. 表格标签7. 表单标签8. 表单提交① 表单属性设置② 表单元素属性设置 一. HTML 1. html的定义 HTML 的全称为:HyperText Mark-up Language, 指的是…

使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据

想操作MySQL等关系型数据库的可以访问我上一篇文章,本章主要介绍操作Hadoop等大数据组件。 根据2024年11月份测试了kettle工具在9.3及以上版本已经没有内置连接大数据(如Hadoop)组件了。 建议安装9.2及以下的,我这里送上8.3.0版本的请用百度网盘下载链…

NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势

随着信息技术的快速发展和数字化时代的到来,安防监控领域也在不断进行技术创新和突破。NVR管理平台EasyNVR作为视频汇聚技术的领先者,凭借其强大的视频处理、汇聚与融合能力,展现出了在安防监控领域巨大的应用潜力和价值。本文将详细介绍Easy…

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日,贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判,判处其死刑,剥夺政治权利终身,并处没收个人全部财产。这一判决不仅彰显了法律的威严,也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…

游戏引擎学习第10天

视频参考:https://www.bilibili.com/video/BV1LyU3YpEam/ 介绍intel architecture reference manual 地址:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html RDTS(读取时间戳计数器)指令是 x86/x86_64 架构中的…

Asp.net Mvc 电脑销售系统

2 系统实现 2.1 系统框架 该服务平台采用三层架构,以ASP.NET MVC框架为基础 [6]。采用仓库设计的方法,布署灵便。.NET Framework是一个开源框架,适用混合开发。系统软件的集成开发工具是Visual Studio 2019。在数据库的开发中,利…

A3超级计算机虚拟机,为大型语言模型LLM和AIGC提供强大算力支持

热门大语言模型项目地址:www.suanjiayun.com/mirrorDetails?id66ac7d478099315577961758 近几个月来,我们目睹了大型语言模型(LLMs)和生成式人工智能强势闯入我们的视野,显然,这些模型在训练和运行时需要…

无人机飞手在保家卫国上重要性技术详解

无人机飞手在保家卫国方面发挥着越来越重要的作用,其重要性技术主要体现在以下几个方面: 一、无人机操作与维护技能 无人机飞手在入伍前通常已接受了系统的无人机操作培训,掌握了无人机的飞行原理、构造、维护保养以及多种飞行技巧。这种专…

数据结构--java对象的比较

目录 三种方法的比较 equals方法 Comparable.compareTo方法 执行比较 Comparator.compare方法 连接比较 Comparator和Comparable的区别 三种方法的比较 equals方法 将基本数据类型包装成对应的包装类(如Integer、Double)进行比较 Comparable.compareTo方法 执…

yakit远程连接(引擎部署在vps上)

yakit的框架其实是类似于cs的主体是服务端,客户端只是一个简单的ui方便操作,同时他也提供了本地连接,平时使用还是本地连接的使用方式多,但在实际场景中服务端部署在vps上面会更加的方便,比如启动监听,使用…

实验二:Docker存储配置与管理

容器与非持久化数据 非持久化数据是不需要保存的那些数据,容器本地存储中的数据就属于这种类型。容器创建时会创 建非持久化存储,这是容器全部文件和文件系统保存的地方。 默认情况下,在容器内创建的所有文件都存储在可写容器层&#xff0c…

Java 日志框架(一)

1、Java 日志框架 问题: 控制日志输出的内容和格式控制日志输出的位置面向接口开发 —— 日志的门面(类似 JDBC) 1.1、现有的日志框架 1.1.1、日志门面 JCL、slf4j 1.1.2、日志实现 JUL、logback、log4j、log4j2 2、JUL JUL 全称是 …

i春秋-GetFlag(HTTP请求方法使用,XXF伪造ip)

练习平台地址 竞赛中心 题目描述 题目内容 一打开就是一Not Found,以为是服务器挂了 解题 在页面中发现了404.php,尝试访问 在页面源码和headers中没有发现有用信息 返回去看首页的headers有没有信息 发现首页的响应头中有个奇怪的X-Method&#xf…