Plex, Ubuntu & Quadro Cards on AMD
This is the tiniest post since I couldn't find any useful information online and I bought the card anyway as a gamble, which paid off.
I recently replaced my home server with an ASRock Rack motherboard—2x 10gbe, remote management, and so on. Because, why not.
What I didn't realize though is that Plex basically has no support for hardware transcoding on AMD chips, so various transcodes really struggled despite the upgrade, as they were now CPU-bound.
So I picked up a Quadro P400, the cheapest Nvidia card I could find. I think the P620 is probably the same but higher clocked.
Versions
This was done on:
- Plex Server 1.24.4.5081
- Ubuntu 20.04 LTS
- on an ASRock Rack EPYC3101D4I-2T
Steps
-
Buy a Quadro card.
-
Install the card in your machine.
-
Run this command:
sudo apt install --no-install-recommends nvidia-driver-470
…the
--no-install-recommends
prevents all of Gnome and a windowserver being installed. -
Wait a while since it seems to compile a bunch of code.
-
Restart your machine, because
lsmod | grep nvidia
shows nothing 🥺 -
After restarting, check the output of
lsmod | grep nvidia
:nvidia_uvm 1036288 2 nvidia_drm 57344 0 nvidia_modeset 1196032 1 nvidia_drm nvidia 35270656 14 nvidia_uvm,nvidia_modeset drm_kms_helper 184320 1 nvidia_drm drm 491520 4 drm_kms_helper,nvidia,nvidia_drm
-
Let Plex do transcoding!
You'll see in its dashboard "Transcode (hw)", and far less CPU use while it's happening. (You can force this by converting a file to a different format, even if e.g., your browser supports the current file. I find my TV far less good at formats than Chrome.)
To be clear, Plex just started using the GPU without any setup on my part—I just made sure the "Use hardware acceleration when available" setting (and friends) were checked under "Transcode" in Settings.
Remote Access & Video Cards
The ASRock Rack motherboard has a remote management port, so you can use the machine interactively over the network. However, by default, the motherboard will use any installed as its default video output, and that prevents the board from 'stealing' the output for remote access.
This is a pretty easy fix, you just need to update the BIOS settings to default to "onboard" first. I forgot to do this before installing the card, so I had to plug a monitor in after-the-fact and set it manually.
That's all
Providing internet knowledge, one bit at a time.