Truenas Scale 24.10 cannot recognize Tesla P4 graphics card driver

I am also having the issue with the tesla p4 being listed as unknown for the emby plugin. It shows up fine under gpu Isolation. Was there ever a resolution? Any recommendations for a similar supported card for encoding?

Having the same issue where, when I try to assign my Quadro P4000 to Plex, it gives me the following error when it reaches 25% progress.

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 488, in run
await self.future
File “/usr/lib/python3/dist-packages/middlewared/job.py”, line 535, in __run_body
rv = await self.middleware.run_in_thread(self.method, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1364, in run_in_thread
return await self.run_in_executor(io_thread_pool_executor, method, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/main.py”, line 1361, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/service/crud_service.py”, line 268, in nf
rv = func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 55, in nf
res = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/schema/processor.py”, line 183, in nf
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 287, in do_update
app = self.update_internal(job, app, data, trigger_compose=app[‘state’] != ‘STOPPED’)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py”, line 317, in update_internal
update_app_config(app_name, app[‘version’], new_values, custom_app=app[‘custom_app’])
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py”, line 59, in update_app_config
render_compose_templates(
File “/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py”, line 50, in render_compose_templates
raise CallError(f’Failed to render compose templates: {cp.stderr}')
middlewared.service_exception.CallError: [EFAULT] Failed to render compose templates: Traceback (most recent call last):
File “/usr/bin/apps_render_app”, line 33, in
sys.exit(load_entry_point(‘apps-validation==0.1’, ‘console_scripts’, ‘apps_render_app’)())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 47, in main
render_templates_from_path(args.path, args.values)
File “/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py”, line 19, in render_templates_from_path
rendered_data = render_templates(
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/catalog_templating/render.py”, line 36, in render_templates
).render({‘ix_lib’: template_libs, ‘values’: test_values})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 1301, in render
self.environment.handle_exception()
File “/usr/lib/python3/dist-packages/jinja2/environment.py”, line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/docker-compose.yaml”, line 3, in top-level template code
{% set c1 = tpl.add_container(values.consts.plex_container_name, values.plex.image_selector) %}
^^^^^^^^^^^^^^^^^^^^^^^^^
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/library/base_v2_1_0/render.py”, line 53, in add_container
container = Container(self, name, image)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/library/base_v2_1_0/container.py”, line 68, in init
self.deploy: Deploy = Deploy(self._render_instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/library/base_v2_1_0/deploy.py”, line 15, in init
self.resources: Resources = Resources(self._render_instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/library/base_v2_1_0/resources.py”, line 24, in init
self._auto_add_gpus_from_values()
File “/mnt/.ix-apps/app_configs/plex/versions/1.1.6/templates/library/base_v2_1_0/resources.py”, line 55, in _auto_add_gpus_from_values
raise RenderError(f"Expected [uuid] to be set for GPU in slot [{pci}] in [nvidia_gpu_selection]")
base_v2_1_0.error.RenderError: Expected [uuid] to be set for GPU in slot [0000:04:00.0] in [nvidia_gpu_selection]

Hi!

I don’t know enough about the gaggle of error messages, where to begin debugging. To be honest I’ve been getting the same gaggle of error messages, with nowhere to begin – very frustrating! So I feel your pain.

I’m using an Nvidia Tesla P4, trying to get it recognized by apps and VMs too – I just want to use my darn hardware! It’s been months trying.

Hope was held out for the recent EE dot release to help out the Nvidia camp, but no bueno. I’m following the docs to the letter, but my Nvidia card just doesn’t work, despite it being on the list of TrueNAS Scale supported GPU cards.

Wondering if Nvidia support on TrueNAS isn’t seen as important, because other GPU cards are in play and just work, and it’s more effort to support Nvidia.

Seeing use of Nvidia GPU cards on the TrueNAS community is frustrating, at least forthis user, thinking it makes sense to escalate appropriately for resolution.

Thanks for letting me vent!
-Rodney

It’s definitely important for us - NVIDIA users make up a significant portion (probably a majority - I smell another poll coming on!) of the GPU users.

What’s puzzling me is that I literally have the same Tesla P4 card as you do but yet I have none of the battles with Apps and acceleration. The unit in question has been upgraded from 22.12 up through 24.10.1 with Jellyfin in place, and it’s trucking along merrily without complaint through the upgrade cycles.

Thanks Chris, and good to know. Thinking a GPU survey would be an interesting data point too.

Question: Saw another post of yours, re: 2 GPUs required for VM deployments, and given we share using the same Enterprise Nvidia GPU card, are you using 2 (not sure if your deployment of Jellyfin is on a VM or container)?

If I just need 2 GPUs, I’ll have to look around for an old 2U server, or machine that can accommodate more PCIe slots.

Thanks again, Chris!

-Rodney

were you ever able to get the gpu to be something other than the UUID? mine is showing the same.

Hi!

Still no progress, but here is an update from another thread…

So I was intentional, given guidance, making sure to put the installed GPU ID in the YAML:

Things still didn’t work, as all 12 system cores throttled to over 100% and the temperature spiked to over 80 degrees C.

The use case I’m running, I’ll note is a little different than what a lot of folks do, perhaps. Typically I see users wanting to accelerate for video transcoding. For that use case requires a different set of installed drivers, as I’ve learned recently.

And Plex doesn’t seem to support use of Nvidia GPU cards, so I’ve installed Jellyfin instead for serving up movies. But it’s also worth noting that if one gets Jellyfin to transcode, using an Nvidia GPU card from a container, that doesn’t mean that acceleration on an Ollama LLM container will work with the same GPU.

Turns out CUDA drivers (the toolkit) are not required to transcode, while Ollama LLM acceleration is a CUDA workload that requires the CUDA toolkit be installed.

While it’s possible to control the GPU card VIA the installed driver and get transcoding to work, it appears the current installation of TrueNAS EE does not include the Nvidia CUDA toolkit, which is essential to running CUDA workloads like Ollama LLMs. This can be seen by the following command: nvcc --version. Also, base level driver control can be demonstrated by changing persistence mode with the following: sudo nvidia-smi -pm 1.

The first command demonstrates whether the CUDA drivers are installed, while the second command sets or unsets the idle condition.

It seems to the way to fix things is with the following command, however, apt is not supported on TrueNAS Scale:

sudo apt-get install nvidia-cuda-toolkit

Guessing the big question is, can users lobby these drivers be added to a build, or are these drivers already be there and a defect should be logged?

Thanks for your help!
-Rodney

Plex is working fine for me transcoding with my P4, have you checked these two ‘fixes’:

https://ixsystems.atlassian.net/browse/NAS-133250
https://ixsystems.atlassian.net/browse/NAS-132086

I know they got me over my speed bumps

I believe they may not be there. Does the Ollama container contain them?

If they need to be in the base OS (or installed on detect, similar to the main GPU drivers) then a Feature Request is the way to ask for that: Feature Requests - TrueNAS Community Forums

But if it’s possible to have them exist in the Docker container only, it might be possible to make a pull request directly to the TrueNAS Apps repo on Github: GitHub - truenas/apps