The PennyLane Team, has released Catalyst v0.3, a framework for quantum just-in-time compilation. This new execution pipeline allows users to scale up their PennyLane workflows. The latest release includes improvements and new features such as native Python control flow, compiler-based backpropagation, quantum control and adjoint support, and macOS functionality. Catalyst now supports backpropagation of classical processing in hybrid programs through integration with Enzyme. The team is also working on future features including asynchronous QNode execution, deeper PennyLane integration, and a device plugin system.
Catalyst v0.3: A New Release for Quantum Computing
The PennyLane Team has released the latest version of Catalyst, a framework for quantum just-in-time compilation. This new execution pipeline, Catalyst v0.3, allows users to scale up their PennyLane workflows by simply decorating them with @qjit, enabling rapid prototyping without sacrificing performance.
The team has been working on making Catalyst a top-notch quantum JIT solution and has introduced several important improvements and major new features in the Catalyst v0.3 release. These include the ability to work with native Python control flow, compiler-based backpropagation, quantum control and adjoint support, macOS functionality, and more.
Native Python Control Flow with AutoGraph
Catalyst v0.3 introduces AutoGraph, which allows users to write Catalyst-compatible programs using native Python control statements. This means that Python statements like if, else, elif, and for can be used with the @qjit decorator. Catalyst will automatically capture loops and conditional statements, and preserve the program structure under compilation. However, this feature is currently opt-in and requires TensorFlow to be installed.
Backpropagation with Enzyme
The new version of Catalyst now supports backpropagation of classical processing in arbitrary hybrid programs, through integration with Enzyme, a tool that differentiates code at the LLVM level. This allows catalyst.grad to differentiate hybrid functions that contain both classical processing and QNodes, via a combination of backpropagation and quantum gradient methods. However, backpropagation support is currently restricted to first-order derivatives and does not support circuits that involve mid-circuit measurements.
macOS Binaries Available
Catalyst v0.3 now officially supports macOS ARM devices, such as Apple M1/M2 machines, with macOS binary wheels available on PyPI. Users can simply run pip install pennylane-catalyst to start using Catalyst and @qjit with PennyLane.
Quantum Control and Adjoint Support
Catalyst v0.3 introduces two new functions, catalyst.ctrl and catalyst.adjoint, which allow for quantum control and the adjoint operation to be represented and used in compiled functions. These functions can be used in conjunction with classical control flow, such as catalyst.cond and catalyst.for_loop.
More Flexible QNode Argument and Return Handling
The new version of Catalyst offers more flexibility in both the allowed arguments and the return statement of a QNode. QJIT-compiled programs now support (nested) container types as inputs and outputs of compiled functions. This includes lists and dictionaries, as well as any data structure implementing the PyTree protocol.
Future Developments
The Catalyst team is working on several big new features for future releases. These include asynchronous QNode execution, deeper PennyLane integration, support for PennyLane transformations, a device plugin system, hybrid algorithm optimizations, and many others.
“Earlier this year, the PennyLane Team released the first versions of Catalyst, a framework for quantum just-in-time compilation. As our experimental project, Catalyst is a brand new execution pipeline that allows you to scale up your PennyLane workflows by simply decorating them with
Josh Izaac (PennyLane Team)@qjit, enabling rapid prototyping without sacrificing performance.”
“With Catalyst v0.3, we’ve introduced AutoGraph, which allows you to write Catalyst-compatible programs using native Python control statements.”
Josh Izaac (PennyLane Team)
“Catalyst now supports backpropagation of classical processing in arbitrary hybrid programs, through integration with Enzyme, a tool that differentiates code at the LLVM level.”
Josh Izaac (PennyLane Team)
“With this release, Catalyst now officially supports macOS ARM devices, such as Apple M1/M2 machines, with macOS binary wheels available on PyPI.”
Josh Izaac (PennyLane Team)
“Two new functions,
Josh Izaac (PennyLane Team)catalyst.ctrlandcatalyst.adjoint, allow for quantum control and the adjoint operation to be represented and used in compiled functions.”
“There is now a lot more flexibility in both the allowed arguments and the return statement of a QNode.” – Josh Izaac (PennyLane Team)
“In addition to these improvements, the Catalyst team has been hard at work building out the Catalyst infrastructure, to enable us to move on some big new features in the pipeline.” –
Josh Izaac (PennyLane Team)
Summary
The PennyLane Team has released Catalyst v0.3, a framework for quantum just-in-time compilation that enhances the scalability of PennyLane workflows. The new version introduces significant improvements and features such as native Python control flow, compiler-based backpropagation, quantum control and adjoint support, macOS functionality, and more flexible argument and return handling.
- The PennyLane Team, including Josh Izaac, has released Catalyst v0.3, an updated version of their quantum just-in-time compilation framework.
- The new release includes several improvements and features such as native Python control flow with AutoGraph, backpropagation with Enzyme, macOS functionality, quantum control and adjoint support, and more flexible QNode argument and return handling.
- Catalyst v0.3 now supports backpropagation of classical processing in hybrid programs through integration with Enzyme, a tool that differentiates code at the LLVM level.
- The release also introduces support for macOS ARM devices, such as Apple M1/M2 machines.
- Two new functions, catalyst.ctrl and catalyst.adjoint, allow for quantum control and the adjoint operation to be represented and used in compiled functions.
- The update also includes more flexibility in both the allowed arguments and the return statement of a QNode.
- The team has also been working on a number of improvements, including performance improvements and improved error handling.
- The PennyLane Team is planning to introduce more features in the future, including asynchronous QNode execution, deeper PennyLane integration, support for PennyLane transformations, a device plugin system, and hybrid algorithm optimizations.
