Getting QGIS to use dedicated graphics card (GPU) over integrated?
I am a GIS developer and geospatial analyst. I use QGIS professionally. QGIS does make limited use of parallelized GPU acceleration, but only for raster rendering, namely:
- slope
- aspect
- hillshade
- ruggedness
The option is baked in since the QGIS 3 (Shout out to Alessandro Pasotti). In order to activate this capability, you need to do the following on Ubuntu 18.04:
- Install
mesa-opencl-icd
(to enable GPU C++ acceleration) - Install
ocl-icd-opencl-dev
(to enable CPU multi-threaded parallelism) - Install
clinfo
to check Opencl status on your machine
Go to QGIS Settings -> Acceleration -> then tick the case "Enable OpenCL Acceleration" your device must appear in the list.
Some GPU accelerated tasks like Blender Rendering requires AMD distributed drivers (proprietary). Despite a common circulating myth, you do not have to sacrifice the awesomeness of the libre amdgpu driver for the finicky amdgpu-pro to get those working. Simply download the right driver from AMD website then install the non pro version with this command: amdgpu-install -y --headless --opencl=pal,legacy
I am not aware that GPU acceleration is used other than that within QGIS. Otherwise why not use multithreading and multiprocessing capabilities In PyQGIS and unleash all python3 power to any kind of parallelized algorithm?
PS: I do not have advice Nvidia wise, since I do not own an Nvidia card and I believe (subjectively maybe) that AMD is way more suited to Linux Systems with their awesome free amdgpu driver.
QGIS doesn't make use of the GPU for any work it does, render or otherwise.