-
Notifications
You must be signed in to change notification settings - Fork 0
Memo
yamamoto-takahiro edited this page Sep 30, 2019
·
1 revision
-
cirq-qulacs
については既存のqasm
形式の回路を parse して実行している - 部分的なパーサをいちいち書くのが大変なので最終的には
.qasm
を使わない形にしたい (staticな.qasm
に頼らないBM code)
-
Qulacs
の異なるバージョンや実装方法間の BM を取る- 我々がボトルネックの検討や今後の実装の参考に使う
- Qulacs のユーザが自身の計算機と他の計算機でどの程度のパフォーマンスに違いがあるかの比較に使える
-
Qulacs
と別のライブラリの BM を取る- ライブラリを選ぶ一般ユーザに対する優位性のアピールに使う
-
cirq-qulacs
のようなQulacs
をプラグインとした時の BM を取る- 既に
Cirq
を使っている人や,Cirq
を作っている Google の開発チームにアピールするのに使う
- 既に
- Qulacs で QV 測定の回路を実行/コードは Qulacs 本体の repo に配置
- それぞれのライブラリごとにある程度最適化された個別のコードを実装し,
simulator-benchmarking
のような repo に配置/ここで各ライブラリに合わせて BM のコードを更新し, 様々な計算機や用途で多彩な比較を載せておく - シミュレータ本体である
Cirq
側で分岐したコードを書く必要があるため BM のためにはqulacsplus
にあるコードとは別のものが必要になる/コードはcirq-qulacs
などの wrapper の repo に配置
- Qulacs
- Cirq
- Qiskit Aer
- (Q#)
- ProjectQ
- PyQuil
- QuPy
- Blueqat
- シミュレータによっては
qasm u3
に相当するゲートが1ゲートとして作れない. この場合分解して3ゲートになってしまうと意図せず不利になってしまう. これを回避するためqasm u3
が無いライブラリでは概ね同じ時間がかかるとみなしてRX
ゲートを用いた - ライブラリ独自の最適化をどこまで許すかが微妙になる. 特に
ProjectQ
はデフォルトで勝手にゲートを合成し高速なシミュレートを行う.blueqat
は過去の実行した量子回路のハッシュを保持していて, 同じ量子回路を実行するとシミュレートせず過去の結果を出力するなどの機能がある (オフにして検証した).