Skip to content
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

Decompose circuits onto the native gate set of the backend #138

Open
jcjaskula-aws opened this issue Jan 23, 2024 · 3 comments
Open

Decompose circuits onto the native gate set of the backend #138

jcjaskula-aws opened this issue Jan 23, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@jcjaskula-aws
Copy link
Collaborator

jcjaskula-aws commented Jan 23, 2024

What is the expected behavior?

One could leverage further the qiskit transpiler to compose circuits onto the native gate set of the backend. A possible user experience could look like

backend = AWSBraketProvider().get_backend("...")
circuit = QuantumCircuit(2)
circuit.x(0)
circuit.y(1)
circuit.rzz(1, 0, 1)
to_braket(circuit, backend, native=True)
@speller26
Copy link
Collaborator

This is pretty straightforward if we only care about transpiling to the native gateset. However, this isn't enough to create a truly native circuit, since considering only the gateset can produce a circuit where 2q gates are applied to non-adjacent qubits. To accurately compile to a native circuit, we'll need to consider a Target.

@jcjaskula-aws
Copy link
Collaborator Author

Agreeing. This is primarily a follow-up of #91. Additionally, what we have for Aspen should work out of the box for other devices.

@speller26
Copy link
Collaborator

There are actually two more things getting in the way of native transpilation:

  1. The service does not provide expose parameter ranges for native gates
  2. Target only allows us to specify unbounded parameter ranges (like RXGate(Parameter("theta"))) or single angles (like RXGate(np.pi)) for parametrized gates; it doesn't provide a way to specify parameter ranges

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants