Description
What's the problem this feature will solve?
Our efforts in adopting MLIR within the MQT have been steadily progressing.
#880 is the first PR that adds interoperability with an external framework, namely Xanadu's Catalyst and their Quantum
dialect.
To connect the ecosystem further and to extend the compatibility of the MQT, this issue aims to add support for NVIDIA's quake
dialect that is used within CUDA-Q. See https://github.com/NVIDIA/cuda-quantum/blob/main/Overview.md for a brief overview.
Describe the solution you'd like
Similarly to the solution currently being pursued in #880, it should be possible to translate MLIR programs using the Quake dialect to our internal mqtopt
or mqtdyn
(see comment below for more details) dialect and back.
The conversion itself can probably borrow quite a few of the implementation details from #880.
The intriguing aspect is the packaging aspect in the sense that it is still an open question how to best add these translations without adding an unconditional dependency on cuda-q. Ideally, the integration is set up similar to how we currently handle Qiskit as an optional plugin of the mqt-core Python package: https://github.com/munich-quantum-toolkit/core/tree/main/src/mqt/core/plugins/qiskit