NVIDIA / cuda-quantum

C++ and Python support for the CUDA Quantum programming model for heterogeneous quantum-classical workflows
https://nvidia.github.io/cuda-quantum/
Other
421 stars 144 forks source link

Circuit to einsum conversion #1790

Open zohimchandani opened 2 weeks ago

zohimchandani commented 2 weeks ago

Required prerequisites

Describe the feature

For an upcoming demo, we need cuQuantum to accept CUDA-Q circuits into the CircuitToEinsum function here.

zohimchandani commented 2 weeks ago

from cuquantum import cutensornet as cutn
from cuquantum import contract, CircuitToEinsum
import torch 
from qiskit.circuit import QuantumCircuit, Parameter

num_qubits = 1
measurement_ops = 'Z'
light_cone  = True 

# Define the quantum circuit with one qubit and two parameters
theta = Parameter('θ')
phi = Parameter('φ')

circuit = QuantumCircuit(num_qubits)
circuit.rx(theta, 0)
circuit.ry(phi, 0)

circuit = circuit.bind_parameters({theta: parameters[0], phi: parameters[1]})

converter = CircuitToEinsum(circuit, backend='torch')  

einsum_expression, tensor_operands = converter.expectation(measurement_ops, light_cone)

Here we can see that it can accept a Qiskit circuit, we would like it to accept CUDA-Q too.

Thanks

zohimchandani commented 2 weeks ago

Request to cuQuantum here