catalyst.third_party.cuda.cudaqjit

cudaqjit(fn=None, **kwargs)[source]

A decorator for compiling PennyLane and JAX programs using CUDA Quantum.

Important

This feature currently only supports CUDA Quantum version 0.6.

Note

Currently, only the following devices are supported:

  • softwareq.qpp: a modern C++ statevector simulator

  • nvidia.statevec: The NVIDIA CuStateVec GPU simulator

    (with support for multi-gpu)

  • nvidia.tensornet: The NVIDIA CuTensorNet GPU simulator

    (with support for matrix product state)

Parameters:

fn (Callable) – the quantum or classical function to compile

Returns:

QJIT object.

Example

The compilation is triggered at the call site the when the quantum function is executed:

>>> circuit(jnp.array([0.5, 1.4]))
-0.47244976756708373

From PennyLane, this functionality can also be accessed via

>>> @qp.qjit(compiler="cuda_quantum")

Note that CUDA Quantum compilation currently does not have feature parity with Catalyst compilation; in particular, AutoGraph, control flow, differentiation, and various measurement statistics (such as probabilities and variance) are not yet supported.