QGL.jl

A performance orientated QGL compiler.
Author BBN-Q
Popularity
12 Stars
Updated Last
1 Year Ago
Started In
December 2016

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.