qsharp-community / qram

Library for Q# implementing various qRAM proposals
MIT License
52 stars 17 forks source link

Resource estimation with EXORCISM-4 #42

Closed glassnotes closed 3 years ago

glassnotes commented 3 years ago

This PR contains Python scripts and some csv data files of experiments creating random qROMs and then running them through a logic synthesis optimization tool (EXORCISM-4) to get resource counts.

These resource counts are still not totally optimal (there is no further Clifford+T decomposition or simplification of the optimized circuits) but this is a better estimate than the ones done in our original work.

glassnotes commented 3 years ago

Note: this requires the abc executable to reproduce the csv files.

Not sure how we want to incorporate this in the library at large (or if we want to incorporate it at all).

msoeken commented 3 years ago

@glassnotes There is a reimplementation of exorcism here with much less overhead than abc.

There is also a library extraction of only the exorcism code from abc here

glassnotes commented 3 years ago

@msoeken Aha, I knew it must have been in the EPFL libraries somewhere! Thank you for the links, I will take a look. It would definitely be nice to use something more streamlined.

(BTW - that command in abc.md is actually one that you sent me in an e-mail like > 2.5 years ago when I first started working on qRAM :grin: )

crazy4pi314 commented 3 years ago

@msoeken I think we would love to figure out how to actually include this in the Q# library or simulator feature there without having to call out to external code. What approach would you take for this? Add it as part of like the Toffli simulator?