Version 6 (modified by 8 years ago) (diff) | ,
---|
CSC OpenCL
This CSC module takes advantage OpenCL backends to parallelize the conversion process and speed things up.
Backends are available for many types of GPU
s and CPU
s.
The performance of the OpenCL backends vary widely, generally speaking GPU
s have the edge over CPU
s despite the added cost of having to transfer the data to and from the GPU
. More importantly, whilst the GPU
is busy doing CSC, the CPU
is free for other tasks, which reduces overall system load and latency.
csc_opencl
Installation
As of v0.11, the OpenCL
module is installed by default, but to actually use this module you must ensure that OpenCL
and providers are installed on your system, which is beyond the scope of this project.
At runtime, the server should detect the availability of OpenCL
and print the platforms and devices it chose:
PyOpenCL loaded, header version: 1.2, GL support: False using platform: NVIDIA CUDA (NVIDIA Corporation) using device: GPU: GeForce GTX 760 (OpenCL 1.1 CUDA / OpenCL C 1.1 )
Links
- this module relies on PyOpenCL
- original feature request ticket with more information: #422
- csc_opencl module source
Module Options
- select which device type is used as backend using:
XPRA_OPENCL_DEVICE_TYPE=devicetype xpra start ...
Where devicetype
is either GPU
or CPU
.
- choose the
OpenCL
implementation to use when more than one are installed:XPRA_OPENCL_PLATFORM="Intel" xpra ...
- select a specific
OpenCL
device when more than one is available:XPRA_OPENCL_DEVICE_NAME="GeForce GTX 760" xpra ...
To get more information use:
xpra -d opencl start ...
(versions older than v0.12 required the use of the XPRA_OPENCL_DEBUG=1
environment variable)