Changelog

1.10.0

  • Support numpy 2.x.

  • Support pytest 8.

  • Drop support for Python versions older than 3.8, and update the code to use modern syntax.

  • Autoformat the code with ruff, and use ruff for linting.

1.9.0

  • Make Fft work with CUDA 12.9. Note that the work_area slot may now be absent in some cases.

  • Bring readthedocs configuration up to date.

1.8.1

  • Use np.prod() instead of deprecated np.product().

  • Improve the exception display when accessing an unknown slot.

1.8.0

  • Add KATSDPSIGPROC_TUNE_DB environment variable to override the location of the tuning database.

  • Remove use of deprecated numba.generated_jit() decorator.

1.7.0

1.6.1

  • Fix a race condition that sometimes caused events passed to async_wait_for_events() to be garbage-collected in a worker thread, and thus leak if the CUDA context could not be made current.

1.6.0

1.5.0

  • Add KATSDPSIGPROC_TUNE_MATCH environment variable to control use of partial matches from the autotuning database.

1.4.3

  • Switching testing from nose to pytest.

  • Some packaging modernisation.

  • Fix some links to other packages in the docs.

  • Fix the return annotation on katsdpsigproc.resource.wait_until().

  • Fix a spurious warning about a future exception not being consumed if an exception is thrown in the scope of a ResourceAllocation context manager.

  • Change return type annotations on the abstract base classes to work better with mypy.

1.4.2

  • Change some return type annotations on abstract base classes to work around mypy limitations.

1.4.1

  • Destroy cuFFT plan when FftTemplate is garbage collected. This lack was (for unknown reasons) causing segmentation faults when repeatedly creating and destroying contexts without cleaning up the plans.

  • Fix a potential failure of FftTemplate on 32-bit systems due to an incorrect type signature.

  • Fix documentation on readthedocs by updating sphinxcontrib-tikz.

1.4

  • Add a module for FFTs (using cuFFT).

1.3

  • Add a pytest plugin.

1.2

  • Add a user guide.

  • Update the dependencies.

  • Fix the type annotations to work with numpy 1.20.

  • Fix deprecated usage of np.bool.

  • Fix handling of Context.compile when no extra flags are passed.

  • Fix enqueue_zero_buffer being run on the default CUDA stream.

  • Fix sequencing of SVMArray get and set operations with other commands in the provided command queue.

1.1

  • Use BLOCKING_SYNC for CUDA events, to avoid spinning on the CPU.

  • Drop support for Python 3.5.

  • Add type annotations for many classes.

  • Make some classes abstract base classes (they were already semantically, but now it’s indicated using abc.

  • Introduce some abstract base classes to underly the CUDA and OpenCL implementations.

1.0

This is the first versioned release.