99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

狀態(tài)向量模擬和cuStateVec庫的介紹

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-08 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

量子計(jì)算渴望為某些類型的經(jīng)典難題提供更強(qiáng)大的計(jì)算能力和更快的結(jié)果。量子電路模擬對于理解量子計(jì)算和量子算法的發(fā)展至關(guān)重要。在量子電路中,量子器件由 N 量子位組成,通過對量子位應(yīng)用一系列量子門和測量來執(zhí)行計(jì)算。

從數(shù)學(xué)上來說, N 量子比特系統(tǒng)的量子態(tài)可以描述為一個(gè)復(fù)雜的 2 N – 維向量。在經(jīng)典計(jì)算機(jī)上模擬量子電路最直觀的方法是狀態(tài)向量模擬,它將這個(gè)向量與其 2 N 復(fù)雜值直接存儲在內(nèi)存中。該電路通過將向量乘以一系列矩陣來執(zhí)行,這些矩陣對應(yīng)于構(gòu)成該電路的門序列。

然而,隨著狀態(tài)向量的維數(shù)隨著量子位的數(shù)量呈指數(shù)增長,完整描述狀態(tài)的內(nèi)存需求將這種方法限制在 30 – 50 量子位的電路中?;趶埩烤W(wǎng)絡(luò)的替代方法可以模擬更多的量子位,但通常在能夠有效模擬的電路的深度和復(fù)雜性方面受到限制。

NVIDIA cuQuantum SDK 具有用于狀態(tài)向量和張量網(wǎng)絡(luò)方法的庫。在本文中,我們將重點(diǎn)介紹狀態(tài)向量模擬和 cuStateVec 庫。有關(guān)張量網(wǎng)絡(luò)方法庫的更多信息,請參閱 利用 NVIDIA cuTensorNet 進(jìn)行量子電路模擬 。

cuStateVec 圖書館

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

測量

門應(yīng)用

期望值

采樣器

狀態(tài)向量運(yùn)動(dòng)

測量

一個(gè)量子位可以存在于兩個(gè)態(tài)|0》和|1》的疊加中。當(dāng)進(jìn)行測量時(shí),其中一個(gè)值被概率選擇和觀察,另一個(gè)值崩潰。 cuStateVec 測量 API 模擬量子位測量,并支持基于 Z 基產(chǎn)品的測量用例和批量單量子位測量。

門應(yīng)用

量子電路有量子邏輯門來修改和準(zhǔn)備量子態(tài),以觀察理想的結(jié)果。量子邏輯門用酉矩陣表示。 cuStateVec gate 應(yīng)用程序 API 提供了將量子邏輯門應(yīng)用于某些矩陣類型的功能,包括:

稠密的

斜線的

廣義置換

泡利矩陣的矩陣指數(shù)

期望值

在量子力學(xué)中,計(jì)算算符和量子態(tài)的期望值。對于量子電路,我們還計(jì)算了給定電路和量子態(tài)的期望值。 cuStateVec 有一個(gè) API ,可以用較小的內(nèi)存占用計(jì)算期望值。

采樣器

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

狀態(tài)向量運(yùn)動(dòng)

將狀態(tài)向量放置在 GPU 上,以加速 GPU 的模擬。要在 CPU 上分析模擬結(jié)果,請將生成的狀態(tài)向量復(fù)制到 CPU 。 cuStateVec 提供訪問器 API 來代表用戶執(zhí)行此操作。在復(fù)制過程中,狀態(tài)向量元素的順序可以被重新安排,這樣你就可以將量子位重新排序?yàn)樗璧牧孔游豁樞颉?/p>

谷歌 Cirq / qsim 和 NVIDIA cuStateVec

宣布NVIDIA CuStEVEEC 文庫集成的第一個(gè)項(xiàng)目是 Google’s qsim ,一個(gè)優(yōu)化的模擬器,用于他們的量子計(jì)算框架, Cirq 。 Google Quantum 人工智能團(tuán)隊(duì)通過一個(gè)新的基于 cuStateVec 的 GPU 模擬后端擴(kuò)展了 qsim ,以補(bǔ)充他們的 CPU 和 CUDA 模擬引擎。

使用 cuStateVec 為 Cirq 和 qsim 構(gòu)建說明

要通過 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

在本例中,我們運(yùn)行一個(gè)電路,創(chuàng)建格林伯格 – 霍恩 – 齊林格( GHZ )狀態(tài),并對實(shí)驗(yàn)結(jié)果進(jìn)行采樣。以下 Python 腳本通過調(diào)用三個(gè)不同的模擬器來獲取|0…00>|1…11>中的振幅:

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

我們啟用了兩個(gè)基于 CIRQS 和 77YC 的 CPU 插槽,這兩個(gè)插槽分別用于基于 CPU 的 CPU 模擬器。對于 cuStateVec 加速模擬,我們使用單個(gè) 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 進(jìn)行優(yōu)化, qsim 的 CPU 版本比 Cirq 的模擬器快 5.1x 。通過使用 cuStateVec 版本,模擬速度進(jìn)一步加快,比 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

績效結(jié)果

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

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

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

相對于 EPYC 7742 中的 64 個(gè) CPU 內(nèi)核,一個(gè) NVIDIA A100 上的 VQE 加速

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

多 GPU 狀態(tài)向量仿真

狀態(tài)向量模擬也非常適合在多個(gè) GPU 上執(zhí)行。大多數(shù)門應(yīng)用是一種完全并行的操作,通過拆分狀態(tài)向量并將其分布在多個(gè) GPU 上來加速。

在大約 30 個(gè)量子位之外,多 GPU 模擬是不可避免的。這是因?yàn)橐粋€(gè)狀態(tài)向量無法適應(yīng)單個(gè) GPU 的內(nèi)存,因?yàn)樗拇笮‰S著附加的量子位呈指數(shù)增長。

當(dāng)多個(gè) GPU 在一個(gè)模擬中協(xié)同工作時(shí),每個(gè) GPU 可以將一個(gè)門并行應(yīng)用于其狀態(tài)向量部分。在大多數(shù)情況下,每個(gè) GPU 只需要本地?cái)?shù)據(jù)來更新狀態(tài)向量,每個(gè) GPU 都可以獨(dú)立應(yīng)用門。

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

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

量子傅里葉變換( QFT )

肖爾算法

梧桐至上電路

與單次 GPU 運(yùn)行相比,在八次 GPU 運(yùn)行中,所有基準(zhǔn)測試都顯示出 4.5 – 7 倍加速之間良好的強(qiáng)縮放行為。

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

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

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

總結(jié)

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

我們也在擴(kuò)大規(guī)模。基于 cuStateVec 的多 GPU 模擬的初步結(jié)果顯示,關(guān)鍵量子算法的加速比為 50 – 90 倍。我們希望 cuStateVec 成為開創(chuàng)量子計(jì)算新領(lǐng)域的寶貴工具。

關(guān)于作者

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

Andreas Hehn 是NVIDIA 的開發(fā)技術(shù)工程師。他幫助客戶使用 GPU 加速他們的科學(xué)工作流程,重點(diǎn)關(guān)注基因組學(xué)、高能物理實(shí)驗(yàn)和量子計(jì)算。安德烈亞斯擁有瑞士蘇黎世 ETH 的物理學(xué)博士學(xué)位,他在那里從事大規(guī)模凝聚態(tài)物理模擬。

Leo Fang 是NVIDIA 的高級工程師,專注于 HPC 、量子計(jì)算和 Python 軟件。 2017 年,他在杜克大學(xué)獲得物理學(xué)博士學(xué)位。在加入 NVIDIA 之前,他是布魯克海文國家實(shí)驗(yàn)室計(jì)算科學(xué)倡議的助理計(jì)算科學(xué)家。他也是許多開源項(xiàng)目的定期貢獻(xiàn)者,包括 CuPy 、 mpi4py 、 conda forge 和 Python 數(shù)據(jù) API 標(biāo)準(zhǔn)聯(lián)盟。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5299

    瀏覽量

    106301
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4937

    瀏覽量

    131178
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1600

    瀏覽量

    63972
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    milvus向量數(shù)據(jù)的主要特性和應(yīng)用場景

    Milvus 是一個(gè)開源的向量數(shù)據(jù),專門為處理和分析大規(guī)模向量數(shù)據(jù)而設(shè)計(jì)。它適用于需要高效存儲、檢索和管理向量數(shù)據(jù)的應(yīng)用場景,如機(jī)器學(xué)習(xí)、人工智能、計(jì)算機(jī)視覺和自然語言處理等。
    的頭像 發(fā)表于 07-04 11:36 ?177次閱讀
    milvus<b class='flag-5'>向量</b>數(shù)據(jù)<b class='flag-5'>庫</b>的主要特性和應(yīng)用場景

    RISC-V架構(gòu)下的編譯器自動(dòng)向量

    進(jìn)迭時(shí)空專注于研發(fā)基于RISC-V的高性能新AICPU,對于充分發(fā)揮CPU核的性能而言,編譯器是不可或缺的一環(huán),而在AI時(shí)代,毫無疑問向量算力將發(fā)揮越來越重要的作用。進(jìn)迭時(shí)空非常重視RISC-V
    的頭像 發(fā)表于 06-06 16:59 ?350次閱讀
    RISC-V架構(gòu)下的編譯器自動(dòng)<b class='flag-5'>向量</b>化

    數(shù)字地與模擬地的區(qū)別及原理介紹

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

    Redis 8 向量搜索實(shí)測:輕松擴(kuò)展至 10 億向量

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

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

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

    《AI Agent 應(yīng)用與項(xiàng)目實(shí)戰(zhàn)》閱讀心得3——RAG架構(gòu)與部署本地知識

    。RAG技術(shù)建立在向量數(shù)據(jù)的基礎(chǔ)上,通過高維向量空間中的相似度計(jì)算來實(shí)現(xiàn)語義層面的匹配,這比傳統(tǒng)的關(guān)鍵詞搜索更能捕捉文本的深層語義關(guān)聯(lián)。 第七章通過一個(gè)本地知識的搭建案例展示了RA
    發(fā)表于 03-07 19:49

    交流回饋老化測試負(fù)載的詳細(xì)介紹

    交流回饋老化測試負(fù)載是一種用于模擬真實(shí)環(huán)境下設(shè)備運(yùn)行狀態(tài)的測試工具,主要用于檢測設(shè)備的耐久性和穩(wěn)定性。以下是關(guān)于交流回饋老化測試負(fù)載的詳細(xì)介紹: 一、交流回饋老化測試負(fù)載功能 - 模擬
    的頭像 發(fā)表于 02-24 17:54 ?397次閱讀
    交流回饋老化測試負(fù)載的詳細(xì)<b class='flag-5'>介紹</b>

    云數(shù)據(jù)是哪種數(shù)據(jù)類型?

    云數(shù)據(jù)是一種部署在虛擬計(jì)算環(huán)境中的數(shù)據(jù),它融合了云計(jì)算的彈性和可擴(kuò)展性,為用戶提供高效、靈活的數(shù)據(jù)服務(wù)。云數(shù)據(jù)主要分為兩大類:關(guān)系型數(shù)據(jù)
    的頭像 發(fā)表于 01-07 10:22 ?499次閱讀

    基于有源RFID集裝器具狀態(tài)記錄系統(tǒng)的介紹與應(yīng)用

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

    科技云報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)的野望

    科技云報(bào)到:大模型時(shí)代下,向量數(shù)據(jù)的野望
    的頭像 發(fā)表于 10-14 17:18 ?534次閱讀

    領(lǐng)慧立芯LHE3302連續(xù)血糖監(jiān)測模擬前端產(chǎn)品介紹

    領(lǐng)慧立芯LHE3302連續(xù)血糖監(jiān)測模擬前端產(chǎn)品介紹
    的頭像 發(fā)表于 08-28 16:49 ?1628次閱讀
    領(lǐng)慧立芯LHE3302連續(xù)血糖監(jiān)測<b class='flag-5'>模擬</b>前端產(chǎn)品<b class='flag-5'>介紹</b>

    自研創(chuàng)新 數(shù)智未來 2024中國數(shù)據(jù)技術(shù)大會盛大召開

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

    TI模擬前端(AFE)被動(dòng)均衡的介紹及相關(guān)考慮

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

    觸發(fā)器的無效狀態(tài)怎么判斷

    觸發(fā)器的無效狀態(tài)判斷是一個(gè)涉及數(shù)據(jù)管理和維護(hù)的重要方面。觸發(fā)器作為數(shù)據(jù)中的一種特殊對象,其有效性直接關(guān)系到數(shù)據(jù)操作的正確性和性能。
    的頭像 發(fā)表于 08-12 14:46 ?1377次閱讀

    什么是IO模擬量模塊?

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