Converting to a standalone adapter - #2
kayaercument wants to merge 5 commits into
Conversation
| FetchContent_Declare( | ||
| mqss-client | ||
| GIT_REPOSITORY https://github.com/kayaercument/MQSS-Client.git | ||
| GIT_TAG develop |
There was a problem hiding this comment.
A version tag would be more stable as the develop is going to change over time.
| # Define the JIT lowering pipeline | ||
| jit-mid-level-pipeline: "lower-to-cfg,quake-to-cc-prep,func.func(expand-control-veqs,combine-quantum-alloc,canonicalize,combine-measurements)" | ||
| # Tell the rest-qpu that we are generating OpenQASM 2.0. | ||
| codegen-emission: qasm2 |
There was a problem hiding this comment.
Any option for the user to set it to a different IR type? e.g. quake or qir?
| @@ -0,0 +1,39 @@ | |||
| set(LIBRARY_NAME mqss-adapter) | |||
There was a problem hiding this comment.
Would it be a good idea to move this CMake file to the root folder?
| /// @brief the platform file path | ||
| std::filesystem::path platformPath; | ||
|
|
||
| mqss::client::MQSSClient client; |
| const cudaq::AnyModule &module, | ||
| cudaq::KernelArgs args) { | ||
| throw std::runtime_error( | ||
| "MQSSQPU does not support launching the async_sample_policy."); |
There was a problem hiding this comment.
Why MQSS can't support async? What is needed to support async?
|
@mnfarooqi @kayaercument Are we going to use this adapter in its current form and integrate new MQSS Quantum Compilation Suite and MQSS client? |
Yes, the idea is that the MQSS client will offload the Quantum MLIR (Quake), and the MQSS Quantum Compilation Suite will then convert it into a format that the backends can understand. |
|
In that case, I think this adapter would need major updates. E.g. currently it uses an older cudaq-quantum version (maybe 0.13.0 or older; from one year ago). Another thing I see is a forked version of cudaq is being fetched from gitlab and a patch is being applied from upstream cudaq. Also, from the build scripts it seems that entire cudaq is being built from source. I guess for an adapter we need to build and use only the frontend infrastructure of cudaq. |
Hello Akshay 👋 Thank you for your comment. The implementation you described was the older version of the adapter, which requires the entire CUDAQ. However, the current implementation is just a backend that can be built and installed on the existing CUDAQ 0.15.0. |
Forgot to check your @kayaercument branch. Sorry about that. So, you are using the using the pre-built cudaq-0.15.0 wheels. That is fine for a first version, though I prefer selectively building targets. Besides that and other issues like code quality and testing that have been mentioned, for now I do not have other concerns. |
Signed-off-by: Ercüment Kaya <49598189+kayaercument@users.noreply.github.com>
Thank you very much @akshay9594. I understand your concern, and I agree. My initial goal is to ensure we have a working prototype. Therefore, I would like to merge this PR (Of course, after we improve the existing code quality based on your review). Then, we can work on the testing. This way, we can keep the PRs short. |
akshay9594
left a comment
There was a problem hiding this comment.
No more comments from my side.
This PR aims to convert the existing implementation into a standalone implementation.
How to run it:
A couple of things need to be improved:
FYI: @ctminh @echavarria-mqv