sábado, 7 de marzo de 2026

Siril: como forzar la detección de GPU en Linux Flatpak

Si hemos instalado Siril en Linux usando Flatpak podemos encontrarnos con la desagradable sorpresa de que los scripts que utilizan GPU para procesar las imágenes, no la detectan y realizan todo el trabajo usando la CPU en su lugar.

Esto ralentiza enormemente el procesado y si disponemos de una tarjeta gráfica -GPU- la estaremos desperdiciando con Siril.

En este post indico cómo solucionar este problema y hacer que Flatpak reconozca la GPU de forma que los scripts la utilicen convenientemente

Detección de GPU

En primer lugar debemos verificar si tenemos instalados correctamente los drivers para nuestra tarjeta gráfica y si Flatpak los detecta.

flatpak list | grep nvidia  
nvidia-580-126-09 org.freedesktop.Platform.GL.nvidia-580-126-09 1.4 system
Nvidia VAAPI driver org.freedesktop.Platform.VAAPI.nvidia 25.08 system

En este caso sí está viendo que tenemos los drivers de nuestra tarjeta gráfica.
Si no fuera así, los instalamos desde el Gestor de controladores de nuestro Linux, escogiendo la más reciente

A continuación deberemos verificar que dentro del entorno de Siril también son detectados.
Para ello nos vamos a Script y seleccionamos Script editor
En la ventana que se nos abrirá pegamos el siguiente texto:
import torch
print("¿GPU detectada?:", torch.cuda.is_available())
if torch.cuda.is_available():
    print("Modelo:", torch.cuda.get_device_name(0))

Y después en la parte superior de este editor seleccionamos Script > Ejecutar
12:21:53: ¿GPU detectada?: True
12:21:53: Modelo: NVIDIA GeForce RTX 3050 Ti Laptop GPU
En este caso se confirma que Siril sí puede acceder a la GPU por lo que los scripts la usarán en lugar de la CPU siempre que sea posible

Si no fuera así, cerramos Siril, abrimos un terminal y tecleamos:
flatpak override --user --device=dri org.siril.Siril

Ahora volvemos a abrir Siril y repetimos la ejecución del script para detectar la GPU

Detección de TensorRT

Si TensorRT no lo detecta (NO FUNCIONA) y aparece este error al ejecutar el script
13:22:09: Testing TensorrtExecutionProvider...
13:22:09: *************** EP Error ***************
13:22:09: EP Error /onnxruntime_src/onnxruntime/python/onnxruntime_pybind_state.cc:539 void onnxruntime::python::RegisterTensorRTPluginsAsCustomOps(PySessionOptions&, const onnxruntime::ProviderOptions&) Please install TensorRT libraries as mentioned in the GPU requirements page, make sure they're in the PATH or LD_LIBRARY_PATH, and that your GPU is supported.
13:22:09:  when using ['TensorrtExecutionProvider']

  • Cerramos Siril.
  • Abrimos un terminal y entramos en en el entorno Flatpak de Siril
    flatpak run --command=bash org.siril.Siril
  • Para saber que estamos dentro teclamos lo siguiente:
    ls /.flatpak-info

    Debería devolver /.flatpak-info
  • Creamos una carpeta temporal en nuesto disco:
    mkdir -p ~/siril_temp_install
  • Indicamos a Siril que use esa carpeta para la instalación
    export TMPDIR=~/siril_temp_install
  • Instalamos
    ~/.var/app/org.siril.Siril/data/siril/venv/bin/python3 -m pip install onnxruntime-gpu nvidia-tensorrt --index-url https://pypi.ngc.nvidia.com --extra-index-url https://pypi.org/simple

  • Esto no borra la carpeta, por lo que deberemos borrarla manualmente una vez acabe el proceso con éxito:
    rm -rf ~/siril_temp_install
  • Salimos del entorno con CTRL+D: debe aparecer exit en pantalla
  • Limpiamos restos de otras instalaciones
flatpak repair
  • Cerramos la terminal, abrimos Siril y ejecutamos de nuevo el script.

Detección de CUDA

Si nos da un error de CUDA por tener una tarjeta gráfica antigua

18:08:40: Testing CUDAExecutionProvider...
18:08:40: (x) CUDAExecutionProvider failed: [ONNXRuntimeError] : 1 : FAIL : Non-zero status code returned while running Relu node. Name:'' Status Message: CUDA error cudaErrorNoKernelImageForDevice:no kernel image is available for execution on the device
Debemos hacer un downgrade a una versión  compatible con la gráfica. Para ello cerramos Siril, abrimos un terminal y tecleamos los siguientes comandos.
flatpak run --command=bash org.siril.Siril 
export TMPDIR=/home/mahg/temp_siril 
mkdir -p /home/mahg/temp_siril
Desinstalamos la que había e instalamos una conversión compatible (11.8)
~/.var/app/org.siril.Siril/data/siril/venv/bin/python3 -m pip uninstall torch torchvision onnxruntime-gpu
~/.var/app/org.siril.Siril/data/siril/venv/bin/python3 -m pip install torch torchvision onnxruntime-gpu --index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://pypi.org/simple --timeout 1000 --no-cache-dir
Borramos carpeta temporal
rm -rf ~/siril_temp_install
Abrimos de nuevo Siril y tratamos de ejecutar el script.
Si continuara quejándose, significa que la tarjeta gráfica es demasiado antigua y no es posible usarla para los scripts de Python de Siril

No hay comentarios:

Publicar un comentario

Cómo limpiar la lente objetivo de tu refractor

Con el uso, las condiciones climáticas -viento, humedad- y entorno -polvo- nuestra lente objetivo acaba por acumular suciedad. En este post ...