使用 WSLg 的 vGPU 硬件加速新特性创建重度混合生产环境

news2025/2/26 5:50:38

使用 WSLg 的 vGPU 硬件加速新特性创建重度混合生产环境

本文首发于:白泽阁-使用 WSLg 的 vGPU 硬件加速新特性创建重度混合生产环境

一、不同版本的WSL

Windows Subsystem for Linux(简称WSL)是一个在 Windows 10\11 上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。

到目前为止 WSL 可分为 WSL1 和 WSL2 两代,其中 WSL1 代类似 Cygwin,是使用Windows 的 API 重写了一份 Linux 的 API,没有关机概念,无法使用 systemd、docker 等运行常驻服务;而 WSL2 是基于 Hyper-V 的完整虚拟机,支持 systemd、docker 等在内的常驻服务运行;最新的 WSLg 是 Windows Subsystem for Linux GUI 的缩写,该项目的目的是支持在 Windows 上以完全集成的桌面体验运行 Linux GUI 应用程序(X11 和 Wayland)。
WSLg 的 Firefox 和 Windows 下的 Firefox简单的来说 WSLg 可以让你直接在 Windows 的桌面环境下直接运行 Linux 下的 GUI 应用,共享 Windows 的桌面,只到这一步的话,WSL 系可能还是偏向玩具+轻量级的混合生产环境,但是,最最最最新的更新,WSLg(WSL2)已支持 vGPU,可以直接调用物理宿主机的显卡。这下性质真的变了,你可以在主操作系统为 Windows 的情况下,使用 WSL2 来跑 Linux 下的重度生产环境。属实是工作生活双平衡了(bushi)。

二、WSL2 安装 + 桌面环境部署

WSL2 的安装方法和 WSL1 一致,使用 控制面板→程序和功能→启用或关闭 Windows 功能,按下图勾选 Hyper-V、适用于 Linux 的 Windows 子系统、虚拟机平台 三个选项(Hyper-V 在列表上方图没截进去)。
安装 WSL
安装完毕后按要求进行重启,之后先以管理员身份运行以下命令:

# 设定WSL版本为WSL2
wsl --set-default-version 2
# 升级WSL组件
wsl --update
# 安装 Ubuntu-20.04 发行版
wsl --install -d Ubuntu-20.04

至此 WSL2 已安装完毕,在开始菜单中找到 Ubuntu20 启动或者在任何 CMD、Powershell中键入 bash 命令即可进入 WSL2 的 Ubuntu20 环境。接下来使用以下命令安装 Ubuntu 的桌面环境:

sudo apt-get update
sudo apt-get install ubuntu-desktop

安装完毕后会发现开始菜单中多了很多图标带有 Linux 小企鹅标志的的程序快捷方式,名字也带有 “(Ubuntu 20)” 的标记,这些就是 WSLg 的启动方式了。

WSLg 快捷方式

三、vGPU 的使用

其实在 WSLg 之前,可以使用 Hyper-V 的 DDA 功能将物理机的 GPU 直接分配给虚拟机使用,来实现虚拟化的生产环境。但是使用 DDA 也存在几个问题:

  1. 无论是通过 DDA 挂载还是释放,都需要非常复杂的纯命令行设置,需要手动计算、分配内存的可用大小
  2. 通过 DDA 分配给虚拟机时,宿主机必须断开与 GPU 的访问,即宿主机和虚拟机无法同时访问 GPU

而现在可就方便多了,首先确定 Windows 10/11 的系统版本已为最新,同时安装最新的显卡驱动,vGPU 的配置就已经自动完成了。在 Linux 的环境下可以直接使用 nvidia-smi 命令来查看 GPU 状态,非常丝滑和离谱。CUDA is Ready!

在 WSL 中查看 GPU 状态
实测此时直接使用 Firefox 等浏览器还无法直接播放视频,但是使用 sudo apt-get install vlc 命令安装完 vlc 播放器和相关的解码依赖后,就可以愉快地直接在 Firefox 中使用硬件解码来播放4K视频了。

使用 WSLg 的Firefox 播放 4K 视频
至此相关配置全部完成,按照正常的 Linux 环境来用即可。当然,也许有人要问,那我直接用 Linux 不就好啦。但是实际生产过程中,总是会遇到 “如果我用的是 Windows/Linux 系统就好了” 这种情况。混合生产环境的最大优势就是在于,可以同时使用 Windows 和 Linux 系统下最好的工具,互相配合,甚至可以在 Windows 环境下通过先调用 cmd 再启动 bash 然后通过标准输入输出来整合两个环境的工具,形成工作流。

个人觉得,很多时候,决定工具上限的不是工具本身,而是使用者的技术上限和技术边界。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027439.html

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

相关文章

c语言练习64:calloc和realloc

calloc和realloc C语⾔还提供了⼀个函数叫 calloc &#xff0c; calloc 函数也⽤来动态内存分配 和realloc是有区别的 练习使用calloc和realloc realloc在c语言练习63中有所应用&#xff0c;realloc是为了扩大内存空间 下面为calloc和recalloc的例子代码: #include<stdio…

肖sir___环境的讲解__001

环境的讲解 一、搭建环境 此测试环境主要用于功能测试、寻找bug、编写后台测试点、熟悉环境的架构&#xff0c;搭建流程 二、搭建多有米前后台所需要的工具包 1、虚拟机&#xff08;centos6.5&#xff09; 2、数据库 3、代码包 4、服务器 5、数据库脚本 6、jdk 三、搭建测试…

【简洁】【皮肤美化】博客园页面美化 主文章加宽

效果&#xff1a; 选择&#xff1a;Bluesky皮肤 再加入的css: #home {background-color: #e6e6e6; } #top_nav{ background-color: #e6e6e6; } #navigator, #under_post_card1, #ad_t2 , #nav_right, #nav_left, #cnblogs_c1, #under_post_card2, #HistoryToday, #green_chann…

持续集成Jenkins安装部署

Jenkins是一个在DevOps领域中、支持CI/CD&#xff08;持续集成/持续交付&#xff09;过程域的开源项目&#xff0c;其提供可扩展插件的支持&#xff0c;以自动化的机制对项目工程执行打包、编译、构建、测试以及最终发布到目的地服务器并成功部署运行&#xff0c;本文主要描述J…

HR对职业发展进行思考

如果你还没有职业发展方面的思考&#xff0c;请不要怪自己&#xff0c;这很正常。没有谁是一开始就会如此清晰理性地对职业发展进行思考。 笔者对职业发展有关话题进行系统性的思考&#xff0c;得益于两本书&#xff1a; 第一本是哈佛大学泰勒本-沙哈尔教授的《幸福的方法》&…

Git(10)——Git多人协同开发之邀请成员

一、简介 本篇文章接着第九章介绍Git多人协同开发如何邀请成员 二、创建dev分支 前面已经提到master只用于上线正式代码&#xff0c;因此需要创建一个专门用于开发的dev分支 ①使用如下命令创建dev分支并切换到dev分支 git checkout -b dev ②将dev分支上传至远端仓库&…

Redis分布式锁及其常见问题解决方案

Redis 是一种内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息代理。由于其高性能和灵活的数据结构&#xff0c;Redis 被广泛应用在各种场景中&#xff0c;包括实现分布式锁。 分布式锁是一种在分布式系统中实现互斥访问的技术。在许多实际应用场景中&#x…

MyBatis基础之执行SQL

文章目录 执行 SQL 语句1. 增删改操作insert 元素insert 过程中的主键回填delete 元素 和 update 元素 2. getMapper 方法3. 查操作select 元素select 与 聚合函数 4. 传递多个参数使用 Map 传递多参数使用 JavaBean 传递多参使用注解方式传递多参数 执行 SQL 语句 Mapper 是 …

1999-2018年地级市一般公共预算收入、支出(教育事业费、科技支出)

1999-2018年地级市一般公共预算收入、支出&#xff08;教育事业费、科技支出&#xff09; 1、时间&#xff1a;1999-2018年 2、来源&#xff1a;城市年鉴 3、指标&#xff1a;行政区划代码、城市、年份、地方一般公共预算收入_市辖区_万元、地方一般公共预算支出_市辖区_万元…

云效+主机部署解决方案(需求->开发->测试->发布->运维->运营)

文章目录 引言I Maven相关1.1 阿里云私有仓库-迁移本地仓库至私有仓库II 代码管理2.1 初始化仓库脚本2.2 分支模式:分支开发、主干发布“的模式III 集成3.1 开启分支模式IV 创建阿里云子账号(RAM)V 安全组端口访问规则配置IV 阿里云的日志服务 SLSsee also引言 Flow语言专项…

性能测试 —— Tomcat监控与调优:status页监控

Tomcat服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;Tomcat是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun 和其他一些公司及个人共同开发而成。 Tomcat是一个轻量级应用服务器&#xff0c;在中小型系统…

1787_函数指针的使用

全部学习汇总&#xff1a;GitHub - GreyZhang/c_basic: little bits of c. 前阵子似乎写了不少错代码&#xff0c;因为对函数指针的理解还不够。今天晚上似乎总算是梳理出了一点眉目&#xff0c;在先前自己写过的代码工程中做一下测试。 先前实现过一个归并排序算法&#xff0c…

Java并发编程第8讲——ThreadLocal详解

ThreadLocal无论是在项目开发还是面试中都会经常碰到&#xff0c;它的重要性可见一斑&#xff0c;本篇文章就从ThreadLocal的使用、实现原理、核心方法的源码、内存泄漏问题等展开介绍一下。 一、什么是ThreadLocal ThreadLocal是java.lang下面的一个类&#xff0c;在JDK 1.2版…

植隆业务中台与金蝶云星空对接集成服务工单查询接口连通应收单新增(6202-开票申请(代理商-销售类))

植隆业务中台与金蝶云星空对接集成服务工单查询接口连通应收单新增(6202-开票申请&#xff08;代理商-销售类&#xff09;) 数据源系统:植隆业务中台 承载了企业核心关键业务&#xff0c;是企业的核心业务能力&#xff0c;也是企业数字化转型的重点。业务中台的建设目标是&…

网络爬虫-----http和https的请求与响应原理

目录 前言 简介 HTTP的请求与响应 浏览器发送HTTP请求的过程&#xff1a; HTTP请求主要分为Get和Post两种方法 查看网页请求 常用的请求报头 1. Host (主机和端口号) 2. Connection (链接类型) 3. Upgrade-Insecure-Requests (升级为HTTPS请求) 4. User-Agent (浏览…

原生js之script基本属性

async:异步执行脚本 defer:延迟脚本下载 src:要执行的代码外部文件地址 noscript:表示浏览器不支持或拒绝支持script脚本时出现的内容 async和defer async和defer本质都是为了让脚本推迟到整个页面解析后再下载&#xff0c;不同的是async是异步无序的&#xff0c;而defer是同…

基于微信小程序的在线小说阅读系统,附数据库、教程

1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统&#xff0c;系统的整体功能需求分为两部分&#xff0c;第一部分主要是后台的功能&#xff0c;后台功能主要有小说信息管理、注册用户管理、系统系统等功能。微信小程序主要分为首页、分类和我的…

【开发】视频监控系统/视频汇聚平台EasyCVR对国标类型编码进行判断的实现方式

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理&#xff0c;支持多类型设备、多协议方式接入&#xff0c;具体包括&#xff1a;国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome&#xff0c;以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等&#x…

利用免费的敏捷研发管理工具管理端到端敏捷研发流程

Leangoo领歌是Scrum中文网&#xff08;scrum.cn&#xff09;旗下的一款永久免费的敏捷研发管理工具。 Leangoo领歌覆盖了敏捷研发全流程&#xff0c;它提供端到端敏捷研发管理解决方案&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷SAFe&#xff0c;Scrum of Scrums…

进一步观察扩散模型中的参数有效调整

摘要&#xff1a; 像Stable diffusion[31]这样的大规模扩散模型非常强大&#xff0c;可以找到各种真实世界的应用程序&#xff0c;而通过微调来定制这样的模型会降低内存和时间的效率。受自然语言处理最新进展的推动&#xff0c;我们通过插入小型可学习模块adapters(称为适配器…