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

Missing basis_gates in aqt_keysight_qpu provider #975

Open
cdbf1 opened this issue Jun 24, 2024 · 3 comments
Open

Missing basis_gates in aqt_keysight_qpu provider #975

cdbf1 opened this issue Jun 24, 2024 · 3 comments

Comments

@cdbf1
Copy link
Contributor

cdbf1 commented Jun 24, 2024

What is happening?

When calling the get_target_info() method on the aqt_keysight_qpu provider the basis_gates value is currently showing as None. Should this instead be showing the basic gate set of the device?

How can we reproduce the issue?

The snippet:

provider = qss.SuperstaqProvider()
aqt_keysight_compiler = provider.get_backend("aqt_keysight_qpu")
aqt_keysight_compiler.target_info()

returns the dictionary:

{
    'backend_name': 'aqt_keysight_qpu',
    'backend_version': 'n/a',
    'n_qubits': 4,
    'basis_gates': None,
    'gates': [],
    'local': False,
    'simulator': False,
    'conditional': False,
    'open_pulse': False,
    'memory': False,
    'max_shots': None,
    'coupling_map': [[4, 5], [5, 4], [5, 6], [6, 5], [6, 7], [7, 6]],
    'description': '4 qubit device',
    'supports_midcircuit_measurement': False
}

while I was expecting the 'basic_gates' to return a list of the gates available on this device.

What should happen?

I was expecting the 'basis_gates' to return a list of the gates available on this device.

Environment

  • qiskit-superstaq version: 0.5.19
  • Operating system: WSL with Ubuntu 22.04.3 LTS
  • Python version: 3.11.9
  • Any other relevant dependencies:

Any additional context?

No response

@cdbf1 cdbf1 added the bug Something isn't working label Jun 24, 2024
@bharat-thotakura bharat-thotakura removed the bug Something isn't working label Jun 27, 2024
@dowusu-antwi
Copy link
Contributor

Might've been covered in dev meeting, but as we already warn users compiling to AQT when there are no gate/pulse configs present:

# Create a circuit and compile to AQT without configs uploaded.
circuit = cirq.Circuit(cirq.H(cirq.q(0)))
compiler_output = service.aqt_compile(circuit1)
# Generates the following warning:
# ~/.../python3.11/site-packages/cirq_superstaq/compiler_output.py:282:
#     UserWarning: This output only contains compiled circuits (using a default AQT gate set)...

so we could similarly add a warning to target_info.

Also, somewhat tangentially: @richrines1 can aqt_get_configs and aqt_download_cofigs be unified? (If there's a reason they're separate, can we document it?)

@richrines1
Copy link
Contributor

so i think that warning and all the /aqt*configs endpoints will soon be removed altogether:

  • in practice everyone tends to re-upload their configs every time they compile, so it makes more sense to have users pass them in as arguments to aqt_compile() instead of storing them server-side
  • we're also currently working on making the aqt compiler less dependent on qtrl configs altogether (and instead providing other mechanisms to pass in relevant device info)

once these changes are made, it will maybe make sense to allow the same configs/device info to be passed to target_info? that way we could return things like the correct basis gate set

@bharat-thotakura
Copy link
Contributor

This issue might be a duplicate sub-issue of #678

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants