-
Notifications
You must be signed in to change notification settings - Fork 73
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
add cl-quil-benchmarking system quilc-perf for perf. benchmarking #733
Conversation
Here's timing output from
Environment info:
|
Here's timing output for
Environment info:
|
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.
Overall, this looks good. Just a few small requests re: docs & comments.
|
nice: the actual error is a missing slot, and not some bug in state prep compilation. phew! |
I think I see it: Quil package error condition |
@ecpeterson Unfortunately if you look at line 3 and 8 in the stack trace, you see two errors: (1) the violent numerical error and (2) an error printing the error. |
😫 |
@kilimanjaro I addressed your requests and made some additional/related fixes and improvements in commit 4e4bef7. I marked each one as resolved -- not completely sure that's the right thing, but feel free to unresolve any or all. |
Please do not merge it until I've had a chance to rebase and squash manually. I added "WIP:" to title just to prevent this going in as is. Hope this is OK with everyone. |
You can change it to an unmergeable "draft PR" by clicking the right button somewhere on the page. |
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.
Just two random stylistic things, but other than that it looks good to me!
EDIT: never mind, since I just did a push of a couple of commits (c6a6de3 and c1bfa5a), which kicked off the CI again, and this time it passed. 🤷 Hey folks. In draft PR #744 I just have the same commits as in this PR but it's rebased with master, and in particular takes in the commit fixing the missing slot secondary error (d176882). That PR passed all tests. Therefore, I suggest rerunning the tests (manually kicking off) and/or having me force push on this branch the rebase with master. What do you think @notmgsk or @stylewarning ? |
@mhdavid-hrl I'm ready to merge. All good? |
Almost, this really needs a squash and fixup of commit messages. |
This is part of issue "Investigate performance at 72-150 qubits #565". new modules: benchmarking/quilc-perf.lisp - primarily exports benchmark-nq function to get timings as nQ increases for various chip and program types. This also introduces a "chip preparation" step before running any benchmarks. This removes any overhead from running the first compile on a chip out of the first benchmark run. Currently, there is significant but not tremendous amount of initial overhead, but a PR under consideration might add significant additional preparation overhead, and these should not be be charged to the first run. benchmarking/quilc-mon-prof.lisp - builds on quilc-perf.lisp and is for monitoring and profiling, as opposed to simple benchmarks, and is a WIP of sorts in that, while it's been useful to run for probing and experimenting in a REPL, we ;; so far lack really good theory of operation and associated modes of ;; running. We hope with time to get there. Also, note that some of this is SBCL-only. Makefile - add targets to run benchmark-nq a couple of ways: `make benchmark-nq` calls benchmark-nq one time, and `make benchmark-nq-2x` calls it twice. The idea is to capture the sometimes significant jump in performance observed between a first and second run within the same Lisp environment, due to the effects of "warming", caching, and the like. cl-quil-benchmarking.asd - add new module quilc-perf and depend on 3 additional systems: metering, qvm-app, sb-sprof
Done with rebase/squash/fix commit log, and all checks have passed. Good to merge now. |
This is part of issue "Investigate performance at 72-150 qubits #565".
new modules:
benchmarking/quilc-perf.lisp - primarily exports
benchmark-nq function to get timings as nQ increases for various
chip and program types
benchmarking/quilc-mon-prof.lisp - builds on quilc-perf.lisp and is
for monitoring and profiling, as opposed to simple benchmarks, and
is a WIP.
Makefile - add targets to run benchmark-nq a couple of ways
cl-quil-benchmarking.asd - add new module quilc-perf and depend on 3
additional systems: metering, qvm-app, sb-sprof