量子コンピュータ関連のアプリケーション開発を行っている研究者や企業の方の負担を減らすために、積極的にベンチマークを取り、結果を共有しております。今回は、1000量子ビットのQAOAと呼ばれる組合せ最適化問題を解くための問題のベンチマークです。MAXCUT問題を解いています。
最初に問題設定のグラフを見てみます。そろそろ1000量子ビットで描画もひと段落な気がします。
今回実装したのは、
MAXCUT問題
1,000量子ビット
QAOA
random-3-regularという構造
量子断熱ステップ p=2
実装の際に利用したソフトウェアは、
quimb
cotengra
jax
となっています。ソフトウェアが最適化されていない可能性もありますので、今後の量子ゲート型量子コンピュータのソフトウェア開発の参考にしてもらえればと思います。
今回計算を実行したのは、
GPU
での実装となります。QAOAは量子古典ハイブリッド計算の一つで、組合せ最適化問題を解くために量子コンピュータ向けに開発されたアルゴリズムです。今回は全部計算すると膨大な時間になるので、1サイクルの計算を計測しました。
今回利用したGPUは、
NVIDIA A100 * 8枚
の構成です。一般的には手に入らず、HPCと呼ばれるハイパフォーマンスPCを利用しています。GPUも科学計算専用のものを利用しています。
QAOAは1サイクルで一回の量子回路の計算をします。そして、期待値いう値を求めます。実際の量子コンピュータで期待値を求めようとすると、1サイクルでは済まないのですが、今回はGPUを使ってショートカットをしているため、一回で期待値を求めます。このサイクルを収束するまで続けることでいい結果へと導いていくのがQAOAです。最適化アルゴリズムにはベイズ最適化を利用しました。こちらは普通のコンピュータを利用して行います。
今回は1000量子ビットだけでなく、150 , 500, 1000量子ビットのQAOA1サイクル分のベンチマークを並べて表示したいと思います。150量子ビットはマシンがCPUでしたので参考値でお願いします(実際あまりGPUとの差はありませんでした)。
今回の実行結果は約11分でした。1サイクルで11分ですので、例えば100サイクルの最適化を行う場合には1100分=18時間20分のように推定ができます。ただ、ここまで来ると100サイクルでは解に到達しない可能性があるので、1000サイクルで180時間(7.5日)、1万サイクルで1800時間(75日)とこのあたりが既存手に入る計算力での限界になりそうです。
今流行りの生成AI用のHPCを使えばもっといけると思いますが、これ以上計算しても苦労が伴うので、1000量子ビットまでの計算を突き詰めるのが良いかなと思います。
以上です。