Skip to content

Catalyst v0.1.2

Compare
Choose a tag to compare
@dime10 dime10 released this 04 Apr 18:21

New features

  • Add an option to print verbose messages explaining the compilation process
    #68

  • Allow catalyst.grad to be used on any traceable function (within a qjit context).
    This means the operation is no longer resticted to acting on qml.qnodes only.
    #75

Improvements

  • Work in progress on a Lightning-Kokkos backend:

    Bring feature parity to the Lightning-Kokkos backend simulator.
    #55

    Add support for variance measurements for all observables.
    #70

  • Build the runtime against qir-stdlib v0.1.0.
    #58

  • Replace input-checking assertions with exceptions.
    #67

  • Perform function inlining to improve optimizations and memory management within the compiler.
    #72

Breaking changes

Bug fixes

  • Several fixes to address memory leaks in the compiled program:

    Fix memory leaks from data that flows back into the Python environment.
    #54

    Fix memory leaks resulting from partial bufferization at the MLIR level. This fix makes the
    necessary changes to reintroduce the -buffer-deallocation pass into the MLIR pass pipeline.
    The pass guarantees that all allocations contained within a function (that is allocations that are
    not returned from a function) are also deallocated.
    #61

    Lift heap allocations for quantum op results from the runtime into the MLIR compiler core. This
    allows all memref buffers to be memory managed in MLIR using the
    MLIR bufferization infrastructure.
    #63

    Eliminate all memory leaks by tracking memory allocations at runtime. The memory allocations
    which are still alive when the compiled function terminates, will be freed in the
    finalization / teardown function.
    #78

  • Fix returning complex scalars from the compiled function.
    #77

Contributors

This release contains contributions from (in alphabetical order):

Ali Asadi,
David Ittah,
Erick Ochoa Lopez,
Sergei Mironov.