虚拟机使用主机显卡(hyper-v和WSL2)

2023-05-16

    • 我的系统版本
    • WSL2+Ubuntu20.04+CUDA
        • 启用WSL2+安装Ubuntu20.04
    • 主机安装WSL Cuda显卡驱动
    • WSL2 Ubuntu安装cuda和cudnn
        • cuda
        • cudnn
        • 安装TensorFlow
        • 使用自带测试程序
        • 测试keras训练模型
        • 参考链接
    • hyper-v+win10
        • 准备iso镜像
        • 使用hyper-v安装win10系统
        • 使用脚本配置GPU-Pv
        • 显卡驱动
    • hyper-v安装ghost备份文件
        • 创建虚拟机
        • 新建一个硬盘
        • 接着将这个硬盘添加到虚拟机里
        • 分区然后还原系统
        • 将DVD驱动器移除
        • 参考链接

我的系统版本

我更新到了最新的版本,这样可以避免很多不必要的麻烦。
在这里插入图片描述

WSL2+Ubuntu20.04+CUDA

启用WSL2+安装Ubuntu20.04

这个很简单,请看:https://blog.csdn.net/RenLJ1895/article/details/122741040

主机安装WSL Cuda显卡驱动

在最新的显卡驱动都已经包含了WSL Cuda驱动,所以显卡驱动已经更新到最新版本,就不用重新安装了。另外:WSL2的Ubuntu系统里不需要再安装任何显卡相关的驱动

我的显卡驱动版本
在这里插入图片描述

WSL2 Ubuntu安装cuda和cudnn

cuda

这个和再Ubuntu安装没有多大的区别,CUDA安装的命令查看地址:https://developer.nvidia.com/cuda-toolkit-archive

我选择的版本是11.6.0,接着再Ubuntu里面一个一个敲下面的命令等待安装完成。

在这里插入图片描述
更新~/.bashrc文件

#把这三行复制到文件底部
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#更新一下bashrc文件
source ~/.bashrc
 
#更新一下可能需要的依赖
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
 
#用以下代码检查cuda是否检查成功,注意此处的cuda版本是你在toolkit下载那里决定的,这个版本可能和nvidia-smi显示的版本号不一样,可高可低,这是因为nvidia给cuda开了两个api,这两个api只要差不是太远,基本都可以保证正常运行cuda
nvcc -V

在这里插入图片描述
ubuntu中的nvidia-smi目录再/usr/lib/wsl/lib/nvidia-smi,可以建个软链接到/usr/local/bin下,也可以将这个目录加到环境变量里,任何执行nvidia-smi(这里识别出cuda版本是11.7应该是主机的版本,这个不重要)
在这里插入图片描述

cudnn

下载地址:https://developer.nvidia.com/rdp/cudnn-archive (需要登录,下载最新的11.x, 其实就是11.6)
在这里插入图片描述
解压到cuda安装目录

#以下是安装命令
tar -zxvf cudnn-自己补全版本号.tgz
sudo cp -P cuda/lib64/* /usr/local/cuda-11.6/lib64/
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.6/include/
 
#为更改读取权限:
sudo chmod a+r /usr/local/cuda-11.6/include/cudnn.h
sudo chmod a+r /usr/local/cuda-11.6/lib64/*

安装TensorFlow

我选择的是tensorflow-gpu==2.8.1, 因为2.0以后的TensorFlow自带了keras,直接import tensorflow.keras即可。所以不用额外安装了。

使用自带测试程序

cat /usr/local/cuda/samples/README_CUDA_Samples.txt
这个文件里有个GitHub的链接:https://github.com/NVIDIA/cuda-samples
把文件拷下来(如果速度很慢,则需要点手段,这个就不说了)
cd /usr/local/cuda/samples
git clone https://github.com/NVIDIA/cuda-samples.git
然后编译可执行文件
cd cuda-samples
sudo make
需要等待个十几分钟吧,生成的可执行文件在cuda-samples/bin/x86_64/linux/release 目录
bin/x86_64/linux/release
测试通过,说明环境都没啥问题

测试keras训练模型

在vscode里下载Remote-WSl 插件,左边就会多一个按钮。打开然后创建个目录写代码
在这里插入图片描述
效果(可以看到显存已经占满了,训练也正常跑了)
不过出了很多的警告信息,谷歌搜了下没找到什么原因,算了,能跑就行了
在这里插入图片描述

参考链接

1、https://blog.csdn.net/iwanvan/article/details/122119595

hyper-v+win10

准备iso镜像

需要下载和主机系统一样的镜像(主要是为了显卡驱动一模一样,保证直接拷贝主机显卡驱动文件到虚拟机不会出问题)

使用hyper-v安装win10系统

步骤没什么区别

使用脚本配置GPU-Pv

下载脚本:https://github.com/Sam-Chai/gpu-pv-ps1

修改图中两个位置,第一个为虚拟机的名称,第二个是虚拟机能使用的最大显存。我设置的和主机显卡一样
在这里插入图片描述
然后右键使用powershell运行,这样会不容易看出输出信息。窗口一闪而过

可以使用Powershell ISE来运行,打开位置如下
在这里插入图片描述
将gpu.ps1文件直接拖到这个窗口,点击绿色的执行按钮就能看到输出,没报错输出完成就没问题
在这里插入图片描述

显卡驱动

现在直接打开虚拟机,虽然能在设备管理器里面看到显卡的信息,但是显示代码43,因为确实驱动程序,但是又不能直接使用驱动软件下载驱动。

将虚拟机关机,并且挂着虚拟机的磁盘到主机,双击.vhdx文件就可以在磁盘管理里看到(也可以在磁盘管理右键选择附加VHD),可能会有个报错,可以忽略,因为还没有分配盘符。右键分配一下盘符就行

我已经分配过,一打开就挂载了,图中500G的那个
在这里插入图片描述
然后拷贝主机C:\Windows\System32\DriverStore\FileRepository目录下nv开头的文件夹到虚拟机硬盘F:\Windows\System32\HostDriverStore\FileRepository下(目录需要自己建)
在这里插入图片描述
然后在磁盘管理红圈的部分右键选择分离VHD,磁盘就取消挂载了
在这里插入图片描述
接着虚拟机开机就应该能看到显卡正常工作了
在这里插入图片描述
具体有没有真的正常工作,这个还真不清楚,先跑个鲁大师试试
虚拟机:在这里插入图片描述
主机:
在这里插入图片描述
相差还是挺大的,而且在虚拟机跑鲁大师直接卡死了,要等他测完才能连接到 ,尴尬,虚拟机CPU只给了1核,我说怎么这么卡。

后面在看看玩游戏的表现,跑模型就没必要了,用WSL或者直接在主机里跑更方便。

hyper-v安装ghost备份文件

一开始我不想安装系统,想直接备份主机的系统到ghost文件里。然后再hyper-v还原成虚拟机,但是还原后的虚拟机很卡,基本无法操作,估计是很多驱动都不兼容,分享下如果安装ghost

创建虚拟机

其他步骤一样,就是选择镜像的时候,需要选择PE系统的ISO镜像,我这里选了微PE的镜像(下载微PE,就有生成ISO文件的选项)
在这里插入图片描述

新建一个硬盘

硬盘大小比ghost文件大一点就行,比如我备份的系统文件大小是62G,虚拟硬盘选个63G就行了,选择固定大小(因为看到下面写了更好的性能)
在这里插入图片描述
生成虚拟硬盘文件之后,就是挂载这个硬盘,然后拷贝ghost文件到虚拟硬盘,这样做的目的是因为到时候要在虚拟机里还原系统,ghost文件又不能放系统盘,所以创建个盘来装。装完系统这个盘就可以卸载了

接着将这个硬盘添加到虚拟机里

添加刚才的包含ghost文件的虚拟硬盘
在这里插入图片描述
接着开机,正常应该进入到pe系统

分区然后还原系统

在这里插入图片描述

因为选的第二代,分区的格式必须选择GPT,不能选MBR,第二代引导是UEFI。还原成功后,需要修复下UEFI引导(可能是非必要的)

这个就不截图演示了

将DVD驱动器移除

选择无点应用就可以了,包含ghost文件的虚拟硬盘也可以移除
在这里插入图片描述
如果你也修复了UEFI引导,那么在固件的位置会增加一个文件,这个不用管
在这里插入图片描述
点开机然后应该就能正常进入系统,

参考链接

1、https://www.bilibili.com/read/cv15539810
2、https://www.bilibili.com/video/BV11u411U7KJ

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟机使用主机显卡(hyper-v和WSL2) 的相关文章

随机推荐

  • 机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    增注 xff1a 虽然当时看这篇文章的时候感觉很不错 xff0c 但是还是写在前面 xff0c 想要了解关于机器学习度量的几个尺度 xff0c 建议大家直接看周志华老师的西瓜书的第2章 xff1a 模型评估与选择 xff0c 写的是真的很好
  • (5)细菌实验分组

    描述 有一种细菌分为A B两个亚种 xff0c 它们的外在特征几乎完全相同 xff0c 仅仅在繁殖能力上有显著差别 xff0c A亚种繁殖能力非常强 xff0c B亚种的繁殖能力很弱 在一次为时一个小时的细菌繁殖实验中 xff0c 实验员由
  • Python you-get 库 + FFmpeg 工具下载B站视频

    Python you get 库 43 FFmpeg 工具下载B站视频 电脑系统 xff1a Windows 10 准备阶段 xff08 安装you get和FFmpeg xff09 安装其实非常简单 xff0c 出现问题可以在网上参考其他
  • 虚拟机的创建、Linux相关基本命令等

    作业内容 xff1a 1 重新创建一个虚拟机 xff0c 熟悉下步骤 创建一个新的虚拟机 xff1a 1 点击 xff1a 创建新的虚拟机 2 下一步 3 提前下载一个镜像文件 xff0c 选择该文件即可 xff08 下载地址 xff1a
  • 解决mysql8.0主从配置,从库连接报错:Authentication plugin ‘caching_sha2_password‘ reported error

    其他配置都是按照网上分享的流程 xff0c 但是show slave status 查看从库状态时 xff0c Slave IO Running 61 connecting xff0c 这个状态是不对的 xff08 正常的Slave IO
  • windows10下visual studio 2019安装以及cuda11配置

    安装visual studio 2019 进入官方的下载页面 xff0c 可能需要登录 xff0c 登录后选取社区版下载 注意 xff0c 这里只是下载安装器 xff0c 真正的安装会在后续执行文件 xff0c 配置安装目录后 xff0c
  • Go语言基础语法_1_2021-10-28

    序言 xff1a 本身 xff0c 我是一个Java开发者 xff0c 但是最近在学习Java虚拟机 xff0c 但是看来看去总是不明白Java虚拟机是怎样实现的 xff0c 而有一本书是 自己动力手写Java虚拟机 xff0c 是用go语
  • debian(Linux)系统下安装jdk1.8

    第一步 xff1a 下载安装包 下载Linux环境下的jdk8 xff0c 请去 xff08 Java Downloads Oracle xff09 中下载jdk的安装文件 xff1b 由于我的Linux是64位的 xff0c 因此我下载j
  • Codeblocks自动代码格式化

    在代码框里点右键 xff0c 按Format use Astyle就会自动代码格式化了 但是它默认的风格是大括号另起一行 xff0c 很不习惯 xff0c 实际上是可以改的 1 Setting gt Editor gt Source For
  • 无法找到输出设备?

    希望我的方法能帮到你 我的电脑是联想 系统是win11 上次更新之后 扬声器就不能用了 右下角的喇叭是一个叉叉 一直没有放在心上 今天解决了一下 右键显示叉叉的喇叭 gt 希望我的方法 能帮到你
  • java程序设计-第一章

    第一章 教材知识点 概念1 2 什么是计算机1 3 编程语言1 4操作系统 Operating System1 5 操作系统1 6 1 7 1 8 1 10关键术语 教材quiz1 如何换行要点12 打印表格 要点2 域宽3 求半径5 5的
  • 将PHP项目部署到服务器

    CONTENT 流程1 租服务器2 配置环境3 测试4 WINScp上传文件 项目语言php xff0c 连接mysql 流程 租服务器 gt 配置环境 gt 测试php和数据库环境 gt 上传文件 gt 运行 1 租服务器 步骤 xff1
  • pandas scatter_matrix使用

    示例来自 Phython机器学习基础教程 Introduction to Machine Learning with Python 德 Andreas C M ller 美 Sarah Guido 著 张亮 xff08 hysic xff0
  • tensorflow.compat.v1

    tensorflow高版本适配低版本解决方法 IDE PyCharm tf版本 2 4 问题 卸载tensorflow1 14重装了最新的2 4之后 xff0c 使用如下方法 xff0c IDE提示找不到compat模块 span clas
  • 2014.软院.Problem B. 最长连续等差子数列

    题目描述 给定一个长度为N的整数数列 xff0c 你需要在其中找到最长的连续子数列的长度 xff0c 并满足这个子序列是等差的 注意公差小于或等于0的情况也是允许的 输入格式 第一行为数据组数T xff08 1 lt 61 T lt 61
  • Android studio安卓虚拟机无法启动

    1 问题 曾经配置过并成功启动过安卓虚拟机 xff0c 时隔若干年后无法启动 xff0c 并总是自动杀死 xff0c 除此之外没有任何有用信息 xff1a The emulator process for AVD was killed 2
  • jekyll部署 (windows 10)

    windows本地部署 jekyll 搭建git pages过程中 xff0c 发现github编译失败之后处理很麻烦 xff08 多次push xff09 xff0c 于是打算本地搭建一个能编译检查的jekyllwarning xff1a
  • 未知的vue+element UI自动刷新

    每次自动刷新 xff0c URL都从 localhost 8080 url 变为 localhost 8080 url xff0c 此时就应该怀疑原因是表单自动提交导致的刷新了 x1f613 条件 xff1a 没有设置表单规则 gt 因为如
  • 【apollo】源码编译失败-依赖包无法下载-解决方案

    编译报错 执行 xff1a bash apollo sh build opt gpu 报错 xff1a Error downloading https github com bazelbuild rules java archive 981
  • 虚拟机使用主机显卡(hyper-v和WSL2)

    我的系统版本WSL2 43 Ubuntu20 04 43 CUDA启用WSL2 43 安装Ubuntu20 04 主机安装WSL Cuda显卡驱动WSL2 Ubuntu安装cuda和cudnncudacudnn安装TensorFlow使用自