A performance orientated QGL compiler.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cfg
src
test
.codecov.yml
.gitignore
.travis.yml
LICENSE
README.md
REQUIRE

README.md

QGL.jl

Build Status

A performance orientated QGL compiler.

Installation

The package is not yet registered with METADATA.jl and so must be cloned with

Pkg.clone("https://github.com/BBN-Q/QGL.jl.git")

Benchmarks

Preliminary benchmarks show speed-ups for Python QGL of ~25-30X.

In the absence of proper benchmarking and regression testing we use the 1 qubit GST sequences from QGL issue #69 and the sequence creation script in test/benchmark.jl. With q1 having 20ns pulses and 100MHz sidebanding frequency and at commit 8fbbee6. Since it takes 5-6 seconds to compile and the default Benchmarking.jl times out with a single run. There is some variation so it is worth running a few trials.

julia> using QGL
julia> q1 = Qubit("q1")
q1

julia> include("test/benchmark.jl")
create_1Q_GST_seqs

julia> seqs = create_1Q_GST_seqs("/home/cryan/Downloads/sequence_numbers.csv", q1);

julia> using BenchmarkTools
julia> t = @benchmark compile_to_hardware(seqs, "silly") samples=5 seconds=60
BenchmarkTools.Trial:
  memory estimate:  1.56 gb
  allocs estimate:  66356642
  --------------
  minimum time:     6.685 s (5.09% GC)
  median time:      7.104 s (5.14% GC)
  mean time:        7.091 s (5.26% GC)
  maximum time:     7.373 s (5.65% GC)
  --------------
  samples:          5
  evals/sample:     1
  time tolerance:   5.00%
  memory tolerance: 1.00%

License

Apache License v2.0

Funding

This work was funded in part by the Army Research Office under contract W911NF-14-C-0048.