V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
zer
V2EX  ›  NAS

PVE 下核显开启 sriov 后,多个虚拟机不能同时用核显么?

  •  
  •   zer · 8 天前 · 1417 次点击

    先说下虚拟机的配置

    虚拟机 1 是 Win11 ,用虚拟屏幕开了 sunshine 串流
    虚拟机 2 是 Ubuntu ,Docker 里安装了 Jellyfin ,可以转码视频
    2 台虚拟机都是 ovmf(uefi)+i440fx ,并且添加了不一样的 sriov 核显。

    以上 2 个虚拟机单独使用是没问题的,问题表现为:

    • 先转码后串流,一旦 Jellyfin 开转码,Win11 就无法串流。
    • 先串流后转码,此时通过 moonlight 串流的 Win11 屏幕冻住,无法操作。

    我观察转码时,显示的核显负载也不高。但此时 Win11 串流就是不行(转圈圈、屏幕卡死),sunshine 的 troubleshooting 也看不到报错。求教有遇到过此类问题的朋友,如何解决该问题?

    intel_gpu_top -d sriov
    

    Imgur

    第 1 条附言  ·  7 天前
    https://github.com/strongtz/i915-sriov-dkms/issues/254#issuecomment-2655468421
    我按照这个 issue 里的方法,给 Jellyfin 指定了个自定义的 ffmpeg 脚本,加上了 `-readrate 2` 的参数。
    现在 jellyfin 转码性能虽然下降到了 50fps ,但是同时开着的 sunshine 串流不会卡死了,处于可用的状态。
    算是暂时解决了此问题吧😂
    11 条回复    2025-02-13 14:07:30 +08:00
    ericww
        1
    ericww  
       8 天前 via iPhone
    alderlake-s 的编码器和视频增强单元的调度都是独占的,不是时间分片。同时只能被一个 vm 调用。
    esee
        2
    esee  
       8 天前 via Android
    @ericww 还有这种说法呀
    zer
        3
    zer  
    OP
       8 天前
    @ericww 和处理器内置的 Multi-Format Codec Engines 数量有关么?如果使用 UHD770 的 CPU ,内置 2 个 Multi-Format Codec Engines ,是不是可以同时并发 2 个转码调度
    ericww
        4
    ericww  
       8 天前 via iPhone
    @zer 具体要看任务,优先级是解码>编码>处理,gen12 是 2 个编解码和 1 个视频增强,jellyfin 一个任务就占用两个编解码了,其他就只能等待任务结束。
    iamqk
        5
    iamqk  
       8 天前
    实测 N150 上跑了 6 个 win10 ,都是 sriov 的核显。就开了两个远程 win10 ,edge 开了 b 站,可以同时解码视频
    zer
        6
    zer  
    OP
       8 天前
    @iamqk 你使用 rdp 远程的吗?能否试试用 sunshine 远程,看下 2 个以上能不能同时串流
    iamqk
        7
    iamqk  
       7 天前
    @zer 你这个可能需要编码吧,我那个是纯解码
    wuyadaxian
        8
    wuyadaxian  
       7 天前
    Jellyfin 转码问题,转码时独占 gpu 的 encode 和 decode 。
    导致其他需要用 gpu 的机器被中断冻结。
    实测 7 台 win11 虚拟机能同时使用 gpu 资源,同时看 youtube ,gpu 解码。
    wuyadaxian
        9
    wuyadaxian  
       7 天前   ❤️ 1
    @zer 可以,这边 windows11 ,7 台虚拟机。可以同时处理。12700 核显。
    parsec 远程( h.264 or h.265 视频流),gpu 编码。
    +虚拟机内 youtube 视频,gpu 解码。
    wuyadaxian
        10
    wuyadaxian  
       7 天前
    我查看了一下资料,发现不仅是 Jellyfin ,所有的媒体服务器包括 plex/emby 都会出现 op 的这个问题。

    我一开始怀疑是 encode 和 decode 并发的问题。
    我们知道 nvidna 的消费级显卡有 NVENC encoding sessions 的限制,3 个/5 个/8 个。

    查了一下 intel gpu 的情况。there is no concurrent encoding sessions limit on Intel iGPU and ARC dGPU.
    intel 显卡并没有并发限制。

    那么可能就是 QSV ,VA-API 等驱动问题。
    不过我最近没有时间研究。op 如果有兴趣可以去查查相关的代码。
    zer
        11
    zer  
    OP
       7 天前   ❤️ 1
    @wuyadaxian https://github.com/strongtz/i915-sriov-dkms/issues/254#issuecomment-2655468421
    我按照这个 issue 里的方法,给 Jellyfin 指定了个自定义的 ffmpeg 脚本,加上了 `-readrate 2` 的参数。
    现在 jellyfin 转码性能虽然下降到了 50fps ,但是同时开着的 sunshine 串流不会卡死了,处于可用的状态。
    算是暂时解决了此问题吧😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1040 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:07 · PVG 03:07 · LAX 11:07 · JFK 14:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.