-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add Taso optimiser #104
Conversation
Don't get too scared by the +10k (I got scared too), it's just an ECC file for testing. |
Oh never mind, it did optimise over the course of 3 hours:
it's soooo sloooooow |
024990b
to
da00392
Compare
18d3c43
to
27a574f
Compare
Turns out it works quite a bit better when using their pre-processed circuits (at
within 40 seconds |
Required for some #104 ecc sets. Note that the published `tket-json-rs` dropped the `tket2` feature. But it should be fine once CQCL/tket-json-rs#13 is merged and published.
# Conflicts: # src/json/op.rs
src/passes/taso.rs
Outdated
seen_hashes.insert(hash); | ||
} | ||
// try to send to first available thread | ||
if let Some(next_ind) = cycle_inds.by_ref().take(n_threads).find(|next_ind| { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A crossbeam-channel
would simplify this quite a bit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a TODO for this.
I've reorganised the code quite a bit: mainly moved from the passes module to a new optimiser module. I've also introduced a I apologise for the significant rewrite -- the code logic hasn't changed however, so hopefully reviewing this shouldn't be too time consuming. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome :D
Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
Co-authored-by: Agustín Borgna <[email protected]>
From the
taso-optimiser
folder, you should be able to runand see the Barenco benchmark circuit getting optimised.
However, currently it doesn't actually optimise atm, I don't know why that is the case. We need to look into it. Maybe I just haven't let it run long enough...