Native gates and operations
Each processor family has a native gate set. By default, the QPUs in each family only support running the gates and operations in the native gate set. Thus, every gate in the circuit must be translated (by the transpiler) to the elements of this set.
You can view the native gates and operations for a QPU either with Qiskit or on the IBM Quantum™ Platform Compute resources page.
The terms native gates and basis gates are often used interchangeably. However, you can specify a different set of basis gates to use, while the native gate set never changes. For information about changing the basis gates, see the Represent quantum computers topic.
Find the native gate set for a QPU
With Qiskit
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel="ibm_quantum")
for backend in service.backends():
config = backend.configuration()
if "simulator" in config.backend_name:
continue
print(f"Backend: {config.backend_name}")
print(f" Processor type: {config.processor_type}")
print(f" Supported instructions:")
for instruction in config.supported_instructions:
print(f" {instruction}")
print()
On IBM Quantum Platform
Select any QPU on the Compute resources tab. The default gates for that QPU are listed under Details. Note that the non-unitary operations are not listed here; use the method in Qiskit described above to see all native gates and operations for a QPU.
Tables of gates and operations, by processor family
Heron
Name | Notes |
---|---|
CZ | two-qubit gate |
RZ | single-qubit gate |
SX | single-qubit gate |
X | single-qubit gate |
ID | single-qubit gate wait cycle |
reset | single-qubit gate, non-unitary; not the same as the initialization done at the start of a circuit to prepare the all 0's state |
if_else | control flow for classical feedforward |
for_loop | control flow for classical feedforward |
switch_case | control flow for classical feedforward |
measure | |
delay |
Eagle
Name | Notes |
---|---|
ECR | two-qubit gate |
RZ | single-qubit gate |
SX | single-qubit gate |
X | single-qubit gate |
ID | single-qubit gate wait cycle |
reset | single-qubit gate, non-unitary; not the same as the initialization done at the start of a circuit to prepare the all 0's state |
if_else | control flow for classical feedforward |
for_loop | control flow for classical feedforward |
switch_case | control flow for classical feedforward |
measure | |
delay |
Falcon
Name | Notes |
---|---|
CX | two-qubit gate |
RZ | single-qubit gate |
ID | single-qubit gate wait cycle |
reset | single-qubit gate, non-unitary; not the same as the initialization done at the start of a circuit to prepare the all 0's state |
if_else | control flow for classical feedforward |
for_loop | control flow for classical feedforward |
switch_case | control flow for classical feedforward |
measure | |
delay |
The init_qubits
flag, set as a primitive execution option, controls whether qubits are reset to the zero state at the start of each circuit. Its default value is True
, indicating that the qubits should be reset. If False
, the qubits will begin in the final state from the previous shot, and you must manually insert resets if you want to reset them to the zero state. If a job consists of multiple circuits, then the shots are executed in a "round-robin" fashion. That is, each circuit will be executed in sequence to obtain one shot from each circuit. This process is then repeated until the requested number of shots has been obtained from all circuits.
Next steps
- Read about basis gates in the Represent quantum computers topic.
- Apply your knowledge of basis gates to a tutorial in IBM Quantum Learning.