eclipse / xacc

XACC - eXtreme-scale Accelerator programming framework
https://xacc.readthedocs.io
BSD 3-Clause "New" or "Revised" License
166 stars 85 forks source link

IBM Accelerator to use calibration gate for pulse job submission #472

Open 1tnguyen opened 3 years ago

1tnguyen commented 3 years ago

Update IBM Accelerator to use this calibration gate for pulse job submission. The old method will be phased out 'by the end of December'.

IBM Quantum has released pulse gates to all users on open systems to attach custom gates defined via their pulse representation, called "calibrations" in Qiskit, to QASM circuits. This allows for a streamlined way to incorporate pulse-level control with the simplicity of QASM circuit construction. A tutorial is available to help you implement this feature into your code. Please note that there is a limitation to 3 qubits and 9 channels per gate for all users. This method will also become the preferred path for most workflows that previously submitted pulse jobs. The previous way of submitting pulse jobs will still work on non-open systems and ibmq_armonk; however, it is planned to be phased out by the end of December. Users will still be able to access their old pulse jobs even after December 2021.

1tnguyen commented 3 years ago

Gate calibrations in the QObj looks like:

"config": {
        "calibrations": {
            "gates": [
                {
                    "name": "my_custom_gate",
                    "qubits": [
                        0
                    ],
                    "params": [
                    ],
                    "instructions": [
                        {
                            "name": "parametric_pulse",
                            "t0": 0,
                            "ch": "d0",
                            "pulse_shape": "gaussian",
                            "parameters": {
                                "duration": 64,
                                "amp": [
                                    0.2,
                                    0.0
                                ],
                                "sigma": 8
                            }
                        }
                    ]
                }
            ]
        }
    }

my_custom_gate can then be used as a digital gate in the subsequent instructions field.