Pour améliorer la fidélité des qubits, une question indirecte se pose : peut-on améliorer la fidélité des portes en « façonnant » des impulsions plus complexes que de simples impulsions gaussiennes ? La réponse est : « examinons l’impulsion DRAG ! »
La véritable raison de l’intérêt porté au DRAG Pulse réside dans le commentaire de Joseph Bardin dans la vidéo présentation du modulateur d’impulsions cryogéniques de Google :
[21:08] Nous avons constaté que, sans recourir à des techniques comme la traînée, une enveloppe symétrique suffit. Cosinus surélevé ou gaussienne : toutes deux sont symétriques. Nous avons donc créé un réseau de sources de courant programmables, auquel nous avons ajouté les fonctions d’activation nécessaires pour générer une forme d’onde de courant en forme de gâteau. Nous pouvons ainsi programmer les amplitudes, etc.
Voici l’architecture de Google — et elle est vraiment intelligente :


Mais comment adapter une telle architecture pour générer une impulsion de traînée ? Pour répondre à cette question, il faut d’abord comprendre ce qu’est une impulsion de traînée.
Une impulsion DRAG (Derivative Removal by Adiabatic Gate) est composée d’une impulsion gaussienne standard à laquelle on ajoute sa dérivée, mise à l’échelle, à sa composante en quadrature. On obtient ainsi une impulsion à deux composantes : l’enveloppe gaussienne et sa dérivée. Cette technique permet de réduire les fuites indésirables vers les états d’énergie supérieurs et de corriger les erreurs de phase dans les qubits supraconducteurs.
Composantes d’une impulsion DRAG : Impulsion gaussienne standard :
La base de l’impulsion est une enveloppe gaussienne standard, c’est-à-dire une courbe lisse en forme de cloche. Il s’agit de la composante « en phase » \(i(t)\) de l’impulsion.
Dérivée gaussienne : une seconde composante est ajoutée à l’impulsion ; il s’agit de la dérivée de l’impulsion gaussienne standard, pondérée par un facteur appelé \(\beta\). C’est la composante « en quadrature » \(q(t)\).
Impulsion totale : L’impulsion DRAG finale est une combinaison de ces deux composantes \(v(t)\).
La dérivée est exprimée par l’équation suivante :
\[ DRAG(t) = v(t)=i(t)+q(t) = i(t)+ \beta \frac{d(i(t))}{dt} \]
Il n’y a rien de sophistiqué ici, mais il faut noter qu’il existe de nombreux types d’impulsions DRAG, et que, même si l’impulsion DRAG standard est une impulsion DRAG gaussienne, rien ne nous empêche d’avoir des compositions encore plus puissantes :
Crédit : APS
Maintenant que nous comprenons comment une impulsion DRAG est construite, nous pouvons examiner son implémentation avec le système de contrôle quantique. Dans ce cas, j’examinerai le Qblox Scheduler, qui sert de compilateur de haut niveau, permettant aux utilisateurs de définir des expériences en termes de qubits et d’impulsions tout en masquant la complexité du contrôle des instruments de bas niveau.
Le code en question est disponible sur gitlab. Le code ci-dessous est une version simplifiée du code original :
def drag( t: np.ndarray, G_amp, D_amp, duration: float, nr_sigma: float=4, phase: float=0 )
-> np.ndarray:
mu = t[0] + duration / 2
sigma = duration / (2 * nr_sigma)
# In-phase envelope
gauss_env = G_amp * np.exp(-(0.5 * ((t - mu) ** 2) / sigma**2))
# Quadrature envelope
deriv_gauss_env = -D_amp * (t - mu) / sigma * gauss_env
# generate pulses
drag_wave = gauss_env + 1j * deriv_gauss_env
# Apply phase rotation
rot_drag_wave = rotate_wave(drag_wave, phase=phase)
return rot_drag_wave
C’est en réalité assez simple, et le code d’origine offre encore plus de fonctionnalités. Consultez la documentation en ligne pour plus d’informations.
Modèle de contrôleur d’impulsions
Link to heading
Le code ci-dessus fonctionne car il suppose que le matériel sous-jacent fonctionne comme un générateur de formes d’onde arbitraires (AWG), c’est-à-dire que n’importe quelle onde peut être générée à partir d’un tampon d’échantillons. Mais que se passerait-il si elle devait être générée sur un « pulsar » (ou modulateur d’impulsions), défini comme une sorte de logique de contrôle située au niveau de l’étage cryogénique 4K ?
Modulateur d’impulsions de Google : 1re génération
Link to heading
Je pense que l’architecture de Google ne convient pas à l’impulsion DRAG car la composante en quadrature devrait être mise à l’échelle à la fois en amplitude (par le facteur β) et en durée (par le facteur σ). Je dois encore vérifier cette hypothèse, mais pour l’instant, on peut supposer que le défi consiste à offrir une flexibilité totale dans la mise en forme du signal I/Q du pulsar.
Autrement dit, le problème n’est pas que l’architecture cryogénique de Google soit incapable de générer des impulsions DRAG ; elle peut parfaitement produire des impulsions I/Q et permettre le contrôle des qubits. Cependant, l’impulsion DRAG « standard », utilisée pour les portes à un qubit de très haute fidélité, peut s’avérer sous-optimale avec cette architecture, à moins d’effectuer un étalonnage ou une compensation supplémentaire.
Modulateur d’impulsions calibré : Gen 2
Link to heading
Étant donné que la vidéo de Google date de 2019, on peut supposer qu’ils ont déjà perfectionné leur système grâce à la technologie DRAG de mise en forme des impulsions, ce que nous appellerons les cryo-pulsars de deuxième génération. Cependant, n’ayant trouvé aucune information en ligne concernant le cryo-pulsar de Bardin chez Google, nous pouvons nous référer à ces deux évolutions réalisées par d’autres centres de recherche :
SPulseGen, également connu sous le nom de générateur d’impulsions succinctes, de l’université d’Osaka, au Japon
DLR, également connu sous le nom de réduction différée des fuites, de l’Université de Delft, aux Pays-Bas
Le générateur de SPulseGen est conçu pour ajuster les paramètres d’impulsion (amplitude, durée, forme) plutôt que de simplement reproduire une forme d’onde fixe et grossière. Cette flexibilité est essentielle pour implémenter un composant DRAG (ou une « correction de dérivée ») même si la forme d’onde est quelque peu simplifiée.

Quant au DLR, il contourne l’exigence d’une mise en forme IQ « complexe » : au lieu d’avoir besoin d’un canal en quadrature dérivée continue, il utilise des répétitions retardées de l’impulsion en bande de base pour générer une interférence destructive des composantes spectrales indésirables (fuites).

Le DLR et le SPulseGen sont tous deux conçus pour relever le même défi de contrôle haute fidélité et à faible fuite des qubits, le tout dans un contexte de matériel à très faible consommation fonctionnant avec des contraintes cryogéniques, mais avec une approche opposée :
SPulseGen : conserve la DRAG et rend sa génération moins coûteuse et plus compacte.
DLR : supprime le besoin du matériel de DRAG (modulation I/Q) en inventant une nouvelle façon d’obtenir la même suppression des fuites spectrales grâce à l’interférence temporelle.
Voilà, cette note de synthèse du samedi m’a permis de mieux comprendre l’impulsion DRAG. Du point de vue de la logique de contrôle à l’étage 4K, il n’y a pas lieu de se préoccuper de la mise en forme de ces impulsions.
Le défi actuel consiste à trouver le calibrage et la compensation optimaux permettant d’obtenir la plus haute fidélité. Des approches comme la Réduction différée des fuites de l’Université de technologie de Delft auront assurément un impact significatif.
Un défi encore plus intéressant se pose lorsque l’étalonnage doit être continu, comme c’est le cas avec l’apprentissage par renforcement basé sur les réseaux de neurones (RL). Cela soulève la question de savoir si le réseau de neurones devrait/pourrait/serait exécuté à l’étape cryogénique 4K, éventuellement à l’aide de méthodes de caractérisation [in situ].
Parallèlement, de nombreuses innovations dans le domaine des circuits intégrés spécifiques à l’IA à très faible consommation, comme blumind.ai, promettent d’être déterminantes. Nous aborderons l’étude des architectures de circuits intégrés alternatives dans une note ultérieure.
Des temps passionnants, n’est-ce pas ?
References