女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

狀態向量模擬和cuStateVec庫的介紹

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-08 14:39 ? 次閱讀

量子計算渴望為某些類型的經典難題提供更強大的計算能力和更快的結果。量子電路模擬對于理解量子計算和量子算法的發展至關重要。在量子電路中,量子器件由 N 量子位組成,通過對量子位應用一系列量子門和測量來執行計算。

從數學上來說, N 量子比特系統的量子態可以描述為一個復雜的 2 N – 維向量。在經典計算機上模擬量子電路最直觀的方法是狀態向量模擬,它將這個向量與其 2 N 復雜值直接存儲在內存中。該電路通過將向量乘以一系列矩陣來執行,這些矩陣對應于構成該電路的門序列。

然而,隨著狀態向量的維數隨著量子位的數量呈指數增長,完整描述狀態的內存需求將這種方法限制在 30 – 50 量子位的電路中。基于張量網絡的替代方法可以模擬更多的量子位,但通常在能夠有效模擬的電路的深度和復雜性方面受到限制。

NVIDIA cuQuantum SDK 具有用于狀態向量和張量網絡方法的庫。在本文中,我們將重點介紹狀態向量模擬和 cuStateVec 庫。有關張量網絡方法庫的更多信息,請參閱 利用 NVIDIA cuTensorNet 進行量子電路模擬 。

cuStateVec 圖書館

cuStateVec 庫提供了單個 GPU 原語來加速狀態向量模擬。由于狀態向量方法是模擬量子電路的基礎,大多數量子計算框架和庫都包含自己的狀態向量模擬器。為了便于與這些現有模擬器集成, cuStateVec 提供了一套 API ,以涵蓋常見用例:

測量

門應用

期望值

采樣器

狀態向量運動

測量

一個量子位可以存在于兩個態|0》和|1》的疊加中。當進行測量時,其中一個值被概率選擇和觀察,另一個值崩潰。 cuStateVec 測量 API 模擬量子位測量,并支持基于 Z 基產品的測量用例和批量單量子位測量。

門應用

量子電路有量子邏輯門來修改和準備量子態,以觀察理想的結果。量子邏輯門用酉矩陣表示。 cuStateVec gate 應用程序 API 提供了將量子邏輯門應用于某些矩陣類型的功能,包括:

稠密的

斜線的

廣義置換

泡利矩陣的矩陣指數

期望值

在量子力學中,計算算符和量子態的期望值。對于量子電路,我們還計算了給定電路和量子態的期望值。 cuStateVec 有一個 API ,可以用較小的內存占用計算期望值。

采樣器

狀態向量模擬在數值上將量子態保留在狀態向量中。通過計算每個狀態向量元素的概率,您可以有效地多次模擬多個量子位的測量,而不會破壞量子態。 cuStateVec sampler API 以較小的內存占用在 GPU 上執行采樣。

狀態向量運動

將狀態向量放置在 GPU 上,以加速 GPU 的模擬。要在 CPU 上分析模擬結果,請將生成的狀態向量復制到 CPU 。 cuStateVec 提供訪問器 API 來代表用戶執行此操作。在復制過程中,狀態向量元素的順序可以被重新安排,這樣你就可以將量子位重新排序為所需的量子位順序。

谷歌 Cirq / qsim 和 NVIDIA cuStateVec

宣布NVIDIA CuStEVEEC 文庫集成的第一個項目是 Google’s qsim ,一個優化的模擬器,用于他們的量子計算框架, Cirq 。 Google Quantum 人工智能團隊通過一個新的基于 cuStateVec 的 GPU 模擬后端擴展了 qsim ,以補充他們的 CPU 和 CUDA 模擬引擎。

使用 cuStateVec 為 Cirq 和 qsim 構建說明

要通過 Cirq 啟用 cuStateVec ,請從源代碼編譯 qsim ,并安裝 qsimcirq Python 包提供的 Cirq 綁定。

# Prerequisite:
# Download cuQuantum Beta2 from https://developer.nvidia.com/cuquantum-downloads # Extract cuQuantum Beta2 archive and set the path to CUQUANTUM_ROOT
$ tar -xf cuquantum-linux-x86_64-0.1.0.30-archive.tar.xz
$ export CUQUANTUM_ROOT=`pwd`/cuquantum-linux-x86_64-0.1.0.30-archive
$ ln -sf $CUQUANTUM_ROOT/lib $CUQUANTUM_ROOT/lib64
# Clone qsim repository from github and checkout v0.11.1 branch
$ git clone https://github.com/quantumlib/qsim.git
$ git checkout v0.11.1
# Build and install qsimcirq with cuStateVec
$ pip install .
# Install cirq
$ pip install cirq

在本例中,我們運行一個電路,創建格林伯格 – 霍恩 – 齊林格( GHZ )狀態,并對實驗結果進行采樣。以下 Python 腳本通過調用三個不同的模擬器來獲取|0…00>|1…11>中的振幅:

  • Cirq 內置模擬器
  • 基于 CPU 的模擬器共享
  • 使用 cuStateVec 加速拆分

我們啟用了兩個基于 CIRQS 和 77YC 的 CPU 插槽,這兩個插槽分別用于基于 CPU 的 CPU 模擬器。對于 cuStateVec 加速模擬,我們使用單個 A100 GPU 。

import cirq
import qsimcirq
n_qubits = 32
qubits = cirq.LineQubit.range(n_qubits)
circuit = cirq.Circuit()
circuit.append(cirq.H(qubits[0]))
circuit.append(cirq.CNOT(qubits[idx], qubits[idx + 1]) \ for idx in range(n_qubits - 1))
# Cirqs = cirq.sim.Simulator()
result = s.compute_amplitudes(circuit, [0, 2**n_qubits-1])
print(f'cirq.sim : {result}')
# qsim(CPU)
options = qsimcirq.QSimOptions(max_fused_gate_size=4, cpu_threads=512)
s = qsimcirq.QSimSimulator(options)
result = s.compute_amplitudes(circuit, [0, 2**n_qubits-1])
print(f'qsim(CPU) : {result}')
# qsim(cuStateVec)
options = qsimcirq.QSimOptions(use_gpu=True, max_fused_gate_size=4, gpu_mode=1)
s = qsimcirq.QSimSimulator(options)
result = s.compute_amplitudes(circuit, [0, 2**n_qubits-1])
print(f'cuStateVec: {result}')

以下控制臺輸出顯示,通過使用 CPU SIMD 指令和 OpenMP 進行優化, qsim 的 CPU 版本比 Cirq 的模擬器快 5.1x 。通過使用 cuStateVec 版本,模擬速度進一步加快,比 Cirq 的模擬器快 30.04 倍,比 qsim 的 CPU 版本快 5.9 倍。

cirq.sim : [0.70710677+0.j 0.70710677+0.j], 87.51 s
qsim(CPU) : [(0.7071067690849304+0j), (0.7071067690849304+0j)], 17.04 s
cuStateVec: [(0.7071067690849304+0j), (0.7071067690849304+0j)], 2.88 s

績效結果

下圖顯示了一些常用電路的門應用的初步性能結果。所有量子位計數的模擬都會加速。然而,隨著量子位數量的增加,模擬速度顯著加快,對于最大的電路,模擬速度大約是 10-20 倍。這種性能為探索更大量子電路的開發和評估提供了機會。

A100 與 64 核 CPU 上的 Cirq / qsim + cuStateVec

圖 1 。與 64 核 EPYC 7742 CPU 上的 Cirq / qsim 相比,在單個 NVIDIA A100 GPU 上使用 cuStateVec 的流行量子電路的模擬性能

相對于 EPYC 7742 中的 64 個 CPU 內核,一個 NVIDIA A100 上的 VQE 加速

圖 2 。與 64 核 EPYC 7742 CPU 上的 Cirq / qsim 相比,在單個 NVIDIA A100 GPU 上使用 cuStateVec 的多個不同分子的變分量子本征解算器加速

多 GPU 狀態向量仿真

狀態向量模擬也非常適合在多個 GPU 上執行。大多數門應用是一種完全并行的操作,通過拆分狀態向量并將其分布在多個 GPU 上來加速。

在大約 30 個量子位之外,多 GPU 模擬是不可避免的。這是因為一個狀態向量無法適應單個 GPU 的內存,因為它的大小隨著附加的量子位呈指數增長。

當多個 GPU 在一個模擬中協同工作時,每個 GPU 可以將一個門并行應用于其狀態向量部分。在大多數情況下,每個 GPU 只需要本地數據來更新狀態向量,每個 GPU 都可以獨立應用門。

然而,根據門作用于哪個模擬量子位, GPU 有時可能需要存儲在不同 GPU 中的部分狀態向量來執行更新。在這種情況下, GPU 必須交換大部分狀態向量。這些部分的大小通常為數百兆字節或幾千兆字節。因此,多 GPU 狀態向量模擬對 GPU 互連的帶寬非常敏感。

DGX A100 完全符合這些要求,八款 NVIDIA A100 GPU 使用 NVLink 提供 600GB / s 的 GPU 到 GPU 直接帶寬。我們選擇了三種 30-32 量子位的常見量子計算算法,在 DGX A100 上用 cuStateVec 對 Cirq / qsim 進行基準測試:

量子傅里葉變換( QFT )

肖爾算法

梧桐至上電路

與單次 GPU 運行相比,在八次 GPU 運行中,所有基準測試都顯示出 4.5 – 7 倍加速之間良好的強縮放行為。

圖 3 。 DGX A100 上流行電路狀態向量模擬的多重 GPU 縮放

圖 4 。流行量子電路模擬的加速比。在 DGX A100 上測量了 GPU 模擬的性能,并與 EPYC 7742 的兩個插座的性能進行了比較。

與兩個 64 核 CPU 上的模擬時間相比, DGX-A100 在 50-90 倍之間提供了令人印象深刻的整體速度提升。

總結

NVIDIA CuQuin SDK 中的 CuStEVEVEC 庫旨在加速 GPU 上的量子電路的狀態向量模擬器。谷歌針對 Cirq qsim 的模擬器是首批采用該庫的模擬器之一,該庫對現有程序的 GPU 加速使 Cirq 用戶受益。隨后將集成到更多量子電路框架,包括 IBM 的 Qiskit 軟件。

我們也在擴大規模。基于 cuStateVec 的多 GPU 模擬的初步結果顯示,關鍵量子算法的加速比為 50 – 90 倍。我們希望 cuStateVec 成為開創量子計算新領域的寶貴工具。

關于作者

Shinya Morino 是NVIDIA 高級解決方案架構師,隸屬于NVIDIA 人工智能技術中心( NVAITC )。他已經在 NVAITC 中原型化了一個 GPU 加速狀態向量模擬器,并正在利用他的知識推動 cuStateVec 的開發。新亞擁有日本東京大學的工程學博士學位。

Andreas Hehn 是NVIDIA 的開發技術工程師。他幫助客戶使用 GPU 加速他們的科學工作流程,重點關注基因組學、高能物理實驗和量子計算。安德烈亞斯擁有瑞士蘇黎世 ETH 的物理學博士學位,他在那里從事大規模凝聚態物理模擬。

Leo Fang 是NVIDIA 的高級工程師,專注于 HPC 、量子計算和 Python 軟件。 2017 年,他在杜克大學獲得物理學博士學位。在加入 NVIDIA 之前,他是布魯克海文國家實驗室計算科學倡議的助理計算科學家。他也是許多開源項目的定期貢獻者,包括 CuPy 、 mpi4py 、 conda forge 和 Python 數據 API 標準聯盟。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    5231

    瀏覽量

    105711
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4905

    瀏覽量

    130602
  • API
    API
    +關注

    關注

    2

    文章

    1559

    瀏覽量

    63490
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    數字地與模擬地的區別及原理介紹

    一、基本概念 1. 模擬地(AGND) 定義:模擬地是模擬電路的電位參考點,用于連接模擬信號電路(如運算放大器、濾波器、傳感器信號調理電路等)的接地端。 信號特性:
    的頭像 發表于 05-25 15:44 ?100次閱讀

    Redis 8 向量搜索實測:輕松擴展至 10 億向量

    艾體寶Redis 8 向量搜索實測輕松支持 10 億向量,仍保持低延遲與高吞吐。中位延遲僅200毫秒,90%精確度;處理50并發搜索請求中位延遲僅1.3秒,95%精確度。
    的頭像 發表于 05-13 14:00 ?138次閱讀
    Redis 8 <b class='flag-5'>向量</b>搜索實測:輕松擴展至 10 億<b class='flag-5'>向量</b>

    案例 基于CFD仿真的潛航器不同航行狀態下阻力特性模擬與評估

    suboff潛艇作為一種常見的水下航行器模型,曾在國際上被各大海洋強國進行充分的實驗與數值模擬研究,本文以suboff模型對水下航行器阻力計算展開介紹
    的頭像 發表于 04-11 11:36 ?198次閱讀
    案例  基于CFD仿真的潛航器不同航行<b class='flag-5'>狀態</b>下阻力特性<b class='flag-5'>模擬</b>與評估

    《AI Agent 應用與項目實戰》閱讀心得3——RAG架構與部署本地知識

    。RAG技術建立在向量數據的基礎上,通過高維向量空間中的相似度計算來實現語義層面的匹配,這比傳統的關鍵詞搜索更能捕捉文本的深層語義關聯。 第七章通過一個本地知識的搭建案例展示了RA
    發表于 03-07 19:49

    云數據是哪種數據類型?

    云數據是一種部署在虛擬計算環境中的數據,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數據服務。云數據主要分為兩大類:關系型數據
    的頭像 發表于 01-07 10:22 ?388次閱讀

    基于有源RFID集裝器具狀態記錄系統的介紹與應用

    一.背景介紹 在現代物流和供應鏈管理中,集裝器具扮演著至關重要的角色。無論是貨物的運輸、存儲還是流轉,集裝器具的狀態和管理都直接影響著整個流程的效率和成本。然而,傳統的集裝器具管理方式往往存在著諸多
    的頭像 發表于 12-26 12:23 ?327次閱讀
    基于有源RFID集裝器具<b class='flag-5'>狀態</b>記錄系統的<b class='flag-5'>介紹</b>與應用

    科技云報到:大模型時代下,向量數據的野望

    科技云報到:大模型時代下,向量數據的野望
    的頭像 發表于 10-14 17:18 ?467次閱讀

    領慧立芯LHE3302連續血糖監測模擬前端產品介紹

    領慧立芯LHE3302連續血糖監測模擬前端產品介紹
    的頭像 發表于 08-28 16:49 ?1403次閱讀
    領慧立芯LHE3302連續血糖監測<b class='flag-5'>模擬</b>前端產品<b class='flag-5'>介紹</b>

    自研創新 數智未來 2024中國數據技術大會盛大召開

    浪潮洶涌澎湃,數據作為信息技術的核心基礎設施,正以前所未用的速度推動各行各業的智能化升級。大會以“自研創新 數智未來”為主題,設置2大主會場,20+技術專場,重點圍繞向量數據向量
    的頭像 發表于 08-27 18:07 ?791次閱讀
    自研創新 數智未來 2024中國數據<b class='flag-5'>庫</b>技術大會盛大召開

    TI模擬前端(AFE)被動均衡的介紹及相關考慮

    電子發燒友網站提供《TI模擬前端(AFE)被動均衡的介紹及相關考慮.pdf》資料免費下載
    發表于 08-27 11:30 ?0次下載
    TI<b class='flag-5'>模擬</b>前端(AFE)被動均衡的<b class='flag-5'>介紹</b>及相關考慮

    觸發器的無效狀態怎么判斷

    觸發器的無效狀態判斷是一個涉及數據管理和維護的重要方面。觸發器作為數據中的一種特殊對象,其有效性直接關系到數據操作的正確性和性能。
    的頭像 發表于 08-12 14:46 ?1247次閱讀

    什么是IO模擬量模塊?

    IO模擬量模塊是工業自動化領域中常用的一種設備,用于處理模擬信號。在工業控制系統中,模擬信號通常指的是連續變化的信號,如溫度、壓力、流量等,這些信號可以用無限精細的數值表示。與之相對的是數字信號,它只有有限的數值
    的頭像 發表于 08-02 09:00 ?940次閱讀
    什么是IO<b class='flag-5'>模擬</b>量模塊?

    深度學習常用的Python

    深度學習作為人工智能的一個重要分支,通過模擬人類大腦中的神經網絡來解決復雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的支持,成為了深度學習研究和應用的首選工具。本文將深入探討
    的頭像 發表于 07-03 16:04 ?1031次閱讀

    玩轉Spring狀態

    說起Spring狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring狀態機就是狀態模式的一種實現,在
    的頭像 發表于 06-25 14:21 ?1252次閱讀
    玩轉Spring<b class='flag-5'>狀態</b>機

    電池模擬模擬測試電池充放電性能

    電池模擬器是一種強大的工具,能夠在模擬真實電池的輸出狀態和充放電特性方面發揮重要作用。它可以準確地模擬電池的充放電狀態、放電深度、開路電壓和
    的頭像 發表于 06-11 16:05 ?1302次閱讀
    電池<b class='flag-5'>模擬</b>器<b class='flag-5'>模擬</b>測試電池充放電性能