# Optimizing Ginga’s Performance¶

There are several ways to optimize the performance of certain aspects of Ginga’s operation.

## OpenCL Acceleration¶

Ginga includes support for OpenCL accelerated array operations for some operations (e.g. rotation). This support is not enabled by default.

To enable OpenCL support, install the pyopencl module, e.g.:

$pip install pyopencl If you are building your own program using a ginga viewer widget, simply enable the support by: from ginga import trcalc trcalc.use('opencl') If you are using the reference viewer, you can add the command line option --opencl to enable support. Alternatively, you can add the following line to your Ginga general options configuration file ($HOME/.ginga/general.cfg):

use_opencl = True

Note

pyopencl may prompt you if it can’t figure out which device is the obvious choice to use as for hardware acceleration. If so, you can set the PYOPENCL_CTX variable to prevent being prompted in the future.

Example of being prompted by pyopencl package:

$ginga NVIDIA: no NVIDIA devices found Choose platform: [0] <pyopencl.Platform 'Intel(R) OpenCL' at 0x2d95fd0> [1] <pyopencl.Platform 'Clover' at 0x7f13f3ffcac0> Choice [0]: Set the environment variable PYOPENCL_CTX='' to avoid being asked again. ## OpenCv Acceleration¶ Ginga includes support for OpenCv accelerated operations (e.g. rotation and rescaling). This support is not enabled by default. To enable OpenCv support, install the python opencv module (you can find it here). If you are building your own program using a ginga viewer widget, simply enable the support by: from ginga import trcalc trcalc.use('opencv') If you are using the reference viewer, you can add the command line option --opencv to enable support. Alternatively, you can add the following line to your Ginga general options configuration file ($HOME/.ginga/general.cfg):

use_opencv = True

## numexpr Acceleration¶

Ginga can use the numexpr package to speed up rotations. However, this is only used if the OpenCL and OpenCv optimizations are not being used and the performance gain is not nearly as dramatic as with the latter.

To enable numexpr acceleration, simply install the package, e.g.:

\$ pip install numexpr

It will be automatically detected and used when appropriate.