NVIDIA CUDA-Q(前身為 NVIDIA CUDA Quantum)是一個開源編程模型,旨在構建 量子加速超級計算,充分發揮 CPU、GPU 和 QPU 的計算能力。由于開發這些應用程序具有挑戰性,需要一個易于使用的編碼環境,能夠提供強大的量子模擬能力,以有效評估和提高新算法的性能。
CUDA-Q 包括許多顯著提高性能的新功能,使用戶能夠突破經典超級計算機上模擬的極限。這篇文章展示了 CUDA-Q 在量子模擬中的性能增強,并簡要解釋了這些改進。
提高性能
計算期望值是變分量子本征求解器(VQE)應用中的主要量子任務。您可以使用 observe
作用來確定兩個小分子(C2H2 和 C2H4)的期望值。實驗使用標準的 UCCSD 模擬,并使用 Python 進行編寫。
對于每個版本(v0.6、v0.7、v0.7.1),我們測試了三個狀態向量模擬器后端:nvidia
(單精度)、nvidia-fp64
(雙倍精度)和nvidia-mgpu
(nvidia-fp64
具有柵極融合)。特別是,nvidia-mgpu
指定的門融合級別以前是硬編碼為 6,現在則是 v0.7.1 中的可調參數。
Gate Fusion 是一種優化技術,將連續的量子門組合或合并為單個門,以降低總體計算成本并提高電路效率。組合的門的數量(門融合級別)對模擬性能具有顯著影響,需要針對每個應用程序進行優化。您現在可以調整 CUDA_MGPU_FUSE
參數 并指定不同于 v0.7.1 默認值 4 的自定義門融合級別,以滿足特定應用程序的需求。

observe
24 和 28 量子位 UCCSD-VQE 實驗中的調用圖 1 顯示了使用 NVIDIA H100 GPU 的每個模擬器和 CUDA-Q 版本的運行時。兩個沒有門融合的模擬器經歷了從 v0.6 到 v0.7.1 的至少 2 倍的加速。
這個nvidia-mgpu-6
v0.7.1 模擬器的結果分別比 24 和 28 量子位實驗的 v0.6 結果快 3.2 倍和 4.7 倍。通過調整門融合級別,性能分別提高了 12 倍和 1.2 倍,這表明該參數的重要性和系統依賴性。
這個nvidia-mgpu
模擬器將成為新的默認版本,從 v0.8 開始(尚未發布),提供最佳的整體性能,并使多個 GPU 能夠立即用于許多量子位模擬任務。
加速代碼
CUDA-Q v0.7 包括許多增強功能,這些功能改進了編譯速度,并縮短了連續編譯所需的時間,特別是在 observe
調用中(圖 2)。
首先,改進了實時(JIT)編譯路徑,以更有效地編譯內核。以前,此過程按電路中門的數量進行二次縮放,但被簡化為線性縮放。

observe
電話其次,對 JIT 更改檢測的哈希改進減少了檢查是否有任何代碼因環境更改而需要重新編譯所需的時間。這實際上消除了每次檢查所需的時間,例如在observe
呼叫中。
最后,v0.6 將對每個調用執行所有日志處理,而不管指定的日志級別如何。v0.7 中對此進行了更改,僅對指定的日志級別執行必要的處理。
除了 Gate Fusion 之外,0.7.1 版本還引入了自動漢密爾頓批處理(圖 3),這進一步減少了 observe
調用次數,通過在單個 GPU 上啟用批量 Hamiltonian 求值,從而提高了計算效率。

為了進一步提高性能,未來的版本將包括對狀態準備、泡利算子的處理和酉合成的更多增強。
開始使用 CUDA-Q
目前和預期的 CUDA-Q 改進為開發人員提供了一個更高性能的平臺來構建量子加速超級計算應用程序。今天,不僅開發速度加快,而且在 CUDA-Q 上構建的應用程序可以部署在實際量子計算所需的混合 CPU、GPU 和 QPU 環境中。
通過 CUDA-Q 快速入門指南,您可以快速設置環境。然后,基礎 部分將指導您完成第一次編寫 CUDA-Q 應用,并探索 代碼示例 和 應用,以獲得量子應用程序開發的靈感。最后,如果您想提供反饋和建議,請訪問 NVIDIA/cuda-quantum GitHub 回購。
?