Enabling GPU NVidia acceleration for PixInsight (windows)
Disclaimer: I'm not the author of this tutorial, all credits to rikultalvio. The reason I decided to make a copy of it, is for translating this to spanish and french and because sometime happens that with the time some useful publications like this disappear or the original site goes down (like the Light Vortex Astronomy site).
Certain processes in PixInsight, like StarNet2 and the RC-Astro XTerminator tools, benefit massively from running on the GPU. Typically they take minutes to finish when using the CPU, but with a CUDA capable GPU they'll be done in less than 30s. This tutorial was inspired by the guide made by darkarchon, and updated to support newer GPUs. To keep things simple, the guide covers the necessary files and steps to make PixInsight use the GPU, and nothing more.
The software used here should work on most Nvidia GPUs from the last ten years; from the GTX 900-series to the RTX 4000-series, for example.
Requirements
- Before proceeding, open the following link, and make sure that your GPU has Compute Capability 3.5 or higher.
https://developer.nvidia.com/cuda-gpus
([AstroNajar]: Given that I own two powerful, fairly new graphics cards, I skipped this test).
- Use the 64-bit version of Windows 10 or Windows 11
- Update the GPU drivers; the software used here requires driver version 452.39 or higher.
Getting started
- Log in to your developer account on the NVIDIA website. If you don't have one, create one for free.
https://developer.nvidia.com/login
Download the following 4 files:
NVIDIA CUDA Toolkit 11.8.0
https://developer.download.nvidia.com/compute/cuda/11.8.0/network_installers/cuda_11.8.0_windows_network.exe
NVIDIA cuDNN 8.7.0 for CUDA 11.x
https://developer.nvidia.com/downloads/c118-cudnn-windows-8664-87084cuda11-archivezip
TensorFlow 2.9.0
https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-gpu-windows-x86_64-2.9.0.zip
zLib DLL x64 1.2.3 (Right click > Save as...)
http://www.winimage.com/zLibDll/zlib123dllx64.zip
- If you have previously installed CUDA, uninstall it if you don't have other uses for it
Setting Up
1. Replace tensorflow
- Go to 'C:\Program Files\PixInsight\bin'
- Rename tensorflow.dll to tensorflow-old.dll in case you want to use it later and don't want to re-install
- Open libtensorflow-gpu-windows-x86_64-2.9.0.zip
- Extract tensorflow.dll from 'lib' to 'C:\Program Files\PixInsight\bin'
2. Install CUDA
- Run cuda_11.8.0_windows_network.exe
- Select 'Custom (Advanced)'
- Deselect everything, then select 'Libraries' in CUDA > Runtime
- Click next, and proceed with the install
3. Install cuDNN
- Open cudnn-windows-x86_64-8.7.0.84_cuda11-archive.zip
- Extract the contents of the folder 'bin' to 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin'
- Overwrite existing files if you are updating from another version
4. Install zLib
- Open zlib123dllx64.zip
- Extract zlibwapi.dll from 'dll_x64' to 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin'
5. Edit Environment Variables
- Open the start menu, then click on "settings", search for 'environment', and click 'Edit the system environment variables'
- Click bottom right button 'Environment Variables',
- Then under 'System variables' click 'New' button. A "New System Variable" dialog will appear.
- Type TF_FORCE_GPU_ALLOW_GROWTH as variable name and true as value, then click 'OK'
- Select the variable called 'Path' under 'System variables', and click 'Edit'
- Click 'New', and add C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
- If you had previously installed a different version of the CUDA Toolkit, there might be a path pointing to that version as well; remove it if you don't need it, otherwise move it down below 11.8 on the list
- Click 'OK' to save and exit
6. Test the installation
- Open an image in PixInsight, and run StarNet2 or any RC-Astro tool
- If it's a lot faster than before, you know it's working :)
- A successful install will also show up on the GPU performance monitor when processing; depending on your setup it can be either in the 3D graph or the Cuda graph
Troubleshooting
- If CPU usage increases instead of the GPU, then re-do steps 1, 3 and 5
- If PixInsight crashes, re-do step 4
- If still not working, re-download all files and re-do every step
Warning: PixInsight re-installs and major updates will overwrite the tensorflow.dll, so step 1 must be re-done occasionally.