Thread created at the request of Captain_Morgan:
Searching for Radeon (on this forum, not the old one, because why bother?) brings up multiple threads in relation to transcoding on Jellyfin and Plex.
I am using a Powercolour Red Devil AMD Radeon RX 6750 XT 12GB graphics card, and it is set up to transcode for Jellyfin, set up as an app. OS is Truenas 25.04.0, upgraded via EE > 25.04 Beta > RC1 > .0
Evidence of effective transcoding from jellyfin log:
B2025-04-27 07:13:34.244395+00:00[08:13:34] [INF] [21] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -f matroska -init_hw_device drm=dr:/dev/dri/renderD128 -init_hw_device vaapi=va@dr -init_hw_device vulkan=vk@dr -filter_hw_device vk -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i file:"XXX" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 9208800 -maxrate 9208800 -bufsize 18417600 -sei -a53_cc -force_key_frames:0 "expr:gte(t,n_forced*3)" -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=drm,format=drm_prime,libplacebo=upscaler=none:downscaler=none:w=1920:h=804:format=bgra:tonemapping=bt.2390:peak_detect=0:color_primaries=bt709:color_trc=bt709:colorspace=bt709,format=vulkan,hwmap=derive_device=vaapi,format=vaapi,scale_vaapi=format=nv12" -codec:a:0 libfdk_aac -ac 2 -vbr:a 5 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/cache/transcodes/29e6aafb1dd5bde305d81fc944a0cee7%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/29e6aafb1dd5bde305d81fc944a0cee7.m3u8"
(As an aside, this is mostly for proof of concept, the CPU running Truenas is better at transcoding than a Radeon, but given I only use transcoding to watch stuff on a phone, power efficiency is more important than quality, but this is likely not the case for most people in the community who will need a GPU for decent transcoding ability).
Now to the matter proper: Ollama, rocm, and driver availability.
The Radeon GPU is passed through to Ollama, which is set up as an app. Below is the output from the Ollama log:
2025-04-26 17:47:29.930256+00:00time=2025-04-26T17:47:29.930Z level=INFO source=gpu.go:217 msg="looking for compatible GPUs"
2025-04-26 17:47:29.948207+00:00time=2025-04-26T17:47:29.947Z level=WARN source=amd_linux.go:61 msg="ollama recommends running the https://www.amd.com/en/support/linux-drivers" error="amdgpu version file missing: /sys/module/amdgpu/version stat /sys/module/amdgpu/version: no such file or directory"
2025-04-26 17:47:29.949612+00:00time=2025-04-26T17:47:29.949Z level=WARN source=amd_linux.go:443 msg="amdgpu detected, but no compatible rocm library found. Either install rocm v6, or follow manual install instructions at https://github.com/ollama/ollama/blob/main/docs/linux.md#manual-install"
2025-04-26 17:47:29.949740+00:00time=2025-04-26T17:47:29.949Z level=WARN source=amd_linux.go:348 msg="unable to verify rocm library: no suitable rocm found, falling back to CPU"
2025-04-26 17:47:29.949789+00:00time=2025-04-26T17:47:29.949Z level=INFO source=gpu.go:377 msg="no compatible GPUs were discovered"
2025-04-26 17:47:29.949809+00:00time=2025-04-26T17:47:29.949Z level=INFO source=types.go:130 msg="inference compute" id=0 library=cpu variant="" compute="" driver=0.0 name="" total="251.5 GiB" available="7.1 GiB"
This raises a few questions: is rocm on Truenas? RDNA2 GPU (specifically 6800XT but rocm works with the 6750XT in Mint Cinnamon) are compatible with previous versions of rocm (5.x was the last IIRC, so I acknowledge this may be not worth supporting from iX systems perspective. Current vsion is 6.4.0). I acknowledge I am a lay person and I’m likely looking in the wrong places (lspci, sudo modinfo amdgpu etc), but I can’t find any evidence that rocm is installed.
There are two posts on rocm that the forum search identifies: The exchange that lead to this post in the 25.04.0 release thread, and the coral gasket drive feature request thread. It looks like this is not a high profile discussion.
Gasket drivers have been requested for quite a while, and as Honeybadger notes, systemd-sysext is a potential route, and realistically this should also be a potential route to enable the rocm if not installed.
The greater point I’d like to make is that from a community perspective, is that if the coral (etc) drivers are not included which reduces the effectiveness of Truenas as a docker host (after all, what is the point of using a docker app if it cannot use the tools because Truenas lacks the drivers?) This reinforces the strategy of relying on instances and virtual machines…but then this pushes against the strategy of using docker apps natively as we can’t split the equipment between the VM and baremetal.
And as a follow up point:
If Intel gpu are not supported via Ollama, AMD gpu are basically not supported by rocm (not a Truenas fault but still a problem for iX to consider), and nvidia gpu can’t be passed through to the app, then is there actually any GPU integration in Truenas Community edition?
I’m mindful of this chat comment a two months ago:
And this post this week:
iXsystems risk the downside of vendor lock in with none of the positives (can’t even promote specific hardware or profit from the lockin/lockout with no control over it). After all, using a Truenas system as the NVR is perhaps the lowest hanging fruit available for that compute power, as every business needs security cameras, for a company that exists to sell storage capacity.
It feels to me like there is more work to do, and given the community are the testers the road map kinda needs to be communicated to us ahead of anyone else.
I’m not sure what other peoples views and thoughts are, but I welcome any input from iX on the paths forward with GPU (and TPU) integration for AI and apps.