common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

量子コンピュータシミュレータ、家庭用GPU RTX4090とIntel i9-13900KFを利用したNVIDIA cuQuantumのベンチマークを複数種類。

Yuichiro Minato

2023/10/09 03:35

今日はQiskit + cuQuantumでいろんなベンチマークをとってみたいと思います。cuQuantumは無料なので、もっといろんな記事が出てもいいはずですが、量子コンピュータ業界の裾野の狭さのせいであんまり出てません。

まず、インストールですが、cuQuantumはconda環境を構築してた上でcuQuantumとcuQuantum Pythonを入れます。Qiskitはpipでqiskit-aerとqiskit-aer-gpuを入れます。

from qiskit import *
from qiskit.circuit.library import *
from qiskit_aer import *
import time
import numpy as np
import matplotlib.pyplot as plt

def exp_qv(qubits=15, depth=10, device_num=0):
  if device_num ==0:
    sim = AerSimulator(method='statevector', device='CPU')
  elif device_num == 1:
    sim = AerSimulator(method='statevector', device='GPU')
  else:
    sim = AerSimulator(method='statevector', device='GPU', cuStateVec_enable=True)

circuit = QuantumVolume(qubits, depth, seed=0)
  circuit.measure_all()
  circuit = transpile(circuit, sim)
   
  start = time.time()
  result = sim.run(circuit, shots=1, seed_simulator=12345).result()
  time_val = time.time() - start
  return time_val

まず最初はCPUとGPUとcuQuantumのcuStateVecを比較します。同じ問題を異なる構成で実行します。

1、CPUを利用します。Intel Core i9 13900KFでそこそこ高性能です。

2、GPUを利用しますが、IBMのプログラムを利用した高速化です。

3、GPUを利用しますが、NVIDIAのプログラムであるcuStateVecを利用した高速化です。

1だけがCPUで、2と3は両方GPUですが3番が今回注目のNVIDIA cuQuantumです。使ってるマシンもプログラムも同じですが、SDKが違うだけです。

まずは、

#量子ビット数
x = np.arange(10, 30)

#QVのdepth
dp = 10

#結果格納用のlist
arr = [[],[],[]]

#label用
label = ['Qiskit + CPU', 'Qiskit + GPU', 'Qiskit + cuStateVec GPU']

#デバイスごとに
for j in range(3):
  for i in x:
    r = exp_qv(i,dp,j)
    arr[j].append(r)
    print(i, r)

# 折れ線グラフを出力
plt.xlabel('qubits')
plt.ylabel('sec')

for i in range(3):
  plt.plot(x, arr[i], label=label[i])

plt.title('Benchmark QV depth=' + str(dp))
plt.legend()
plt.show()

すでに、29量子ビットでもCPUだとかなり厳しい状況です。次はQV depth = 30にします。

全く同じようなグラフになりました。こうなるとQVでCPUを利用するのはかなりきつそうです。次からはGPU同士の比較にしてみます。

QV depth =100にしてみます。

基本的に1.4倍くらいの速度が常に出ています。QV depth=500でも同じ感じでした。

全体的にやはりCPUで大きな問題を計算するのはかなり厳しいです。また、GPUであってもcuQuantumを使うだけで全く同じ構成でも1.5倍くらいの高速化が出ています。

他の例題でも色々やってみたいと思いますが、今回はNVIDIA cuQuantumを利用するのが量子コンピュータのシミュレータとして最適でした。以上です。

© 2025, blueqat Inc. All rights reserved