現在量子コンピュータは黎明期においても大きな発展を遂げており、世界中でアプリケーションの開発が進んでいます。一方、現在の量子コンピュータでは性能的に計算できる範囲が狭く、利用が限定的です。またマシンの数も世界中で限られており、好きな時に好きなだけ使えるという状況ではまだありません。
そのため、通常はシミュレータと呼ばれる量子コンピュータの動作を既存のコンピュータで模擬的に実行するものが利用されます。近年、ディープラーニングの発展によりGPUの性能が格段に上がっており、その恩恵を受けて量子コンピュータのシミュレータも急激に発展をして性能を伸ばしています。ここでは、NVIDIA社のGPU向け高性能量子コンピュータシミュレータのcuQuantum(クークオンタム)について紹介します。
cuQuantumのウェブサイト
https://developer.nvidia.com/cuquantum-sdk
世界最高性能の2種類のシミュレータを搭載。用途に応じて使い分けが可能に。
NVIDIAのcuQuantumには2種類のシミュレータが搭載されています。一つは「状態ベクトルシミュレータ」、もう一つは「テンソルネットワークシミュレータ」です。それぞれ計算している中身の方法が違いますので、多少用途が異なります。この二つのシミュレータを使いこなすことで量子コンピュータのあらゆる計算を高精度に計算することができます。ここでは、これらの解説をしたいと思います。
オールマイティで優等生のcuStateVec
cuStateVecは量子コンピュータのシミュレータとして非常に一般的な状態ベクトル方式です。こちらは、状態ベクトルと呼ばれる計算結果を時間ごとに保存しながら計算する汎用的な量子コンピュータシミュレータで、世界中のほとんどの量子コンピュータのシミュレータがほぼこの方式となっています。cuStateVecはGPU向けに最適化された状態ベクトルシミュレータでオールマイティで、あらゆる計算ができます。状態ベクトルシミュレータの制限は量子ビット数で、40量子ビット前後で計算結果を格納するための容量がいっぱいになってしまいます。量子ビット数Nに対して、状態ベクトルのサイズは2のN乗となり、ベクトルのサイズがとても大きくなってしまいます。
cuStateVecでは、複数のGPUを組み合わせることでこの巨大なベクトルと行列の計算を高速に処理することができます。
最新の実行結果を確認したい方は、こちらのブログをお勧めします。
NVIDIA cuQuantum Appliance で大規模にクラス最高の量子回路シミュレーションを実現
最新技術を搭載した可能性の塊のcuTensorNet
2018年にGoogle社が量子超越と言って、スパコンで1万年かかる計算を量子コンピュータで200秒で実行したという発表をしました。これは上記の状態ベクトルシミュレータでの比較となりますが、2021年新しいシミュレータ方式でスパコンで同等の時間で計算できる方法が大々的に発表されました。この新しいシミュレータはテンソルネットワークシミュレータと呼ばれ、中国のがチームがスパコンの最高賞Gordon Bell賞を受賞した技術となっています。cuTensorNetはこのテンソルネットワーク技術をGPU向けに実装し、コンシューマ向けに提供されている技術です。
テンソルネットワークはこれまでの量子コンピュータの計算とは異なり、状態ベクトルを保存せずに量子回路全体をテンソルネットワークというネットワークの形式に書き換え、そのネットワークをどのように効率的に計算するかどうかを考えることに特化しています。ネットワークの計算はノード間の計算の順序を工夫することによって計算を効率化することができるため、多くの計算効率化手法が開発されています。
また、テンソルネットワークの計算は現在の量子コンピュータのNISQと相性が良く、量子ビット間の接続が少ないマシンのような量子もつれが限られるような場面においてはとても効率的に量子コンピュータの計算をすることができ、これが量子超越の計算を大きく改善した理由となっています。
NVIDIA Sets World Record for Quantum Computing Simulation With cuQuantum Running on DGX SuperPOD
https://blogs.nvidia.com/blog/2021/11/09/cuquantum-world-record/
既存深層学習にも応用することができるcuQuantum
単なる量子コンピュータのシミュレータとしてだけではなく、最近ではこのような計算手法を応用して既存の深層学習の中にGPUのコードを埋め込むことでパラメータの圧縮や高速化を実現することができる。量子コンピュータの高速化技術、およびそれらをフォローするGPUの最新技術を利用することにより、Transformerをはじめとする多くのモデルに恩恵をもたらすこともできる。
このようにcuQuantumは最先端の技術を用いて多くの有用なアプリケーション開発に利用することができる。手元の多くのGPUで稼動するため、CPUのコードをそのまま計算バックエンドを変更するだけでも高速化が実現できるため、大変有用なフレームワークとなっている。
以上。