GPU support#

New in version 1.7.

GPU processing is supported thanks to the numpy dispatch mechanism of array functions - read NEP-18 and NEP-35 for more information. It means that most HyperSpy functions will work on a GPU if the data is a cupy.ndarray and the required functions are implemented in cupy.

Note

GPU processing with hyperspy requires numpy>=1.20 and dask>=2021.3.0, to be able to use NEP-18 and NEP-35.

>>> import cupy as cp 
>>> # Create a cupy array (on GPU device)
>>> data = cp.random.random(size=(20, 20, 100, 100)) 
>>> s = hs.signals.Signal2D(data) 
>>> type(s.data) 
... cupy._core.core.ndarray

Two convenience methods are available to transfer data between the host and the (GPU) device memory:

For lazy processing, see the corresponding section.