共用方式為


Quantinuum 服務提供商

Quantinuum 可讓您存取具有高精確度、完全連接量子位的捕獲離子系統,以及執行中電路測量的能力。

  • 發行商: Quantinuum
  • 提供者識別碼: quantinuum

Targets

此提供者可提供下列內容targets:

目標名稱 目標標識碼 量子位數目 Description
H2-1 語法檢查程式 quantinuum.sim.h2-1sc 56 個量子位元 在提交到 Quantinuum 平台上的硬體或模擬器之前,先使用 H2-1 編譯器檢驗量子程式。 免費。
H2-2 語法檢查程式 quantinuum.sim.h2-2sc 56 個量子位元 在將量子程序提交到 Quantinuum 平台上的硬件或模擬器之前,先使用 H2-2 編譯器進行驗證。 免費。
H2-1 模擬器 quantinuum.sim.h2-1e 56/32 量子位元 使用 H2-1 的實際實體模型和雜訊模型。 56 量子位模擬僅供穩定器模擬使用
H2-2 模擬器 quantinuum.sim.h2-2e 56/32 量子位元 使用 H2-2 的實際實體模型和雜訊模型。 56 量子位模擬僅供穩定器模擬使用
H2-1 quantinuum.qpu.h2-1 56 個量子位元 昆蒂努姆的H2-1捕獲離子裝置。
H2-2 quantinuum.qpu.h2-2 56 個量子位元 昆蒂努姆的H2-2囚禁離子裝置。

Quantinuum 的 targets 對應於 QIR Adaptive RI 配置檔。 如需此 target 配置檔及其限制的詳細資訊,請參閱 瞭解 target Azure Quantum 中的配置檔類型。

所有 Quantinuum targets 現在都支援整合式混合式線路。 如需提交整合式混合式作業的詳細資訊,請參閱 整合式混合式運算

Tip

在工作階段下提交的 Quantum 任務可以 獨佔存取 Quantinuum 硬體,只要您在一分鐘內將任務排入佇列。 之後,任何作業都會接受並使用標準佇列和優先順序邏輯來處理。 如需詳細資訊,請參閱 Azure Quantum 中的會話。

語法檢查器

我們建議使用者先使用語法檢查程式來驗證其程式碼。 語法檢查器會驗證正確的語法、編譯完成和機器相容性。 語法檢查器使用與量子計算機所用相同的編譯器 target。 例如,H2-1 語法檢查器使用與 H2-1 相同的編譯器。 執行完整的編譯堆疊,但實際的量子作業除外。 如果程式碼編譯,則語法檢查器會傳回 success 狀態和全部 0 的結果。 如果程式碼未編譯,則語法檢查程式會傳回失敗狀態,並提供錯誤訊息,以協助使用者偵錯其電路語法。 語法檢查程式可讓開發人員隨時驗證其程序代碼,即使機器離線也一樣。

  • 工作類型: Simulation
  • 數據格式: honeywell.openqasm.v1honeywell.qir.v1
  • 目標 ID:
    • H2-1 語法檢查程式: quantinuum.sim.h2-1sc
    • H2-2 語法檢查程式:quantinuum.sim.h2-2sc
  • 目標執行配置檔:QIR Adaptive RI

語法檢查程式的使用是免費的。

Quantinuum 模擬器 (雲端式)

Quantinuum 模擬器可在 Azure Quantum 網站上的 Code 與 Azure Quantum 頁面上免費取得,您可以在其中撰寫 Q# 程式代碼,並在沒有 Azure 帳戶的情況下將作業提交至 Quantinuum 模擬器。 Quantinuum 模擬器是以狀態向量為基礎的量子模擬器,它使用逼真的實體雜訊模型和基於 系統模型 H2 量子電腦的一般效能的廣義錯誤參數。 執行的量子模擬與 系統模型 H2 模擬器 相同,但減少了經典電路優化例程以提高吞吐量。 計劃在未來日期支持整合混合運算

系統模型 H2 模擬器

使用 H2-1 語法檢查程式驗證其程式代碼的語法之後,使用者可以利用 Quantinuum 的系統模型 H2 模擬器,這是模擬工具,其中包含實際系統模型 H2 硬體的詳細實體模型和實際雜訊模型。 如需雜訊模型的詳細資訊,請參閱 [系統模型 H2] 頁面上的 系統模型 H2 模擬器產品資料表。 系統模型 H2 模擬器使用與系統模型 H2 硬體相同的作業提交介面, 以達成模擬到硬體的無縫轉換。 為了協助將生產力最大化並縮短開發時間,即使硬體已脫機,仍可使用 H2 模擬器。

  • 工作類型: Simulation
  • 資料格式: quantinuum.openqasm.v1
  • 目標 ID:
    • H2-1 模擬器: quantinuum.sim.h2-1e
    • H2-2 模擬器:quantinuum.sim.h2-2e
  • 目標執行配置檔:QIR Adaptive RI

系統模型 H2 模擬器的使用隨硬體訂閱免費提供。 如需詳細資訊,請參閱 Azure Quantum 定價

系統模型 H2

Quantinuum 系統型號 H2 量子計算機由 Honeywell 提供動力,由具有兩個連接線性區段的量子電荷耦合器件(QCCD)組成,目前有 1 部機器:H2-1。 如需詳細資訊,請參閱系統模型 H2 產品數據工作表,該工作表位於系統模型 H2 頁面上。 鼓勵使用者在將作業提交至電腦之前,先將作業提交至語法檢查程式和target,以測試其程式碼的相容性。

如果使用者將作業提交至 H2-1 計算機,且 H2-1 計算機無法使用,則工作會保留在該電腦的佇列中,直到計算機可供使用為止。

系統型號 H2 硬體會在產品生命週期內持續升級。 用戶可以存取最新、進階且可用的硬體。

  • 工作類型: Quantum Program
  • 資料格式: quantinuum.openqasm.v1
  • 目標 ID:
    • H2-1: quantinuum.qpu.h2-1
    • H2-2: quantinuum.qpu.h2-2
  • 目標執行配置檔:QIR Adaptive RI

系統型號 H2 技術規格

系統模型 H2 的技術詳細資訊可以在 系統模型 H2 頁面上的 Quantinuum 產品資料表中找到,以及 Quantinuum 規格和量子磁碟區資料儲存庫的連結,以及如何引用 Quantinuum 系統的使用方式。

其他功能

這裡列出透過Quantinuum API提供的其他功能。

Capability Description
中電路測量和重設 (MCMR) 測量線路中間的量子位並重複使用
任意角度 ZZ 閘道 直接執行 2 量子位任意角度閘道旋轉
將軍蘇(4)糾纏門 直接執行 2 量子位任意角度閘道旋轉
模擬器雜訊參數 進行使用於 Quantinuum 模擬器中的雜訊參數實驗
Quantinuum Stack 中的 TKET 優化 嘗試在 Quantinuum 堆疊中開啟不同層級的 TKET 優化技術

用戶可以透過線路函式或 Azure Quantum Q# 和 Qiskit 提供者中的傳遞參數,利用這些額外的功能。

中電路測量和重設

中電路測量和重設 (MCMR) 可讓用戶測量電路中間的量子位,並重設它們。 這可啟用量子誤差修正的功能,以及能夠重複使用線路內的量子位。

由於截獲離子量子位的內部層級結構,中電路測量可能會使量子位處於非計算狀態。 如果量子位要在該線路中再次使用,則所有中間電路測量都應該接著重設。 下列程式代碼範例示範這一點。

當量子位子集在電路中間被測量時,這些測量中得到的經典資訊可以用來決定電路的未來元素。 這些範例也突顯此使用方式。

如需 Quantinuum 系統中 MCMR 的相關資訊,請參閱 Quantinuum 文件上的 MCMR 頁面。

在 Q# 中 MResetZ ,函式可用來測量量子位並重設它。 如需此函式的詳細資訊,請參閱 MResetZ Q# 檔案中的 。

%%qsharp
import Std.Measurement.*;

operation ContinueComputationAfterReset() : Result[] {
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Perform Bell Test
    H(qubits[0]);
    CNOT(qubits[0], qubits[1]);

    // Measure Qubit 1 and reset it
    let res1 = MResetZ(qubits[1]);

    // Continue additional computation, conditioned on qubits[1] measurement outcome
    if res1 == One {
         X(qubits[0]);
    }
    CNOT(qubits[0], qubits[1]);

    // Measure qubits and return results
    let res2 = Measure([PauliZ, PauliZ], qubits);
    return [res1, res2];
}

任意角度 ZZ 閘道

Quantinuum 的原生閘集合包括任意角度 ZZ 量子閘。 這有利於減少許多量子演算法和閘道序列的 2 量子位閘道計數。 如需 Quantinuum 系統中任意角度 ZZ 閘門的相關資訊,請參閱 Quantinuum 文件上的參數化角度 ZZ 閘門頁面。

在 Q# 中,任意角 ZZ 閘門是使用 Rzz 作業實作。

%%qsharp
import Std.Intrinsic.*;
import Std.Measurement.*;
import Std.Arrays.*;

operation ArbitraryAngleZZExample(theta : Double) : Result[] {
    
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Create array for measurement results
    mutable resultArray = [Zero, size = 2];

    H(qubits[0]);
    Rz(theta, qubits[0]);
    Rz(theta, qubits[1]);
    X(qubits[1]);

    // Add Arbitrary Angle ZZ gate
    Rzz(theta, qubits[0], qubits[1]);  

    // Measure qubits and return results
    for i in IndexRange(qubits) {
        resultArray w/= i <- M(qubits[i]);  
    }
    
    return resultArray;
}

蘇將軍(4) 糾纏門

昆蒂努姆的本地閘集合包括一般的SU(4)糾纏閘。 請注意,提交至硬體的量子線路會改為完全糾纏的 ZZ 閘和任意角度 RZZ 閘。 如果使用者選擇進入,線路只會重新調整至一般 SU(4) 糾纏閘道。 有關 Quantinuum 系統中通用 SU(4) Entangler 的資訊,請參閱 參數化角度 SU(4) 門 頁面,該頁面位於 Quantinuum Docs

在 Q# 中,一般 SU(4) 糾纏門是透過 Quantinuum 的 QIR 配置文件來實作。 若要使用它,請定義具有自訂內在功能,符合 QIR 配置檔簽章的函式,並在 SU4Example 作業中使用此函式。

為了確保線路以一般 SU(4) 糾纏閘道執行,請在 Quantinuum 堆疊中傳遞下列選項:

  • nativetq: Rxxyyzz 以防止重新套用至其他原生閘道。
  • noreduce: True 以避免其他編譯程式優化 (選擇性)。
%%qsharp
import Std.Math.*;

operation __quantum__qis__rxxyyzz__body(a1 : Double, a2 : Double, a3 : Double, q1 : Qubit, q2 : Qubit) : Unit {
    body intrinsic;
}

operation SU4Example() : Result[] {
    use qs = Qubit[2];
    
    // Add SU(4) gate
    __quantum__qis__rxxyyzz__body(PI(), PI(), PI(), qs[0], qs[1]);
    
    MResetEachZ(qs)
}

現在編譯作業:

from qdk import qsharp

MyProgram = qsharp.compile("GenerateRandomBit()")

線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:

from qdk.azure import Workspace

MyWorkspace = Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update TKET optimization level desired
option_params = {
    "nativetq": `Rxxyyzz`,
    "noreduce": True
}

提交工作時傳遞 noreduce 選項:

job = MyTarget.submit(MyProgram, "Submit a program with SU(4) gate", shots = 10, input_params = option_params)
job.get_results()

模擬器雜訊參數

用戶可以選擇實驗 Quantinuum 模擬器的雜訊參數。 只有一部分可用的雜訊參數被反白顯示,以示範如何在 Azure Quantum 提供者中傳遞這些參數。

如需完整可用雜訊參數集的詳細資訊,請參閱 Quantinuum 文件上的 Quantinuum 模擬器頁面。

首先,匯入必要的套件並起始基本設定檔:

from qdk import qsharp
from qdk.azure import Workspace

qsharp.init(target_profile=qsharp.TargetProfile.Base)

接下來,定義函式。

%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

並編譯操作:

MyProgram = qsharp.compile("GenerateRandomBit()")

線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:

MyWorkspace = Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update the parameter names desired
# Note: This is not the full set of options available. 
# For the full set, see the Quantinuum Emulators page
option_params = {
    "error-params": {
        "p1": 4e-5,
        "p2": 3e-3,
        "p_meas": [3e-3, 3e-3],
        "p_init": 4e-5,
        "p_crosstalk_meas": 1e-5,
        "p_crosstalk_init": 3e-5,
        "p1_emission_ratio": 6e-6,
        "p2_emission_ratio": 2e-4
    }
}

提交作業時輸入模擬器噪聲選項:

job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters", 
                      shots = 10, 
                      input_params = option_params)
job.get_results()

若要關閉模擬器雜訊模型,請將 選項設定 error-modelFalse。 根據預設,這會設定為 True

option_params = {
    "error-model": False 
}

若要使用穩定器模擬器,請將 simulator 選項設定為 stabilizer。 根據預設,這會設定為 state-vector

option_params = {
    "simulator": "stabilizer" 
}

Quantinuum Stack 中的 TKET 編譯

提交至 Quantinuum 系統的線路,除了整合混合式提交之外,會自動通過 TKET 編譯階段在 Quantinuum 硬體上執行。 這可讓線路自動針對 Quantinuum 系統優化,並更有效率地執行。

如需所套用之特定編譯階段的詳細資訊,請參閱 pytket-quantinuum 檔,特別是 pytket-quantinuum 編譯階段 一節。

在 Quantinuum 軟體堆疊中,套用的優化層級會使用 tket-opt-level 參數來設定。 提交至Quantinuum系統的所有線路的預設編譯設定為優化層級 2。

使用者若想在提交任何工作之前試驗 TKET 編譯通道並查看哪些最佳化會套用到其電路,可以在 Examples 資料夾中查看 pytket-quantinuum 筆記本。

若要在堆疊中關閉 TKET 編譯,需在no-opt內將True設為不同的選項option_params。 例如: "no-opt": True

如需pytket的詳細資訊,請參閱下列連結:

首先,匯入必要的套件並起始基本設定檔:

from qdk import qsharp
from qdk.azure import Workspace
qsharp.init(target_profile=qsharp.TargetProfile.Base)

接下來,定義函式。

%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.Convert.*;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

並編譯操作:

MyProgram = qsharp.compile("GenerateRandomBit()")

線上到 Azure Quantum、選取 target 機器,然後設定模擬器的雜訊參數:

MyWorkspace = Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("quantinuum.sim.h2-1e")

# Update TKET optimization level desired
option_params = {
    "tket-opt-level": 1
}

提交作業時輸入優化選項:

job = MyTarget.submit(MyProgram, "Experiment with TKET Compilation", shots = 10, input_params = option_params)
job.get_results()

技術規格

系統型號 H2 和系統型號 H2 模擬器的技術詳細資料,請參閱 硬體使用者指南 頁面,以及 Quantinuum 規格和量子磁碟區資料存放庫,以及如何 引用 Quantinuum 系統

目標可用性

Quantinuum 量子計算機的設計目的是要持續升級,讓客戶能夠存取最新的硬體功能,因為Quantinuum會持續改善閘道精確度、記憶體錯誤和系統速度。

Quantinuum 硬體會在商業階段和開發階段之間循環運行。 在商業期間,硬體可透過佇列系統處理作業。 在開發期間,硬體會在套用升級時脫機。

每個月,都會將日曆傳送給 Quantinuum 使用者,其中包含商業和發展期間的資訊。 如果您尚未收到此行事曆,請傳送電子郵件 QCsupport@quantinuum.com給 。

target的狀態表示其目前處理作業的能力。 可能的狀態 target 包括:

  • 可用:target 在線,正在處理提交的工作並接受新工作。
  • 降級:正在target接受任務,但暫時不處理。
  • 無法使用:處於 target 離線狀態,不接受新的工作提交。

對於 Quantinuum 量子電腦 targets, 可用降級 對應於商業期,而 不可用 則對應機器離線升級的開發期。

您可以從 Azure 入口網站 上工作區的 [提供者] 索引標籤擷取目前狀態資訊。

Pricing

若要查看 Quantinuum 的計費方案,請流覽 Azure Quantum 定價

限制和配額

Quantinuum 的配額是根據 QPU 使用量的信用單位來追蹤的:對於提交至 Quantinuum 量子電腦的工作,使用 硬體量子信用(HQC);而對於提交至模擬器的工作,則使用模擬器 HQC(eHQC)。

HQC 和 eHQC 是用來計算執行作業的成本,而且會根據下列公式來計算:

$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$

where:

  • $N_{1q}$ 是線路中一個量子位作業的數目。
  • $N_{2q}$ 是線路中的原生雙量子位作業數目。 原生閘門相當於 CNOT 外加幾個單量子位閘門。
  • $N_{m}$ 是線路中狀態準備和測量 (SPAM) 作業的數目,包括初始隱含狀態準備,以及任何中繼和最終的度量和狀態重設。
  • $C$ 是拍攝次數。

Note

HQC 的總成本涵蓋了所有條件式分支或控制流程中的閘道和測量。 這可能會對整合式混合式作業產生更高的影響。

配額是以方案選取為基礎,且可透過支援票證來增加。 若要查看目前的限制和配額,請移至 [作業] 區段,然後在 Azure 入口網站上選取工作區的 [配額] 刀鋒視窗。 如需詳細資訊,請參閱 Azure Quantum 配額