P106-100 是一款比较著名的使用魔改驱动玩游戏的矿卡,但是在 Linux 下是没有这款矿卡的魔改驱动的。本文小结一下在 Linux 下如果使用 P106-100 运行算力及游戏应用。(2023.07.21 补充:视频中 wine 的“英雄联盟国际服”版用运行 Linux 原生游戏的那种设置方法帧率大概比视频中提高1倍,约为60~110帧。而“天下3”和“原神”用运行 Linux 原生游戏的设置方法则鼠标不能使用,原因未知。2024.02.07 更新:可以在 Linux 实体机上直接玩游戏,参见:没想到 P106-100 矿卡在 Linux 下玩游戏竟然如此简单)。视频演示地址:【P106-100矿卡在Linux系统下算力及游戏应用小结】 https://www.bilibili.com/video/BV1Tu4y1S7Sp/?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea
操作系统是 Deepin Linux 20.9,另外用到了 virt-manager KVM 虚拟机、x11vnc 服务器、 Remmina 远程桌面客户端软件 。算力应用是“CycleGAN and pix2pix in PyTorch”,游戏应用是游戏测试“Unigine_Heaven-4.0”和多平台开源 3D 游戏“SuperTuxKart”。使用 CPU 和 P106-100 GPU 对比测试。wine 安装 Windows 游戏测试是“英雄联盟”国际服版。
二、Linux 下算力应用
算力应用是“CycleGAN and pix2pix in PyTorch”( https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix )。
“CycleGAN and pix2pix in PyTorch”是一款图形处理的机器学习软件,既可以使用 CPU 也可以使用 GPU。
Linux 下直接按常规的方法安装 Nvidia 私有驱动即可,这里就不详述安装方法了。Deepin Linux 下安装可以参考这篇帖子“[经验分享] UOS/DEEPIN安装nvidia最新闭源驱动的教程(方法简单成功率很高)”(https://bbs.deepin.org/post/232923)。
if not any(installed_binaries.values()):
pass
#raise ScriptingError(_("This installer requires %s on your system") % _(" or ").join(dependency))
else:
if not system.find_executable(dependency):
pass
#raise ScriptingError(_("This installer requires %s on your system") % dependency)
(本文首发网址:学习日记 https://www.learndiary.com/2023/06/p106-100-linux/ )
P106-100 是一款比较著名的使用魔改驱动玩游戏的矿卡,但是在 Linux 下是没有这款矿卡的魔改驱动的。本文小结一下在 Linux 下如果使用 P106-100 运行算力及游戏应用。(2023.07.21 补充:视频中 wine 的“英雄联盟国际服”版用运行 Linux 原生游戏的那种设置方法帧率大概比视频中提高1倍,约为60~110帧。而“天下3”和“原神”用运行 Linux 原生游戏的设置方法则鼠标不能使用,原因未知。2024.02.07 更新:可以在 Linux 实体机上直接玩游戏,参见:没想到 P106-100 矿卡在 Linux 下玩游戏竟然如此简单)。视频演示地址:【P106-100矿卡在Linux系统下算力及游戏应用小结】
https://www.bilibili.com/video/BV1Tu4y1S7Sp/?share_source=copy_web&vd_source=d1925b070926f23b2b6676137251e9ea
一、硬件及软件平台简介
电脑硬件是10年前的 i7-4770 CPU、16G内存、淘宝上买的 128 元包邮的七彩虹 P106-100 6G 矿卡。目前已经使用两月余,暂未翻车。
操作系统是 Deepin Linux 20.9,另外用到了 virt-manager KVM 虚拟机、x11vnc 服务器、 Remmina 远程桌面客户端软件 。算力应用是“CycleGAN and pix2pix in PyTorch”,游戏应用是游戏测试“Unigine_Heaven-4.0”和多平台开源 3D 游戏“SuperTuxKart”。使用 CPU 和 P106-100 GPU 对比测试。wine 安装 Windows 游戏测试是“英雄联盟”国际服版。
二、Linux 下算力应用
算力应用是“CycleGAN and pix2pix in PyTorch”( https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix )。
“CycleGAN and pix2pix in PyTorch”是一款图形处理的机器学习软件,既可以使用 CPU 也可以使用 GPU。
Linux 下直接按常规的方法安装 Nvidia 私有驱动即可,这里就不详述安装方法了。Deepin Linux 下安装可以参考这篇帖子“[经验分享] UOS/DEEPIN安装nvidia最新闭源驱动的教程(方法简单成功率很高)”(https://bbs.deepin.org/post/232923)。
这里小结 CPU 计算和 GPU 计算的结果。
CPU 训练的命令是:
训练一轮的时间大概是330~360秒,“top” 命令查看 python 主线程 CPU 占用近 400%(CPU 是 4核8线程),内存占用约 8%(约 1270MiB,物理内存共16G)。
GPU 训练的命令是:
训练一轮的时间大概是35~37秒,“nvidia-smi”命令 查看 GPU 利用率近 100%,GPU 内存占用约 3065MiB;“top” 命令查看 python 主线程 CPU 占用近 100%(CPU 是 4核8线程),内存占用约 15%(约 2382MiB,物理内存共16G)。
GPU 是 CPU 的训练速度近 10 倍。
三、 Linux 下原生游戏应用
1、宿主机 Deepin Linux 20.9 系统设置
Windows 下有大神做的 P106-100 矿卡魔改驱动,而 Linux 下没有,所以如果想利用 P106-100 来玩游戏需要特别的方式。我这里使用的方式是把 P106-100 直通到 virt-manager 的 KVM 虚拟机里,在 /etc/X11/xorg.conf 配置文件中指定使用 P106-100。然后在虚拟机里安装 x11vnc 服务器,通过 vnc 客户端连接到 KVM 虚拟机里玩游戏。参考链接:“LINUX GAMING WITH P106-100”( https://ncrmnt.org/2019/08/04/linux-gaming-with-p106-100/ )、“PVE开启硬件直通功能”( http://linux.it.net.cn/m/view.php?aid=31611 )。
下面把相关的配置步骤简单的列出来。
1)、宿主机 Deepin Linux 20.9 配置
(1)、主板开启 VT-D
(2)、编辑 /etc/default/grub 开启 iommu
然后更新 grub
(3)、加载和屏蔽相关的内核模块
然后更新 initramfs 内核模块文件
但是,我发现如果在宿主机上安装了 nvidia 驱动,即使上面有屏蔽相差模块的的指令,但是启动后仍然会加载 nvidia 驱动,从而导致虚拟机直通显卡失败。Deepin Linux 上可以使用 deepin-prime 这个包里面的 “prime-select nvidia” 命令来切换宿主机是使用 nvidia 显卡还是 intel 核芯显卡,需要重启生效。而我使用的是另一种简单暴力的方法,直接把 nvidia 内核模块文件重命名再重启系统就加载不了 nvidia 模块,这样虚拟机就可以使用直通的 P106-100 显卡了。使用的两个暴力脚本分别是宿主机启用和禁止 nvidia 内核模块如下(启用模块可以不重启,但禁止模块必须重启):
enable_nvidia:
disable_nvidia:
(4)、virt-manager KVM 虚拟机软件设置
下面只说一些配置的要点。
CPU “配置”勾选“复制主机CPU配置”,“拓扑”勾选“手动设置CPU拓扑”,“套接字”填“1”,“核心”填“4”,“线程”填“2”。“CPU”的“当前分配”为“8”。
内存的“当前分配”为“8192”MiB。
选择“添加硬件”->“PCI 主机设备”,把 P106-100 显卡和主板集成声卡选上就行,我这里分别是“0000:01:00:0 NVIDIA Corporation GP106 [P106-100]”和“0000:00:1B:0 Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller”。
然后网卡设备型号选的“virtio”,好像速度要快点,也许对 vnc 客户连接 x11vnc 服务器有些微帮助。
这里,我把声卡也直通到虚拟机里,这样,虚拟机运行时,宿主机不能使用声卡。虚拟机停止时,宿主机又可以使用声卡。但是显卡不能像声卡这样临时的在虚拟机和宿主机之间切换。
(5)、安装 VNC 客户端软件 Remmina
色彩选“真彩色(32位)”,画质选“最好(最慢)”。
2)、虚拟机 Deepin Linux 20.9 配置
(1)、按常规方法安装 nvidia 私有驱动
(2)、安装 ssh 服务器以便没有图形界面时可以连接虚拟机操作
(2)、安装 x11vnc 服务器并设为开机启动
相关配置文件如下:
/etc/X11/xorg.conf
其中的 BusID 在 “lspci”命令中查看。
/usr/local/bin/startvnc
/etc/systemd/system/x11vnc.service
然后启用并启动 x11vnc.service
sudo systemctl enable x11vnc
sudo systemctl start x11vnc
sudo systemctl status x11vnc
最后一条命令是查看服务运行状态的。
2、游戏测试“Unigine_Heaven-4.0”
游戏测试应用是“Unigine_Heaven-4.0”( https://benchmark.unigine.com/heaven )。
应用设置除了语言改为“中文”,分辨率改为“1600x900”外,其它为默认。
以下是测试结果。
宿主机使用 CPU HD4600核芯显卡,“top” 命令查看 CPU 占用15~18%,内存占用 2.8%(约 445MiB,物理内存共16G),wa 10~13(我同时用 “iotop” 查看了不是磁盘产生的 iowait,数值高原因未知)。“Unigine Heaven 4.0”基准测试的结果是“FPS:28.1,Score:707”。
启动虚拟机后在宿主机上用 Remmina 连接它。虚拟机使用 P106-100 显卡,“top” 命令查看 CPU 占用近 100%,内存占用 10.1%(约 803MiB,物理内存共8G),wa 0。“watch nvidia”命令查看 P106-100 显卡状态:温度约 69度,功率 90W/120W,GPU 利用率 70~80%,GPU 内存占用 580MiB。“Unigine Heaven 4.0”基准测试的结果是“FPS:112.0,Score:2821”。测试结果约是宿主机下面的4倍。
3、游戏“SuperTuxKart”
多平台开源 3D 游戏“SuperTuxKart”( https://supertuxkart.net/zh_CN/Main_Page )。
游戏设置“图形特效等级”为最高的“6”,勾选“垂直同步”,分辨率为“1280x800”。在剧情模式下测试。
宿主机使用 CPU HD4600核芯显卡,“top” 命令查看 CPU 占用约 50%,内存占用 1.1%(约 175MiB,物理内存共16G),wa 15~20(我同时用 “iotop” 查看了不是磁盘产生的 iowait,数值高原因未知)。剧情模式下帧率显示2/3/4,画面极卡顿,几乎不能动弹。偶有成排黑点闪烁。且造成整个操作系统响应极缓慢。
启动虚拟机后在宿主机上用 Remmina 连接它。虚拟机使用 P106-100 显卡,“top” 命令查看 CPU 占用约 43%,内存占用 6.8%(约 541MiB,物理内存共8G),wa 0。“watch nvidia”命令查看 P106-100 显卡状态:温度约 57 度,功率 约 60W/120W,GPU 利用率 75~78%,GPU 内存占用约 499MiB。剧情模式下帧率显示105/108/111,画面极流畅。整个操作系统响应正常。
四、Linux 用 Wine 安装 Windows 游戏应用
1、系统设置
1)、宿主机 Deepin Linux 20.9 设置
与前面 Linux 原生游戏应用不同的设置要点有:
(1)、不要通过 x11vnc 使用虚拟机桌面,而直接使用 virt-manager 的 spice 图形显示控制台。可能是因为 wine 的原因,wine 下安装的游戏是可以正常调用 p106-100 显卡加速的。
(2)、除了切换控制虚拟机的鼠标,要直通一个专门在虚拟机里玩游戏的物理鼠标。我这里是直通的 usb 鼠标。方法是“添加硬件”->“USB 主机设备”。不直通物理鼠标的话,有的游戏鼠标会无法控制。
(3)、通过游戏的虚拟化检测设置。有的游戏检测到在虚拟机中会不能运行。我是通过在虚拟机的 xml 配置文件中添加 cpu 节的设置达到的。具体文件如:/etc/libvirt/qemu/deepin.xml
具体内容如下:
网上也有说这样的:
2)、虚拟机 Deepin Linux 20.9 内设置
与前面运行 Linux 原生游戏不同的地方是去掉 /etc/X11/xorg.conf 这个配置文件就行。
2、Deepin Linux 20.9 虚拟机中 wine 安装 Windows 游戏测试
这里我使用的是 flatpak 版本的 Lutris,在上面成功安装运行过“英雄联盟国际服版”、“天下3”,没有安装上“英雄联盟国内服版”。我听说在 Linux wine 里安装运行 Windows 游戏有可能导致封号,所以,建议各位自行取舍,避免损失贵重的数字资产。
1)、游戏安装要点:
各个游戏具体的安装方法就不说了,大家自行百度。我这里说说在 Deepin Linux 20.9 上用 Lutris 安装上述游戏碰到的几个问题的解决要点。
(1)、报告找不到 xdelta3 程序而中止安装。我明明已经安装了,找不到原因,最后用了一个粗暴简单的方法把检测程序给屏蔽了。修改的文件是“/var/lib/flatpak/app/net.lutris.Lutris/x86_64/stable/2e580c2d27b44e1d2313ad7c73df33c2705aec8ef4b030e5a209278c0e0771e1/files/lib/python3.10/site-packages/lutris/installer/interpreter.py”,修改的内容如下:
希望知道真正正确解决方法的朋友能提示一二。谢谢。
(2)、在安装程序中下载不了或下载不正确相关文件。这可以另外手动下载下来,再放到指定的地方就行。如字体文件。
(3)、安装程序中途中断。可以在 Lutris 安装的游戏下面选择“在 Wine 容器中运行 EXE”运行安装程序。
2)、游戏运行效果测试
总的来说,我成功安装运行的上述2个游戏画面正常,速度正常,没有卡顿等异常现象。具体的就不写了。总的来说,用 P106-100 显卡可以在 Linux 下玩一些流行的 Windows 游戏,但需要一定的 Linux 基础技能来折腾。且由于其存在网上所说的封号风险,所以对于真正的游戏党来说还是慎入为好。