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 systemNvidia VAAPI driver org.freedesktop.Platform.VAAPI.nvidia 25.08 system
import torchprint("¿GPU detectada?:", torch.cuda.is_available())if torch.cuda.is_available():print("Modelo:", torch.cuda.get_device_name(0))
12:21:53: ¿GPU detectada?: True12:21:53: Modelo: NVIDIA GeForce RTX 3050 Ti Laptop GPU
flatpak override --user --device=dri org.siril.Siril
Detección de TensorRT
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
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
flatpak run --command=bash org.siril.Sirilexport TMPDIR=/home/mahg/temp_sirilmkdir -p /home/mahg/temp_siril
~/.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
rm -rf ~/siril_temp_install
No hay comentarios:
Publicar un comentario