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

  • 量子コンピュータ

    図18 学会や産業界から見て、量子コンピューティングは従来のコンピュータより高速、あるいは良い解が得られるということを示す必要がある

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

  • 量子コンピュータ

    図19 開発された量子アルゴリズムがQuantumalgorithmzoo.orgに登録されているが、これらのアルゴリズムの組み合わせだけでは解けない問題が多い

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

  • 量子コンピュータ

    図20 量子計算は並列性に優れるので、問題サイズが大きい場合に優位になる。しかし、クロスオーバタイムが数週間を超える場合は量子計算でも時間が掛り過ぎて実用的でない場合が多い

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

  • 量子コンピュータ

    図21 現在の最先端のA100 GPUと明日の量子コンピュータのどちらが速いのであろうか?。A100 GPUのサイクルタイムは0.7nsとする。明日の量子コンピュータはマルチチップで構成され、10,000個のエラー訂正されるQubitを持ち、サイクルタイムは10μsとする

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

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

  • 量子コンピュータ

    図22 今日のA100 GPUは10,000Gbit/sの入力速度を持つ。これに対して明日の量子コンピュータの入力速度は1Gbit/sである。したがって、量子コンピュータが威力を発揮するのは、データの読み書きが少なく計算量の多いケースである

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

  • 量子コンピュータ

    図23 量子コンピュータはすべての値を並列に計算するので非常に速い。しかし、計算結果を直接読み出すことはできない

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

  • 量子コンピュータ

    図24 量子コンピュータはSuperpositionを使って、すべての値についての計算を並列に実行するので非常に速いが、Superposition状態を読み出してもランダムな1つのエントリを読むだけで意味のある値は得られない。そのため、結果がほぼ1つの値になるようなReduction操作が必要になる。しかし、良いReduction操作を見つけるのは容易なことではない

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

  • 量子コンピュータ

    図25 量子コンピュータは計算に必要な操作の数は少なくて済むが、個々の演算にかかる時間は今日のGPUやASICの100億倍くらい長くかかる

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

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

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

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

  • 量子コンピュータ

    図26 多くの量子アルゴリズムは2次のスピードアップで、ここに上げた比較的簡単な計算ではクロスオーバタイムがかなり長い