common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

GPU量子コンピュータシミュレータcuQuantum / cuTensorNet 1,000量子ビットRY+CX回路のベンチマーク / NVIDIA V100, A100, T4

Yuichiro Minato

2023/01/16 06:34

1

近年の量子コンピュータはNISQといってエラーがあり、あまり深い回路ができません。一方で量子ビットは増え続けていますので、今回は浅い回路で量子ビットの多い計算をGPUの量子コンピュータシミュレータcuQuantumに搭載されている最新のcuTensorNetで実行してみます。

cuTensorNetはこれまでの量子コンピュータのシミュレータとは異なり特殊な実装となっています。ちょっと実装が複雑になり時間が取れなかったので作った量子回路の単一振幅といって、特定の量子ビットのビット列の振幅を求める計算をします。実際には量子回路をきちんと計算しています。

実装は特殊ですので、blueqatSDKを改造して行いました。

from sympy.matrices.determinant import S
from blueqat import Circuit
import numpy

N = 1000
c = Circuit(N)

#loop1
for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(0, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(1, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

#loop2
for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(0, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(1, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

#loop3
for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(0, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

for i in range(1, N-1, 2):
  c.cx[i, i+1]

for i in range(N):
  c.ry(np.random.rand())[i]

import time

start = time.time()
c.run(backend="cuTN" + str(a))
print(time.time() - start)

1000量子ビット用意し、RY - CX - RY -CX - RY を交互に実行する回路を3ループ実行しました。早速ベンチマークです。

Google Colab T4

104.98933839797974

Google Colab A100

98.27982020378113

blueqat cloud V100

251.73760056495667

やっぱりなんかT4が速いんですよね。。。泣

© 2025, blueqat Inc. All rights reserved