1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年4月4日

#9 in #quantum-computer

MIT 许可证

30KB
533

QCGPU-Rust

开源、高性能及硬件加速,Rust语言量子计算机模拟

功能

  • 使用OpenCL内核
  • 跨平台运行
  • 任意量子算法的模拟
  • 可选的退相干模拟
  • 优化最大纠缠态
  • GPU加速
  • 包含Grover算法、Deutsch-Jozsa算法、Bernstein-Vazirani算法和Shors算法的示例实现
  • 实现Hadamard、Pauli和相位门,支持任意单量子比特门的创建
  • 支持控制门以及toffoli和swap门
  • 支持快速多次测量状态

先决条件

  • OpenCL(确保您的平台已安装OpenCL库,并且clinfo或其他诊断命令可以运行)。
  • Rust(请在此处安装Rust)。请使用nightly构建。

如果您想运行基准测试,您还必须安装libquantum和qiskit。

  • Libquantum可以从源代码安装,或从包管理器如brew(brew install libquantum --devel)或apt(sudo apt-get install libquantum-dev)安装。您应该得到开发版本1.1.1。
  • Qiskit可以通过pip pip3 install qiskit安装。

用法

首先,将crate添加到cargo.toml

[dependencies]
qcgpu = { git = "https://github.com/QCGPU/QCGPU-rust" }

然后只需使用crate!

extern crate qcgpu;

fn main() {
    let mut state = qcgpu::State::new(2, 0);
    state.apply_gate(0, qcgpu::gates::x());

    println!("Measured: {}", state.measure());
    // 1
}

初始基准测试

在亚马逊EC2 p3.2xlarge实例上运行,带有25GB通用SSD(GP2)

5 Qubits Single Gate Application/GPU
                        time:   [204.39 us 214.76 us 225.98 us]
5 Qubits Single Gate Application/CPU
                        time:   [157.85 us 160.23 us 162.47 us]
25 Qubits Single Gate Application/GPU
                        time:   [103.50 ms 105.64 ms 108.39 ms]
25 Qubits Single Gate Application/CPU
                        time:   [248.81 ms 249.93 ms 250.53 ms]
5 Qubits Controlled Gate Application/GPU
                        time:   [205.55 us 209.50 us 214.34 us]
5 Qubits Controlled Gate Application/CPU
                        time:   [158.28 us 159.56 us 161.78 us]
25 Qubits Controlled Gate Application/GPU
                        time:   [106.13 ms 108.15 ms 110.50 ms]
25 Qubits Controlled Gate Application/CPU
                        time:   [246.37 ms 247.91 ms 248.89 ms]

许可证

本软件根据MIT许可证(见LICENSE.md)授权

版权所有 (c) 2018 Adam Kelly

依赖项

~3MB
~50K SLoC