-
Notifications
You must be signed in to change notification settings - Fork 90
Added first version of Qubit manager to QIR #696
Conversation
|
I believe I'm done with the review. I assume you don't need approval (requesting for comments in this PR). |
|
An interesting note: the clang-tidy on Linux tends to be stricter than the one on Windows, and has caught a few issues that were reported as errors on that platform causing the native Linux build step to fail. You can see those starting in the log here. |
Yes, I saw that and will fix. |
|
I feel tired/exhausted today. I still need to figure out the logic behind the calls of |
swernli
left a comment
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 one minor comment from me, but otherwise looks good from my side. Also, I believe merging this will resolve #557.
kuzminrobin
left a comment
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.
Other than this looks good to me.
Approving.
|
Re-approving with minor comments. |
* Update API docs with more examples. (#701) Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * QIR runtime heap alloc and heap free functions removed (#703) * QIR runtime heap alloc and heap free functions removed * Implement Feedback Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * Add QIR Runtime to bootstrap script (#706) * Increasing the CMAKE required version for QIR (#708) This updates the required version for CMAKE in the CMakeLists.txt files for QIR, since we are now using features not correctly supported on older versions. * Added first version of Qubit manager to QIR (#696) This is the first version of the native Qubit Manager for QIR. Initial unit tests are included. Qubit Manager supports * Allocation and release of qubits including arrays of qubits. * Reuse encouraged/discouraged. Extending capacity enabled/disabled. * Restricted reuse areas and segments to support low-depth circuits. Qubit manager builds and tests are run as part of the qir-runtime-unittests. It is used in the bridge to the full state simulator. Commits: * Added first draft version of Qubit manager to QIR * Review feedback. Rearranged functions, QubitIdType, consts, etc. * include cstring for memcpy * Renamed QubitManager * Adjustment after QubitManager rename * Moved QubitManager.h to public * Using QubitManager, adjusted defaults, minor fixes * Removed unused comment * CR feedback: fixes to types, failures, braces, etc. * CR feedback - updated types, unique_ptr, etc. * Auxilliary stuff is now nested in CQubitmanager * Initializer lists * Updated CRestrictedReuseAreaStack and used iterator. * int32_t, more checks, some refactoring * Refactoring: marking and counting is done in allocate/release qubit id * Deletion of qubit object, protected members for overrides, Is...Qubit renames * Moved allocated marking to listQubitListInSharedArray class * Added comments, mostly status array * Tests, refactoring, replaced IsFreeQubit with IsFreeQubitId Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com> * Added treating warnings as errors (#718) * Added "QIR Runtime API Design Guidelines" (#711) * Initial add of QIR-RT-API-Design-Guidelines.md * Use of exceptions recommendation (#719) * Co-authored-by: Mathias Soeken * Co-authored-by: DmitryVasilevsky * Auto emulation rewrite step (#514) * First proposal for auto emulation feature. * Deprecation. * Update to newer version. * Successful tests. * Compatibility checks. * Do not change this file. * Signature checking too restrictive. * Add integration test. * Update QDK version. * Incorporate microsoft/QuantumLibraries#426. * Rename emulation to substitution. * Rename projects and directories. * Packaging. * Fix line-feed problems. * Fix LF. * Adressing reviewer feedback. * Update Sdk version. * Fixes dependency error. Co-authored-by: Mathias Soeken <masoeken@microsoft.com> Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * Added compiler warning flags -Wall, -Wextra (#725) * Added -Wall, -Wextra * Add DelaySign.cs to AutoSubstitution project. (#729) * extra sln Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> Co-authored-by: Pankaj Patil <pankaj.patil2099@hotmail.com> Co-authored-by: DmitryVasilevsky <60718360+DmitryVasilevsky@users.noreply.github.com> Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com> Co-authored-by: Robin Kuzmin <kuzmin.robin@gmail.com> Co-authored-by: Mathias Soeken <mathias.soeken@microsoft.com> Co-authored-by: Mathias Soeken <masoeken@microsoft.com>
* Replace generated files in Quantum.Client with reference to the Azure.QuantumJobs package (#697) * Changes to enable Mocks for iq# and integrate with Live tests (#707) * Credentials parameter (#721) * Move to CredentialFactory. * Adding support for DeviceCode * Merge main (#731) * Update API docs with more examples. (#701) Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * QIR runtime heap alloc and heap free functions removed (#703) * QIR runtime heap alloc and heap free functions removed * Implement Feedback Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * Add QIR Runtime to bootstrap script (#706) * Increasing the CMAKE required version for QIR (#708) This updates the required version for CMAKE in the CMakeLists.txt files for QIR, since we are now using features not correctly supported on older versions. * Added first version of Qubit manager to QIR (#696) This is the first version of the native Qubit Manager for QIR. Initial unit tests are included. Qubit Manager supports * Allocation and release of qubits including arrays of qubits. * Reuse encouraged/discouraged. Extending capacity enabled/disabled. * Restricted reuse areas and segments to support low-depth circuits. Qubit manager builds and tests are run as part of the qir-runtime-unittests. It is used in the bridge to the full state simulator. Commits: * Added first draft version of Qubit manager to QIR * Review feedback. Rearranged functions, QubitIdType, consts, etc. * include cstring for memcpy * Renamed QubitManager * Adjustment after QubitManager rename * Moved QubitManager.h to public * Using QubitManager, adjusted defaults, minor fixes * Removed unused comment * CR feedback: fixes to types, failures, braces, etc. * CR feedback - updated types, unique_ptr, etc. * Auxilliary stuff is now nested in CQubitmanager * Initializer lists * Updated CRestrictedReuseAreaStack and used iterator. * int32_t, more checks, some refactoring * Refactoring: marking and counting is done in allocate/release qubit id * Deletion of qubit object, protected members for overrides, Is...Qubit renames * Moved allocated marking to listQubitListInSharedArray class * Added comments, mostly status array * Tests, refactoring, replaced IsFreeQubit with IsFreeQubitId Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com> * Added treating warnings as errors (#718) * Added "QIR Runtime API Design Guidelines" (#711) * Initial add of QIR-RT-API-Design-Guidelines.md * Use of exceptions recommendation (#719) * Co-authored-by: Mathias Soeken * Co-authored-by: DmitryVasilevsky * Auto emulation rewrite step (#514) * First proposal for auto emulation feature. * Deprecation. * Update to newer version. * Successful tests. * Compatibility checks. * Do not change this file. * Signature checking too restrictive. * Add integration test. * Update QDK version. * Incorporate microsoft/QuantumLibraries#426. * Rename emulation to substitution. * Rename projects and directories. * Packaging. * Fix line-feed problems. * Fix LF. * Adressing reviewer feedback. * Update Sdk version. * Fixes dependency error. Co-authored-by: Mathias Soeken <masoeken@microsoft.com> Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> * Added compiler warning flags -Wall, -Wextra (#725) * Added -Wall, -Wextra * Add DelaySign.cs to AutoSubstitution project. (#729) * extra sln Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> Co-authored-by: Pankaj Patil <pankaj.patil2099@hotmail.com> Co-authored-by: DmitryVasilevsky <60718360+DmitryVasilevsky@users.noreply.github.com> Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com> Co-authored-by: Robin Kuzmin <kuzmin.robin@gmail.com> Co-authored-by: Mathias Soeken <mathias.soeken@microsoft.com> Co-authored-by: Mathias Soeken <masoeken@microsoft.com> * Apply suggestions from code review Co-authored-by: Chris Granade <chgranad@microsoft.com> * Incorporating feedback. * Build 0.17.2106.147878. Co-authored-by: Chris Granade <chgranad@microsoft.com> Co-authored-by: Stefan J. Wernli <swernli@microsoft.com> Co-authored-by: Pankaj Patil <pankaj.patil2099@hotmail.com> Co-authored-by: DmitryVasilevsky <60718360+DmitryVasilevsky@users.noreply.github.com> Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com> Co-authored-by: Robin Kuzmin <kuzmin.robin@gmail.com> Co-authored-by: Mathias Soeken <mathias.soeken@microsoft.com> Co-authored-by: Mathias Soeken <masoeken@microsoft.com>
This is the first version of the native Qubit Manager for QIR. Initial unit tests are included.
Qubit Manager supports
Qubit manager builds and tests are run as part of the qir-runtime-unittests. It is used in the bridge to the full state simulator.