こんにちは、NVIDIA社の公式サイトに紹介されて浮かれているみなとです。本日はそれは置いておいて、英語で分かりづらいと思いますので、NVIDIAのcuQuantumの紹介をウェブサイトの通りに進めて要約してみます。なぜ肩入れするかというと、このライブラリ実は日本で作られたものなのです!
cuQuantum
https://developer.nvidia.com/cuquantum-sdk
早速やってみましょう。
読み方は「キュークオンタム」か「クークオンタム」か、確認します。cuはおそらくNVIDIAのcudaから、Quantumは量子という意味です。
「量子コンピューティングの研究を加速する
量子コンピュータは、計算能力を飛躍的に向上させる可能性を秘めています。そのためには、科学者、開発者、研究者が古典的なコンピュータ上で量子回路をシミュレートする能力が不可欠です。学界、研究所、産業界の研究者たちは、量子コンピュータ上で動作するアルゴリズムの設計と検証にシミュレータを使用しています。これらのシミュレータは、重ね合わせやエンタングルメントの特性をとらえ、量子回路シミュレーションのフレームワーク上に構築されています。」
ということで、確かに私たちは量子コンピュータの挙動を今のコンピュータで再現するためのシミュレータを日々利用しています。
NVIDIA cuQuantumは、量子コンピューティングのワークフローを加速するために最適化されたライブラリとツールのSDKです。NVIDIA Tensor Core GPUを使用すれば、開発者はcuQuantumを使用して、状態ベクトルおよびテンソルネットワーク手法に基づく量子回路シミュレーションを桁違いに高速化することができます。
そうなんです。今回のNVIDIA cuQuantumは量子コンピュータの開発を目的と作られていてGPUで挙動します。そして、状態ベクトルとテンソルネットワークと呼ばれる二種類のツールが同梱されています(似ていますが別のものです)。
ダウンロード先やドキュメントのリンクが元のサイトにおいてあります。
https://developer.nvidia.com/cuquantum-sdk
DGX cuQuantum Applianceは、最新のNVIDIA DGX™システム上で動作するように最適化されたコンテナでシミュレーション・ソフトウェアを利用できるようにすることで、開発者が開発を開始できるようにします。
このスタックには、GoogleのCirqフレームワークとqsimシミュレータに加え、NVIDIA cuQuantumが含まれています。
ここでGoogle Cirqが出てきました。またqsimシミュレータと書いてあります。量子コンピュータのアプリを作るには量子回路を作る必要があり、それを作るのがSDKと呼ばれるツールです。私たちは普段blueqatSDKと呼ばれるものを提供していますが、Googleが作っているのがCirqでそれが搭載されています。また、qsimという通常のシミュレータにさらにGPU向けとしてcuQuantumが追加されていて統合されている形で提供されています。
このアプライアンス・ソフトウェアは、Shorのアルゴリズム、ランダム量子回路、量子フーリエ変換など、量子コンピューティングの主要問題においてクラス最高の性能を達成しました。コンテナ製品への最近のソフトウェアのみのアップデートにより、以前報告された数値の4.4倍のスピードアップが可能になりました。
簡単に言うとこのSDKやシミュレータを使ったよく知られたいくつかのアルゴリズムがものすごく早くなるという感じです。爆速です。これらの問題はFTQCと呼ばれる理想的な量子コンピュータのアプリケーションとなっています。実際とても重たくて時間がかかる計算です。
DGX cuQuantum Applianceは、現在NVIDIA® NGC™カタログで入手可能です。
ということで、こちらから入手できます。
https://www.nvidia.com/ja-jp/gpu-cloud/
また、マルチGPUとして、複数のGPUを連結して使うことでかなりの高速化を実現することができます。それをNVIDIAはかなり強調しています。予算に合わせて無理なくハードウェアを選べます。
特徴は下記の三つと紹介されています。
フレキシブルに対応
アルゴリズムにとらわれない量子回路シミュレーション手法の中から、業務に最適な手法を選択することができます。
状態ベクトル法の機能には、最適化されたメモリ管理および数学カーネル、効率化インデックスビットスワップ、ゲートアプリケーションカーネル、および量子ビットセットの確率配列計算が含まれます。
テンソルネットワーク法の機能には、テンソルおよびテンソルネットワーク収縮の高速化、次数の最適化、近似収縮、およびマルチGPU収縮が含まれます。
ここはちょっとした解説が必要なのですが、この二つのシミュレータを使い分ける必要があります。上記の初めのほうは量子化学や金融などの時間のかかるシミュレーション手法に向いていて、テンソルネットワークのほうは最適化や機械学習に向いていると思われます。
スケーラブル
最新のGPUを使用したマルチノード、マルチGPUクラスタのパワーを、オンプレミスまたはクラウドで活用します。
低レベルのC++ APIは、シングルGPUおよびシングルノードのマルチGPUクラスタの制御と柔軟性を向上させることができます。
高レベルのPython APIは、ドロップインのマルチノード実行をサポートします。
これらのスケーラビリティはこれまでの量子コンピュータシミュレータ業界にあまりなかった概念でマルチGPUやマルチノード環境を活用して大規模なシミュレーションが手軽にできるようになりました。すでに名古屋大学などではスパコン不老にこのcuQuantumが導入されています。
速さ
より大きな問題をより速くシミュレートし、より多くの仕事をより早く終わらせることができます。
CPUの実装よりもNVIDIA A100 Tensor Core GPUを使用することで、ランダム量子回路、Shorのアルゴリズム、変分量子固有値などの主要な量子問題において、桁外れのスピードアップを実現します。
NVIDIA Seleneスーパーコンピュータを活用し、cuQuantumはGoogle Sycamoreプロセッサのフルサーキットシミュレーションから10分未満でサンプルを生成しました。
そしてこれらを使うことで量子コンピュータ並みの速さも活用できます。アルゴリズムの実行も早いですし、Googleの量子超越もかなり早くなります。一万年といわれていたものをこのライブラリだけで10分未満で実行できてしまいます。
どうでしょうか。概要としてざっくり紹介しましたが、スケーラビリティとスピードが設計されており、二種類のシミュレータを活用することでさまざまな問題に対応できるかなり優れたライブラリとなっています。製品化前はQgateとよばれるライブラリとして国内で開発がされて製品化されてました。そして今でも国内で作っています。ぜひ活用しながら応援しましょう!
国内開発されたツールの実行結果
今回は以上です!