I have been running experiments for the last two days. I am running a Jellyfin server on a virtual machine. As long as the movie plays on the same virtual machine as the server, every feature except transcoding works as expected. However, when you try to play a movie on any device other than the virtual machine, you encounter problems. Plex, Jellyfin, and Emby servers require an accelerated graphics card.
Correct, which can be passed-through to the VM, not a big deal. Iām more curious about the remote stream, when you already have your movie collection encoded in the target resolution and format, like 4k h.265 and you arenāt trying to select a different preset (because that wonāt work if you donāt have transcoding capable hardware).
I have reached the limitations of experimenting with Jellyfin, Plex, and Emby Server. I can no longer gather new information until I can purchase a new graphics card to pass through to my Windows 10 virtual machine or figure out how to simulate an accelerated graphics card.
Once I acquire the necessary equipment, I plan to continue experimenting with Plex, Jellyfin, and Emby Server. When I do, I will start a thread to share my findings.
Check out Craft Computingās channel on cloud gaming series. I donāt recall which GPU he used that actually worked. But if you donāt need a real display out, I think he used a p100 to get multiple VMs sharing 1 GPU (vGPU). But while this is useful for multi-VM acceleration, idk if stuff like encoding / decoding can be shared. But, at best, the encoder will work on 1 vm at a time (so you can test either at your own discretion, 1 at a time), while other VMs could benefit from video acceleration.
I never found a scenario at home where a GPU would be useful for multiple VMs, but I guess you could have 1 vm for actual desktop acceleration, 1 for a jellyfin server, 1 for a surveillance footage VM for both AI workloads (either facial or object recognition, for event-driven alerts and footage saving) and transcoding the recorded or live footage playback to another device and maybe with the advent of self-hosted AI, now you could actually self-host all kind of smaller models and use 1 GPU for all of them. Although, supposedly, a NPU should be the one doing that kind of does the heavy lifting (idk if you can passthrough a NPU).
Of course, thereās always the old fashioned way of doing 1 VM passthrough at a time (which is what Iām doing). For my own setup, I never found any scenario where I want to share a GPU (if I need the GPU on another VM, I just shut one down and power on the other one that needs the gpu passthrough).
I donāt think this has ever been achieved, otherwise, why would GPU passthrough and vGPU still be this popular, when itās a royal PITA to find proper hardware that supports it? Or itās possible VMWare and Hyper-V / Azure might have something that Iām not aware of (I donāt use proprietary stuff and Iām certainly not up-to-date with their features).
I had never heard of an NPU until @ThatGuyB mentioned it in one of his posts. NPU stands for Neural Processing Units, which are dedicated processors designed to accelerate artificial intelligence and machine learning applications. They offer improved performance, efficiency, and flexibility compared to general-purpose CPUs and GPUs.
I need a video output port, so an Nvidia P100 wouldnāt fit my needs. I am considering purchasing an Nvidia RTX A5000 for my upcoming Virtual Server. Iām not sure if tasks like encoding and decoding can be shared, but I assume these jobs could be distributed among several VMs. However, it might just take longer for the jobs to complete.
Thatās why you need vGPU support. Some scripts kinda unblock this even for unsupported GPUs. Otherwise, you have to shutdown 1 VM and power on another, if you want to use the physical hardware passed through. Thatās why I mentioned you should check if it has vGPU support, it can save quite some headaches if you run your VMs all at once.
Good luck!