量子コンピューティングに対するMicrosoftのアプローチ - ISC 2021

© 株式会社マイナビ

●新しい物理が生み出す新しいテクノロジ

ISC 2021において、MicrosoftのMatthias Troyer博士が「Quantum Computing: From Academic Research to Real-World Applications」と題する基調講演を行った。

Troyer博士は 約20年間スイスのETH ZurichのComputational Physicsの教授を務めていたが、Leave of Absenceで休暇を取り、2017年にDistinguished Scientistという肩書でMicrosoftに移っている。

なお、ETH Zurichは2021年のTimes Higher Educationでは世界で14位にランキングされている名門大学である。ちなみに、東大は36位である。

Troyer博士は重度の吃音で、昔は、1分以上も次の言葉が出てこないこともあった。最近では多少良くなったが、それでも、発声がつかえるのは茶飯事で、講演は聞きやすくはない。しかし、講演の内容は素晴らしく、Troyer博士からでなければ聞けない内容であり、我慢して注意深かく聞いている他はない。

新しい物理がでてくるとそれを使う新しいテクノロジが出てくる。熱力学が出てくると、それを利用した蒸気機関車が出来、電磁気学が出てくると、それを利用した通信ができた。今日の新しい物理は量子力学である。

計算テクノロジとして、紀元前2500年にそろばんが出来、20世紀にはデジタルLSIができた。そして、21世紀には量子コンピューティングテクノロジが顔を覗かせている。そろばんとデジタルLSIは計算の原理は同じであるが、21世紀の量子コンピュータはまったく異なる原理で計算を行う。

光は波長によって色の異なる波であると同時に、粒子としての性質も持っている。

De Bloglie(ド・ブロイ)は、光が波と粒子の2面性を持っているなら、電子だって2面性を持つのではないかと考え、1924年に論文を書いて博士号を取得した。そして、1927年にそれを証明して、1929年にノーベル物理学賞を受賞した。

電子が左の箱に入っている状態をbit0、右の箱に入っている状態をbit1と定義する。粒子はその位置を特定できるが、波のエネルギーの存在位置は広がりを持つ。

しかし、電子は粒子であると同時に波でもあるので、1つの電子がある振幅で左の箱に入り、右の箱にも同時に(別の振幅で)入っているという状態が発生存在しうる。これがSuperposition(重ね合わせ)である。

この状態は数式で表すと、α|0> + α|1> と書ける。この式は0の状態はα0の振幅で存在し、1の状態はα1の振幅で同時に存在することを表している。そして、|α| \+ |α|=1となっている。

しかし、この状態のQubitを読み出してみてもαやαの値は読み出せず、|α|の確率で0、|α|の確率で1がランダムに読み出されるだけである。

どうやってqubitの状態を読み出すかは、ちょっと、横において置いておいて、複数のqubitでどれだけの状態が記憶できるかという問題を考えて見る。2つのqubitがあれば、00、01、10、11の4つの値が表せる、3つのqubitがあれば8つの値が表せる。これは2値のbitでも同じであるが、qubitの場合はαの値が異なる値を取ることができるので、システムとして取り得る値の数はqubitが1つ増えると倍々で増える。そして、2qubitでは4つ、3qubitでは8つであったのが、50qubitの状態を記憶するには16PBの2値メモリを必要とすることになる(1つの状態を記憶するには16バイトが必要という前提となっているようであるが、なぜ、そうなっているのかの説明はなかった。αとαをそれぞれ8バイトで表現すると考えているのであろうか?)。

そして、これを250qubitまで伸ばすと観測可能な宇宙に存在する原子の数より多くの状態を必要とする。したがって、250qubitの系の状態を記憶するコンピュータは作れない。

●量子コンピュータは何に使われるのか?

このようなコンピュータを何に使うのかと言うと、古典コンピュータでは解けない問題を解くために使う。図10はRSA-2048チャンレンジの問題の数字であるが、約600桁の数字の素因数分解を行うような問題は、現在の古典コンピュータで端から試していくには非常に長い時間が掛ってしまう。これがRSA-2048暗号が解読できない基本原理である。

この素因数分解を古典コンピュータで行うと10億年掛かるが、量子的な計算であれば1日で素因数分解ができてしまう。これでは暗号化した通信などの秘密を守ることができなくなってしまう。ということで、より強力な暗号の研究が行われているが、その話はここでは割愛する。

しかし、量子的な計算を行うためにはqubitだけがあれば良いというわけではなく、図12に示すような、量子ビットのコントロール、古典コンピュータハードウェア、ソフトウェアツールとサービスといった量子計算のスタックが必要である。

そして、実用的な量子チップを作るには、数1000qubit、数Mqubitという集積度が必要である。このため、次の図13に示すように、2006年からMicrosoftは色々なQubitを作ってきた。

そして、最新のQubitが図14に示す「Topological Qubit」である。このQubitはハードウェア的にエラーの発生を抑制する機能を持ち、qubitのエラー率を下げることができる。

量子コンピュータで計算を行うには、まず、すべてのQubitに所定の初期値を書き込んでやる必要がある。このためにはそれぞれのQubitに|0> か|1> を書き込む必要がある。

現在の量子コンピュータでは、ほぼ0KのQubitに書き込みを行うための配線が必要である。このため、1000Qubitの場合は1000本、1M Qubitの場合は100万本の配線が必要になってしまう。常温の制御回路から100万本の配線で各Qubitまで接続するのは容易ではない。また、100万本の配線があると、それを通して極低温のQubitに流入する熱も大きな問題である。

通常の電子回路であれば、外からは少数の信号線を接続して、マルチプレクスして多数の信号に分割して各Qubitに接続する。しかし、Qubitはノイズを抑制するためほぼ絶対0度(20mK~10mK)で動作させており、この極低温ではCMOSのマルチプレクサが正常に動作しない。そのため、Microsoftは4K程度で動作させてCMOS回路が使えるようなマルチプレクサを作り、Qubitの数が増えてもコントロールの信号本数が制約にならないようにした。

そして、Qubitの状態を制御する回路に適切な信号を与えるために、図17に示すようなソフトウェアツールやシミュレーションやリソース要件の見積もりなどのサービスと、各種のアプリケーションのスタックを用意する必要がある。Microsoftはこれらのすべてのスタックをクラウドで提供しており、現在でも、量子技術の開発に使用することができる。

●量子コンピュータはどういう計算処理に向いているのか?

しかし、Quantum Computingは始まったばかりで、Googleが量子優越(古典計算では達成できない計算性能の実証)を達成したといっても、実用的にはほとんど意味のない問題であったりという状態で、量子計算に実用的な優位性があることが多くの人に納得できるように示されたという状態にはなっていない。

Quantumalgorithmzoo.orgには50+の量子アルゴリズムが登録されているが、図19に描かれているように、任意に組み合わせて使える訳ではない。このため、実用的に意味のあるものを選択する必要がある。

量子コンピューティングを使うと、これまでの古典アルゴリズムより速く計算ができるというのは必須条件であり、量子アルゴリズムは高い並列性を利用するので、並列性の高い問題を速く解く場合に威力を発揮する。しかし、古典計算より量子計算の方が速くなるクロスオーバ時間は数週間程度が上限で、それよりクロスオーバ時間が長い場合は、計算時間が長すぎて実用的な役には立たない場合が多い。

そこで、問題になるのは、NVIDIAのA100 GPUのチップと、1万Qubitを持ち、すべてのqubit間が接続されている明日の量子コンピュータのどちらが速いのであろうか? という問いの答えがどうなるかである。その比較を行う前提として、ここでは量子コンピュータのロジカルQubitのサイクル時間は10μsと想定する。

ここで考える必要があるのは、量子コンピュータのデータ読み込み速度が遅いという点である。A100 GPUは10,000Gbit/sでデータが読める。一方、明日の量子コンピュータは1Gbit/sとデータ読み込み速度はA100 GPUの1/10000である。

このため、量子コンピュータは小さなデータで大量の計算を行う処理に向いている。

量子コンピュータはすべての値に並列にアクセスして計算するので、古典コンピュータより計算は圧倒的に速い。しかし、計算結果の読み出しが問題で、Qubitの値がランダムに読み出され、このままでは意味のある答えは得られない。

計算結果を読み出すことができないので、Superpositionで計算された結果を読み出す前に、計算結果のreductionを行って、読み出し結果がほぼ1つの値になるようにする必要がある。しかし、良いReduction操作を見つけるのは容易ではないという。

量子コンピュータは計算操作は少なくて済むが、個々の計算にかかる時間は電子回路と比べると10桁位遅い。次の図25は、今日のGPUやASICと明日の量子コンピュータの個々の計算速度を比較したものである。16bitの浮動小数点演算性能は、GPUでは310Tops、ASICでは550Tops程度である。これに対して、明日の量子コンピュータの計算速度は7Kops/s程度であるという。これは10桁程度の性能差である。また、単純な論理演算の実行速度は、GPUでは5Pops/s、ASICでは77Pops/sであるが、量子ビットの単純演算の実行速度は2Mops程度であると言う。これも9~10桁の違いがある。

多くの量子計算アルゴリズムは2次関数のスピードアップが得られるものが多い。これはGPUなどではN回の計算が必要であるが、量子コンピュータのアルゴリズムではSQRT(N)回の計算で済むということである。

この条件でGPUと量子コンピュータで計算を行う場合のクロスオーバタイムを図26に示す。fp16の計算を1回行う場合は、クロスオーバタイムは4か月で、fp16で1000回の計算を行う場合のクロスオーバタイムは3世紀、たんぱく質のフォールディング計算の場合のクロスオーバタイムは宇宙の寿命くらいの時間になるという。

そして、1000 Logical Operationsの場合はクロスオーバタイムは5カ月、難しい最適化問題の場合は10年くらいのクロスオーバタイムとなるという。

このクロスオーバタイムよりも長い計算時間を必要とする問題でなければ量子計算ではなく、古典コンピュータで計算した方が速いということであり、図26に挙げた大部分の問題では量子計算を行うメリットはない。

●量子コンピュータが効果を上げそうな問題は何か?

ということで、量子コンピュータ向きの問題を見つけるのも容易ではないのであるが、Troyer先生の見立てでは、図27に青字で示した「より良いバッテリの設計」、「新しい触媒の設計」、「量子物質の理解」、「気候変動への対処」などが見込みがありそうな問題であるという。

通常のコンピュータでは、解くべき問題の規模が大きくなると急激に計算時間が長くなってしまい、計算ができなくなる。これに対して、量子コンピューティングの場合は解くべき系の原子の数が増えても、計算時間の増加は緩やかで、より複雑な問題が解ける。つまり、古典的な方法では解けなかった問題でも、解ける問題が出てくるという訳である。

量子コンピュータを縦軸をQubit数、横軸をQubitのエラー率でプロットすると、現在、作れる量子コンピュータは右下の灰色の領域で、Qubit数が不足で、エラー率も高い。実用的な量子計算を行うにはエラー訂正されたQubitが10万~100万qubit必要である。

図29のグラフの青い線の上の領域がエラー訂正された100qubitを実現するのに必要なqubit数とエラー率であるので、まだ、実用計算ができるレベルの量子コンピュータが作れるようにはなっていない。

化学反応のシミュレーションでは、量子計算アルゴリズムを使うと指数関数的なスピードアップが得られるので、高速化が実現できる。また、二酸化炭素の発生低減は重要な課題であり、葉緑素による光合成でCOを固定する仕組みを深く理解することは重要な課題である。

図31に示すように、2014年にこの問題に取り組み始めたが、最初は計算に10億(10)年かかるという見積もりになった。しかし、2017年には100年で計算できる方法が考案され、2021年に出版される論文では1カ月で計算できる方法が発表された。

この大幅な高速化は

  • 重複した計算を止めて以前の計算結果の再利用で100倍の高速化
  • コードを最適化して並列化で25倍の高速化
  • 局所的なコードの最適化で演算量を1/4に削減
  • 賢い項の順序の入れ替えでタイムステップを10倍に拡大
  • 時間の進め方を可変にして10倍の高速化
  • 位相推定アルゴリズムの改善で計算量を1/4に削減
  • スパース表現を取り入れI/Oやランタイムの時間を1/20に低減

などのアルゴリズムの改善で実現されている。これは一例であるが、アルゴリズムの研究、改善は量子計算の実用性を改善するために重要な分野である。

量子コンピューティングの実用化は近づいている。しかし、量子コンピュータは汎用コンピュータではなく、扱う問題が限定された専用のアクセラレータとして使われる。量子コンピュータには、データ量は小さいが計算量は膨大という計算が向いている。また、現在の量子アルゴリズムの多くは計算量がSQRT(N)回に減少するものであるが、それよりも計算量を大きく減らせるSuperquadraticな速度向上が得られる問題を解くのに向いている。

化学反応のシミュレーションや物質研究の分野では、量子コンピュータはSuperquadraticな速度向上が得られ、非常に高い性能を発揮すると期待される。しかし、そのためには10万~100万の誤り訂正Qubitを持つ量子コンピュータが必要である。

しかし、このレベルの量子コンピュータはまだ作れないので、量子計算が今日の計算にインパクトを与えているのは、最適化問題に“Quantum Inspired”アルゴリズムを適用して効果を上げているケースである。このレポートでは紹介していないが、富士通のデジタルアニーラなどは通常の電子回路で計算を行うが、最適化問題を解く場合には量子コンピュータでの最適化に迫る解を見つけることができると言われている。