Contrôle du pouls sur Amazon Braket - Amazon Braket

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôle du pouls sur Amazon Braket

Les impulsions sont les signaux analogiques qui contrôlent les qubits d'un ordinateur quantique. Sur certains appareils d'Amazon Braket, vous pouvez accéder à la fonction de contrôle des impulsions pour soumettre des circuits à l'aide d'impulsions. Vous pouvez accéder au contrôle du pouls via le BraketSDK, en utilisant Open QASM 3.0, ou directement via le APIs Braket. Tout d'abord, introduisons quelques concepts clés pour le contrôle du pouls dans Braket.

Frames (Images)

Un cadre est une abstraction logicielle qui agit à la fois comme une horloge dans le programme quantique et comme une phase. Le temps d'horloge est incrémenté à chaque utilisation et un signal porteur dynamique est défini par une fréquence. Lors de la transmission de signaux vers le qubit, une trame détermine la fréquence porteuse du qubit, le décalage de phase et l'heure à laquelle l'enveloppe de forme d'onde est émise. Dans Braket Pulse, la construction des cadres dépend de l'appareil, de la fréquence et de la phase. Selon le périphérique, vous pouvez choisir un cadre prédéfini ou instancier de nouveaux cadres en fournissant un port.

from braket.pulse import Frame # predefined frame from a device device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-2") drive_frame = device.frames["Transmon_5_charge_tx_frame"] # create a custom frame readout_frame = Frame(name="r0_measure", port=port0, frequency=5e9, phase=0)

Ports

Un port est une abstraction logicielle représentant tout composant matériel d'entrée/sortie contrôlant les qubits. Il aide les fournisseurs de matériel à fournir une interface avec laquelle les utilisateurs peuvent interagir pour manipuler et observer les qubits. Les ports sont caractérisés par une chaîne unique qui représente le nom du connecteur. Cette chaîne expose également un incrément de temps minimum qui indique avec quelle précision nous pouvons définir les formes d'onde.

from braket.pulse import Port Port0 = Port("channel_0", dt=1e-9)

Formes d'onde

Une forme d'onde est une enveloppe dépendant du temps que nous pouvons utiliser pour émettre des signaux sur un port de sortie ou pour capturer des signaux via un port d'entrée. Vous pouvez spécifier vos formes d'onde directement via une liste de nombres complexes ou en utilisant un modèle de forme d'onde pour générer une liste auprès du fournisseur du matériel.

from braket.pulse import ArbitraryWaveform, ConstantWaveform cst_wfm = ConstantWaveform(length=1e-7, iq=0.1) arb_wf = ArbitraryWaveform(amplitudes=np.linspace(0, 100))

Braket Pulse fournit une bibliothèque standard de formes d'onde, y compris une forme d'onde constante, une forme d'onde gaussienne et une forme d'onde dérivée supprimée par Adiabatic Gate (). DRAG Vous pouvez récupérer les données de forme d'onde à l'aide de la sample fonction pour dessiner la forme de la forme d'onde, comme indiqué dans l'exemple suivant.

gaussian_waveform = GaussianWaveform(1e-7, 25e-9, 0.1) x = np.arange(0, gaussian_waveform.length, drive_frame.port.dt) plt.plot(x, gaussian_waveform.sample(drive_frame.port.dt))
Graphique montrant l'amplitude dans le temps pour deux cas : ZaE = vrai (courbe inférieure) et zAe = faux (courbe supérieure). Les courbes ont une forme de cloche culminant à environ 0,5 seconde avec une amplitude de 0,10 a. u.

L'image précédente représente les formes d'onde gaussiennes créées à partir de. GaussianWaveform Nous avons choisi une durée d'impulsion de 100 ns, une largeur de 25 ns et une amplitude de 0,1 (unités arbitraires). Les formes d'onde sont centrées dans la fenêtre d'impulsion. GaussianWaveformaccepte un argument booléen zero_at_edges (ZaE dans la légende). Lorsqu'il est défini surTrue, cet argument décale la forme d'onde gaussienne de telle sorte que les points à t=0 et t= length soient à zéro et redimensionne son amplitude de telle sorte que la valeur maximale corresponde à l'argument. amplitude

Maintenant que nous avons abordé les concepts de base de l'accès au niveau des impulsions, nous allons maintenant voir comment construire un circuit à l'aide de portes et d'impulsions.