common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


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