Documentation
This section collects technical notes and usage guides for StarNet and DeepSNR: command-line references, input behavior, data-quality guidance, and workflow examples.
CUDA acceleration setup instructions
StarNet2 and DeepSNR on Windows can use NVIDIA GPU acceleration through ONNX Runtime's CUDA execution provider. This is optional. The standard Windows packages work on CPU without CUDA, and fall back to CPU if CUDA is missing, incomplete, or incompatible.
What was confirmed
The setup below was confirmed with this Windows PixInsight environment:
- Operating system
- Windows 11.
- GPU and driver
- NVIDIA GeForce RTX 5090 with NVIDIA driver 591.86.
- CUDA capability reported by
nvidia-smi - 13.1. This is driver capability, not the runtime version to install.
- CUDA Toolkit
- CUDA Toolkit 12.9.1;
nvcc --versionreported CUDA 12.9 / V12.9.86. - cuDNN
- cuDNN 9.23.0 for CUDA 12.9.
- ONNX Runtime GPU
- ONNX Runtime GPU 1.26.0 for Windows x64.
Confirmed successful PixInsight console output:
Backend: ONNX Runtime (CUDA execution provider) Method 1: System-wide NVIDIA installer setup
This setup installs the NVIDIA driver, CUDA Toolkit, and cuDNN through
normal system installers, then makes those runtime libraries visible to
PixInsight through the Windows $PATH variable. The only files
replaced inside PixInsight are the bundled ONNX Runtime DLLs.
1. Install NVIDIA driver
Install a current NVIDIA driver, then open a new PowerShell window and verify that the GPU is visible:
nvidia-smi Expected: your NVIDIA GPU is listed. Example output:
NVIDIA-SMI 591.86
Driver Version: 591.86
CUDA Version: 13.1
GPU: NVIDIA GeForce RTX 5090
The CUDA Version printed by nvidia-smi is the
maximum CUDA version supported by the installed driver. It does not mean
the PixInsight module must use CUDA 13.x runtime DLLs.
2. Install CUDA Toolkit 12.9.1
Open the CUDA Toolkit archive and choose:
CUDA Toolkit 12.9.1 (June 2025)
Windows
x86_64
Windows 11
exe (local or network) Install through the NVIDIA installer GUI. Then open a new PowerShell window and verify the toolkit:
nvcc --version Expected output includes:
Cuda compilation tools, release 12.9, V12.9.86
Also verify Windows can find nvcc:
where.exe nvcc Expected path:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin\nvcc.exe 3. Install cuDNN 9.23.0
From the cuDNN downloads page, install the Windows x86_64 build for CUDA 12.x:
cuDNN 9.x
CUDA 12.x
Windows
x86_64
These instructions were tested with cuDNN 9.23.0. After installation,
add the CUDA 12.9 cuDNN folder to the Windows $PATH
variable through the Windows environment-variable GUI:
C:\Program Files\NVIDIA\CUDNN\v9.23\bin\12.9\x64 Use the CUDA 12.9 cuDNN folder, not the CUDA 13.x folder. The cuDNN installer may also create this CUDA 13.3 folder, which should not be used for this ONNX Runtime 1.26.0 CUDA-12 setup:
C:\Program Files\NVIDIA\CUDNN\v9.23\bin\13.3\x64 Verify cuDNN in a new PowerShell window:
where.exe cudnn64_9.dllwhere.exe cudnn_ops64_9.dll Expected output:
C:\Program Files\NVIDIA\CUDNN\v9.23\bin\12.9\x64\cudnn64_9.dll
C:\Program Files\NVIDIA\CUDNN\v9.23\bin\12.9\x64\cudnn_ops64_9.dll
Use where.exe, not where, in PowerShell. If
the checks fail, confirm the current PowerShell process sees the CUDA
and cuDNN paths:
$env:Path -split ';' | Select-String 'CUDNN|CUDA' Expected entries include:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin
C:\Program Files\NVIDIA\CUDNN\v9.23\bin\12.9\x64 If the entries are missing, close PowerShell and open a new window. If they are still missing, re-check the Windows environment variable GUI.
4. Replace ONNX Runtime DLLs in PixInsight
Close PixInsight, then download and extract ONNX Runtime GPU 1.26.0 for Windows x64 from GitHub.
From the extracted ONNX Runtime GPU lib folder, copy these
files:
onnxruntime.dll
onnxruntime_providers_shared.dll
onnxruntime_providers_cuda.dll into the PixInsight binary folder:
C:\Program Files\PixInsight\bin
Accept Windows administrator prompts if shown and replace the existing
files. The important file that proves the GPU provider is available is
onnxruntime_providers_cuda.dll.
5. Confirm in PixInsight
Start PixInsight normally and run StarNet2 or DeepSNR. Successful CUDA setup prints:
Backend: ONNX Runtime (CUDA execution provider) If CUDA cannot initialize, the module continues on CPU and prints:
ONNX Runtime CUDA execution provider unavailable; using CPU.
Backend: ONNX Runtime (CPU execution provider) The first run after installing the GPU runtime may take longer while ONNX Runtime and CUDA initialize. Subsequent runs should start normally.
Optional check: open Task Manager, switch to the Performance tab, select the NVIDIA GPU, and watch GPU activity during processing.
Method 2: Self-contained DLL Overlay
This fallback setup avoids relying on the system $PATH
variable by copying every required GPU runtime DLL directly into
PixInsight's bin folder. This is not as clean because it
puts many library files into the PixInsight installation directory, but
it avoids global runtime-path changes and should not affect software
outside PixInsight.
1. Install NVIDIA driver
Install a current NVIDIA driver, then open a new PowerShell window and verify that the GPU is visible:
nvidia-smi Expected: your NVIDIA GPU is listed. Example output:
NVIDIA-SMI 591.86
Driver Version: 591.86
CUDA Version: 13.1
GPU: NVIDIA GeForce RTX 5090
The CUDA Version printed by nvidia-smi is the
maximum CUDA version supported by the installed driver. It does not mean
the PixInsight module must use CUDA 13.x runtime DLLs.
2. Replace ONNX Runtime DLLs in PixInsight
Close PixInsight, then download and extract ONNX Runtime GPU 1.26.0 for Windows x64 from GitHub.
From the extracted ONNX Runtime GPU lib folder, copy these
files:
onnxruntime.dll
onnxruntime_providers_shared.dll
onnxruntime_providers_cuda.dll into the PixInsight binary folder:
C:\Program Files\PixInsight\bin 3. Copy CUDA and cuDNN runtime DLLs into PixInsight bin folder
Use the ONNX Runtime Python GPU package as a source for the CUDA 12.x and cuDNN 9.x runtime DLLs:
onnxruntime-gpu[cuda,cudnn]==1.26.0 Run this command in PowerShell to install the package into a temporary folder:
py -3 -m pip install --target "$env:TEMP\project-cosm-ortgpu-python" "onnxruntime-gpu[cuda,cudnn]==1.26.0" Find the required DLLs under these directories:
%TEMP%\project-cosm-ortgpu-python\nvidia\cublas\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\cuda_nvrtc\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\cuda_runtime\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\cudnn\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\cufft\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\curand\bin
%TEMP%\project-cosm-ortgpu-python\nvidia\nvjitlink\bin The tested dependency versions were:
nvidia-cublas-cu12 12.9.2.10
nvidia-cuda-nvrtc-cu12 12.9.86
nvidia-cuda-runtime-cu12 12.9.79
nvidia-cudnn-cu12 9.23.0.39
nvidia-cufft-cu12 11.4.1.4
nvidia-curand-cu12 10.3.10.19
nvidia-nvjitlink-cu12 12.9.86
onnxruntime-gpu 1.26.0 Copy these runtime DLLs into the same PixInsight binary folder:
cublas64_12.dll
cublasLt64_12.dll
cudart64_12.dll
cudnn64_9.dll
cudnn_adv64_9.dll
cudnn_cnn64_9.dll
cudnn_engines_precompiled64_9.dll
cudnn_engines_runtime_compiled64_9.dll
cudnn_engines_tensor_ir64_9.dll
cudnn_ext64_9.dll
cudnn_graph64_9.dll
cudnn_heuristic64_9.dll
cudnn_ops64_9.dll
cufft64_11.dll
cufftw64_11.dll
curand64_10.dll
nvJitLink_120_0.dll
nvrtc64_120_0.dll
nvrtc64_120_0.alt.dll
nvrtc-builtins64_129.dll 4. Confirm in PixInsight
Start PixInsight normally and run StarNet2 or DeepSNR. Successful CUDA setup prints:
Backend: ONNX Runtime (CUDA execution provider) If CUDA cannot initialize, the module continues on CPU and prints:
ONNX Runtime CUDA execution provider unavailable; using CPU.
Backend: ONNX Runtime (CPU execution provider) The first run after installing the GPU runtime may take longer while ONNX Runtime and CUDA initialize. Subsequent runs should start normally.
Optional check: open Task Manager, switch to the Performance tab, select the NVIDIA GPU, and watch GPU activity during processing.