この記事について
- メモです。
- Amazon Braketにおいてゲート型量子コンピュータであるIonQ、Rigetti Aspen-8と量子シミュレータであるSV1シミュレータでどんな量子回路を使うことができるかを確認する方法を示します。
- 記事作成日は 2021/01/18のものなのでその時に使えている量子回路群を示しています。
また、量子コンピュータ関係の他の記事は、下記で紹介しています。
AmazonBraketで指定できる回路群の確認
最低限 AwsDeviceをimportする必要があります。
どのデバイスを使うか指定する必要があります。
確認したいデバイスがある場合は下のソースコードでコメントアウトを外してください。
# SV1の指定
device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1")
# Rigetti Aspen-8の指定
#device = AwsDevice("arn:aws:braket:::device/qpu/rigetti/Aspen-8")
# IonQの指定
# device = AwsDevice("arn:aws:braket:::device/qpu/ionq/ionQdevice")
あとは以下のコードを実行するだけで確認できます。
device_properties = device.properties
device_operations = device_properties.dict()['action']['braket.ir.jaqcd.program']['supportedOperations']
print('Quantum Gates supported by this device:\n',device_operations)
比較
比較してみます。
上記のソースコードで確認したいデバイスでコメントを外してください。
それぞれの回路で以下のような量子回路セットを表現できます。
SV1
['ccnot', 'cnot', 'cphaseshift', 'cphaseshift00', 'cphaseshift01', 'cphaseshift10', 'cswap', 'cy', 'cz', 'h', 'i', 'iswap', 'pswap', 'phaseshift', 'rx', 'ry', 'rz', 's', 'si', 'swap', 't', 'ti', 'unitary', 'v', 'vi', 'x', 'xx', 'xy', 'y', 'yy', 'z', 'zz']
Rigetti Aspen-8
['cz', 'xy', 'ccnot', 'cnot', 'cphaseshift', 'cphaseshift00', 'cphaseshift01', 'cphaseshift10', 'cswap', 'h', 'i', 'iswap', 'phaseshift', 'pswap', 'rx', 'ry', 'rz', 's', 'si', 'swap', 't', 'ti', 'x', 'y', 'z']
IonQ
['x', 'y', 'z', 'rx', 'ry', 'rz', 'h', 'cnot', 's', 'si', 't', 'ti', 'v', 'vi', 'xx', 'yy', 'zz', 'swap', 'i']
回路設計をする際には是非参考にしてみてください。