1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年4月4日 |
---|
#9 in #quantum-computer
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