🚀 NVIDIA RTX3090 + CUDA-QでCPU vs GPU徹底比較!最大31量子ビットまで実行してみた
こんにちは!今回はNVIDIAの量子開発プラットフォーム「CUDA-Q」を使って、量子アルゴリズム(GHZ状態生成)の実行を CPUとGPUの両方で行い、その性能差と忠実度(fidelity)を徹底比較してみました。
⚙️ 使用環境
- CPU:AMD EPYC 7343
- GPU:NVIDIA RTX 3090(VRAM 24GB)
- CUDAバージョン:CUDA 12.1
- CUDA-Q バックエンド:
qpp-cpu
(CPUシミュレーション)nvidia (precision='fp64')
(GPU加速シミュレーション)
📌 実験内容
- 量子回路:GHZ状態の生成
- 量子ビット数:5〜31まで段階的に実行
- CPUは25量子ビットまで
- GPUはVRAM制限内で最大31量子ビットまで実行
- 測定項目:
- 各回の実行時間(CPU/GPU)
- CPUとGPUの測定結果からfidelity(忠実度)
📊 実行結果ハイライト
Qubit数 | CPU時間 (s) | GPU時間 (s) | Fidelity |
---|---|---|---|
5 | 0.3527 | 0.1800 | 0.999991 |
10 | 0.0982 | 0.0030 | 0.999984 |
15 | 1.1074 | 0.0019 | 0.999471 |
20 | 3.6930 | 0.0032 | 0.999676 |
25 | 77.3990 | 0.0347 | 0.998911 |
30 | - | 0.2721 | - |
31 | - | 0.8427 | - |
🔍 詳細なグラフ・表は記事下部に掲載しています。
🚀 GPUの圧倒的高速化!
- CPUでは25量子ビットに到達するのに 77秒 以上かかりましたが、
GPUでは 0.03秒程度で同じ処理が完了。 - 特に 10量子ビット以降で顕著な差 が現れ、指数関数的な差に。
🎯 Fidelityも高精度を維持
- Fidelity(忠実度)は 全体的に0.998〜1.0に近い値を記録。
- 小さなビット数でも精度が非常に高く、GPUでもほぼ完全一致レベルの出力が得られました。
- 高速なだけでなく、精度面でも安心して使えることが確認できました。
🧠 考察とまとめ
- CUDA-Q + GPUの組み合わせは圧倒的にパフォーマンスが良い
- 特に15ビット以上ではCPUとの差が数十倍〜数千倍に。
- 精度の面でも信頼性が高く、量子アルゴリズムの研究やプロトタイピングに最適。
- RTX 3090(24GB VRAM)でも31量子ビットまで実行可能。より大型GPU(H100など)ならさらに先も目指せそうです。
📎 まとめ
項目 | 結果 |
---|---|
最大CPU実行 | 25量子ビット(77秒) |
最大GPU実行 | 31量子ビット(約0.8秒) |
GPUの利点 | 圧倒的な高速化 + 高い忠実度 |
推奨用途 | 量子アルゴリズム開発、教育、最適化研究 |
📈 グラフ・データ
※以下に実行時間およびフィデリティの比較グラフを掲載
=== 5 Qubits ===
CPU time: 0.3527s
GPU time: 0.1800s
Fidelity: 0.999991
=== 6 Qubits ===
CPU time: 0.3107s
GPU time: 0.0050s
Fidelity: 0.999744
=== 7 Qubits ===
CPU time: 0.4883s
GPU time: 0.0027s
Fidelity: 0.999324
=== 8 Qubits ===
CPU time: 0.5816s
GPU time: 0.0017s
Fidelity: 0.999975
=== 9 Qubits ===
CPU time: 0.4993s
GPU time: 0.0016s
Fidelity: 0.999159
=== 10 Qubits ===
CPU time: 0.0982s
GPU time: 0.0030s
Fidelity: 0.999984
=== 11 Qubits ===
CPU time: 0.0938s
GPU time: 0.0021s
Fidelity: 0.998702
=== 12 Qubits ===
CPU time: 0.8864s
GPU time: 0.0026s
Fidelity: 0.999559
=== 13 Qubits ===
CPU time: 0.9866s
GPU time: 0.0934s
Fidelity: 0.999216
=== 14 Qubits ===
CPU time: 0.9973s
GPU time: 0.0022s
Fidelity: 0.999471
=== 15 Qubits ===
CPU time: 1.1074s
GPU time: 0.0019s
Fidelity: 0.999471
=== 16 Qubits ===
CPU time: 1.0965s
GPU time: 0.0022s
Fidelity: 0.999936
=== 17 Qubits ===
CPU time: 1.1947s
GPU time: 0.0020s
Fidelity: 0.999744
=== 18 Qubits ===
CPU time: 1.4018s
GPU time: 0.0027s
Fidelity: 0.999991
=== 19 Qubits ===
CPU time: 2.1901s
GPU time: 0.0029s
Fidelity: 1.000000
=== 20 Qubits ===
CPU time: 3.6930s
GPU time: 0.0032s
Fidelity: 0.999676
=== 21 Qubits ===
CPU time: 5.6259s
GPU time: 0.0028s
Fidelity: 0.999424
=== 22 Qubits ===
CPU time: 9.7373s
GPU time: 0.0035s
Fidelity: 0.999676
=== 23 Qubits ===
CPU time: 18.2625s
GPU time: 0.0659s
Fidelity: 0.999324
=== 24 Qubits ===
CPU time: 37.8411s
GPU time: 0.0401s
Fidelity: 0.999975
=== 25 Qubits ===
CPU time: 77.3990s
GPU time: 0.0347s
Fidelity: 0.998911
=== 26 Qubits ===
GPU time: 0.0624s
=== 27 Qubits ===
GPU time: 0.0711s
=== 28 Qubits ===
GPU time: 0.1193s
=== 29 Qubits ===
GPU time: 0.1591s
=== 30 Qubits ===
GPU time: 0.2721s
=== 31 Qubits ===
GPU time: 0.8427s
💬 さいごに
CUDA-Qは、量子計算の実験と開発を誰でも簡単に始められるすばらしいツールです。
GPUの力で量子回路を「高速・高精度」に試せるので、興味のある方はぜひ導入してみてください!
💡 次回は より大きなマシンでCUDA-Q を使った量子AIアプリや量子最適化問題にも挑戦予定です!