🚧 Integrate QDMI Devices#1687
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
arch optionarch Option
arch Option
Cpp-Linter Report
|
|
@burgholzer (cc: @ystade) This pull request now implements a very basic QDMI V1 integration into our compiler collection. Before continuing, I want to discuss the following issues. Optionally enable QDMIAs of now, the current implementation tightly couples the Extract Nested ClassesIn order to augment the FoMaC device classes, I think it would be nice to extract them outside the Trailing Return Types (Nitpick, sorry!)I am really not that sure if the FoMaC classes benefit from the benefits of trailing return types. The // fomac/FoMaC.cpp
auto getParametersNum(const std::vector<Site>& sites = {},
const std::vector<double>& params = {}) const -> size_t;
// qdmi/sc/Device.hpp
auto sessionFree(MQT_SC_QDMI_Device_Session session) -> void;I've taken the liberty to implement some of the above FoMaC changes this morning (+ some improvements using modern C++ concepts) in Any comments appreciated! Many thanks 🙏 |
Hm. I'd argue that if we view QDMI as the primary way to add architecture information to
We have an open tracking issue going in that direction #1358. See also #1363 (comment)
Feel free to get rid of them. I am personally not the biggest fan of these either way.
Thanks, I'll take a look! 👍🏼
|
I was kind of thinking about IBM Benchpress. Not sure if we could still use QDMI here that easily.
Oh. Great! I'll have a look at these and try to incorporate them in the refactoring.
I've also opened #1849 to ease the comparison to the old implementation. |
I was hoping that we could take the input from benchpress and wrap it in QDMI at runtime.
Take those with a grain of salt though. It's been a while that they have been written and some circumstances might have changed since then. Still good to have a look though. |
Description
This is a work-in-progress pull request adding an
archoption to themqt-cctool that specifies the target QPU architecture / device. Eventually, the provided name should be used to load a dynamic device library and setup the QDMI device accordingly.If the architecture option is provided, the
mqt-cctool should perform transpilation. That is native gate-set decomposition, and if the architecture has a coupling map, the superconducting mapping pass1. Otherwise, these steps are skipped and the compilation is thus hardware-agnostic.My hope is that by doing / discussing this now, we can immediately test and benchmark multiple architectures more easily.
Resolves #1082.
Checklist
If PR contains AI-assisted content:
Assisted-by: [Model Name] via [Tool Name]footer.Footnotes
--fit-topology(or--fit-coupling-map) could potentially be a more suitable name instead of the generic--place-and-route. ↩