GPU ChecklistDo you have a Nvidia CUDA enabled GPU?
To use Huygens GPU acceleration you need a CUDA-enabled Nvidia graphics card with a minimum compute capability of 3.0. You can find the compute capability of your graphics card on this page. You can find an overview of NVIDIA cards that can be used in combination with the Huygens GPU option here.
Have you installed both the Nvidia driver for your specific GPU card and the CUDA Toolkit?
Huygens currently requires two libraries. The first is the "Cuda library" ("nvcuda.dll" on Windows and "libcuda.so" on Linux), which is usually included in the installation of the device driver for the graphics card that is installed with or by the operating system. The second is the "Cuda FFT library" ("cufft64_70.dll", "cufft64_75.dll", or "cufft64_80.dll" respectively for Cuda versions 7.0, 7.5 and 8.0 on Windows, or "libcufft.so" on Linux). The Cuda FFT library can be installed as part of the "CUDA Toolkit", which is supplied by Nvidia. The Nvidia graphics driver is also part of this Cuda Toolkit. If Huygens reports in the GPU status window
[OK] Succesfully loaded CUDA library
and then subsequently
[ERROR] Could not link with cufft. Failed to load the CUDA FFT library
this would indicate that the driver is installed, but the CUDA Toolkit is not.
You can install the Nvidia driver and CUDA using one of the Nvidia installers. In case the driver was already installed, we recommend to check the version of the already installed driver and compare it to the one included in the CUDA Toolkit installer, and only let the CUDA Toolkit reinstall the driver in case its version is newer (keeping the existing driver if the CUDA Toolkit's version is older).
You may encounter problems installing on ubuntu 16.04 for a Geforce GTX 650 card. In this case, cuda is also available in the ubuntu-multiverse repository. The package can be installed using:
sudo apt install nvidia-cuda-dev
Have you installed the GPU version of the Huygens software?
Huygens GPU acceleration is available from Huygens version 15.10. You can download Huygens from our download page. GPU-accelerated Huygens deconvolution is available for Windows and GNU/Linux (Ubuntu / Debian / Red Hat / Fedora / CentOS). As Apple does not sell new OS X systems with Nvidia CUDA-enabled graphics cards and has stated that they will not do so unfortunately, SVI cannot offer the GPU Options for OS X systems.
Do you have a valid license for GPU acceleration?
Usage of small GPUs by Huygens is free if you have Small GPU card. For medium range or high-end GPU cards, you either need a Medium GPU option or a Large GPU option (g2) in your license. You can find an overview of suitable GPU cards for each of these options here.
If you want to see whether your current license fits the specifications of your GPU, open the Huygens License Overview (via the Help menu) and select the active license. Click explain and check if the GPU flag 'g1' or 'g2' is present under Flags. If this is not the case, please contact license at svi.nl.
Have you enabled the GPU acceleration?
You can enable GPU acceleration in the Preferences Window (Edit > Preferences...) by checking "Enable GPU acceleration". If the checkbox is disabled you don't have a valid license for GPU acceleration or Nvidia CUDA enabled GPU in your system.
Have you checked the status of GPU acceleration?
You can check the status of the GPU acceleration by opening the GPU status window. The GPU status window is available in the toolbar by default and accessible in Huygens through the main menu under Help.
The GPU status window displays a warning, how to solve this?
Depending on the type of warning, please check the following:
- No CUDA library was found: Huygens could not find the CUDA library, did you install it in the default directory? Also make sure that you have the latest Nvidia drivers for your card installed.
- CUDA library too old: Please install a newer version of CUDA. CUDA 7.5 is preferred.
- Loading CUDA library failed: Huygens could not load the CUDA library, are you sure it is installed correctly?
- GPU performance too low: The performance of your GPU is too low and will not be used. Processing on the CPU is likely to be faster.
Does my GPU have enough memory available?
You can check the memory usage of your graphics card in the GPU status window. The global memory usage and the memory usage of the Hugens instance that you are currently using are reported. Global memory usage is memory usage by the Operating System, Huygens and other active programs. If there is not enough memory available you can try closing other applications to free up some GPU memory. Setting the number of bricks to one during deconvolution may force the deconvolution to the CPU because single brick operation may require more memory than available on the GPU. In some cases, microscopy conditions necessitate large overlaps between adjacent bricks. In these cases multi brick deconvolution becomes inefficient and single brick processing is preferable, even if that means processing must be done on the slower CPU.