-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Unitary Synthesis #1475
Comments
Specifically, I'm not entirely sure what the following code's intended semantics is. cudaq_register_op("custom_h",
{{M_SQRT1_2, M_SQRT1_2}, {M_SQRT1_2, -M_SQRT1_2}});
cudaq_register_op("custom_x", {{0, 1}, {1, 0}}); These are calls? Macros? What exactly is being registered? And with what? These aren't marked as |
Second order question: it may be possible for the compiler to take a constant matrix here and generate a gate list (approximation) from those values. Or perhaps this should be generated entirely in the control hardware at QIR time? And what about the synthesis case? If the compiler is going to generate the gate list, it stands to reason that it will need to do so at synthesis-time. And that affects the IR, which would need to support dynamic matrix specifications that can be instantiated by the synthesizer. |
Macros. Updated the code snippet in description. |
Will this PR provide unitary decomposition like what qiskit's |
Conceptually, yes. |
Question. I am trying to compare the depth of cuda-quantum's implementation of QSD (I assume it's QSD) vs Qiskit's implementation. May I ask how I can see the depth of the circuit in terms of U3 and CX gates? |
Thank you for the question. This feature is not yet available in CUDA-Q. I will update this issue when it becomes available. |
Describe the feature
Problem
Given a user provided arbitrary quantum unitary, synthesize it into a sequence of quantum gates.
Expectations
User API
Constraints
register_operation
cannot be inside a function decorated with@cudaq.kernel
)qubit
(cudaq::qudit<2>
).Workflow
Work items / TO-DOs
Comprehensive documentation and useful example(s): Covered in issue [docs] Add user facing documentation for custom operations and unitary synthesis #2002The text was updated successfully, but these errors were encountered: