GPU Acceleration

In all modules, suitable heavy arithmetic is offloaded to your Graphics Process Unit (GPU).

GPUs offer enormous advantages in compute power, under the right circumstances.

Depending on your hardware configuration and module, speed-ups versus the CPU-only version can range from 3x - 20x.

Compatibility

StarTools supports virtually all modern GPUs and iGPUs on all modern Operating Systems.

StarTools is compatible with any GPU drivers that support OpenCL 1.1 or later. Almost all GPU released after ~2012 should have drivers available that expose this API.

StarTools GPU acceleration has been successfully tested on Windows, macOS and Linux with the following GPU and iGPU solutions;

  • Nvidia GT/GTS/GTX 400, 500, 600, 700, 800M, 900, 1000 series
  • Nvidia RTX series
  • AMD HD 6700 series, HD 7800 series, HD 7900 series,R7 series, R9 series, RX series
  • Intel HD 4000, HD 5000, UHD 620, UHD 630

Please note that if you card's chipset is not listed, StarTools may still work. If it does not (or does not do so reliably), please contact us.

If you run into instabilities

Not all GPUs, operating systems and GPU drivers are created equal.

Some more consumer-oriented operating systems (e.g Windows, macOS), by default, assume the GPU is only used for graphics processing and not for compute tasks. If some compute tasks do not complete quickly enough, some drivers or operating systems may assume a GPU hang, and may reset the driver. This can particularly be an issue on systems with a relatively underpowered GPU (or iGPU) solution in combination with larger datasets. Please see the FAQ section on how to configure your operating system to mimimise this problem. Alternatively, you may consider using the CPU-only version.

Depending on your GPU monitoring application, it may appear your GPU is only used partially.

StarTools' algorithms push hardware to the limit and your GPU is no exception. If your GPU or power supply is ageing, StarTools will quickly lay bare weaknesses in thermal and power management. Similarly, laptops with iGPUs or discrete GPUs will have to work harder to rid themselves of waste heat.

Burst loads versus sustained loads

Depending on your GPU monitoring application, it may appear your GPU is only used partially. This is not the case; your GPU solution is used and loaded up 100% where possible. However, as opposed to other tasks like video rendering or gaming, GPU usage in image processing tends to happens in short, but very intense bursts.

Depending on how your monitoring application measures GPU usage, these bursts may be too short to register. Spikes are averaged out over time by many monitoring applications. With the GPU loaded only for short times, but the load averaged out over longer periods, many monitoring applications make it appear only partial usage is happening.

If your monitoring application can show maximum values (on Windows you can try GPU-Z or Afterburner, on Linux the Psensor application), you should immediately see the GPU being maxed out. For examples of heavy sustained GPU activity, try the Deconvolution module with a high number of iterations or the Super Structure module.