-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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 synthesis plugin docs #11763
add synthesis plugin docs #11763
Conversation
Pull Request Test Coverage Report for Build 7914893703Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
:toctree: ../stubs/ | ||
|
||
/qiskit/transpiler/passes/synthesis/unitary_synthesis/DefaultUnitarySynthesis | ||
/qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis/SolovayKitaevSynthesis |
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.
I think that AQCSynthesisPlugin
also belongs here:
https://github.com/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/synthesis/aqc_plugin.py
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.
should these docs replace the docs here: https://docs.quantum.ibm.com/api/qiskit/dev/transpiler_passes#synthesis
as it seems that there is some overlap between them
Remove duplicate AQC plugin entry in synthesis docs and replace with module link. Remove duplicate transpiler builtin plugin page.
I don't think that the file |
@ShellyGarion Let me take a look, I removed the file because sphinx was complaining that it wasn't part of any toctree (because the builtin plugin file was the only one using it), but we should be able to make the link work without having an individual file for it. If I can't find the way, let's bring it back. At least, do you think the synthesis plugin page looks like it was intended to? |
I think that the |
@ShellyGarion I think that cf11cb7 has fixed the AQC page. I managed to generate it without an additional rst file. |
Indeed, it looks much better now. thanks! |
============================================================================== | ||
AQC Synthesis Plugin (in :mod:`qiskit.transpiler.passes.synthesis.aqc_plugin`) | ||
============================================================================== |
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.
.. list-table:: Plugins for :class:`.PermutationGate` (key = ``"permutation"``) | ||
:header-rows: 1 | ||
|
||
* - Plugin name | ||
- Plugin class | ||
- Targeted connectivity | ||
- Description | ||
* - ``"basic"`` | ||
- :class:`~.BasicSynthesisPermutation` | ||
- all-to-all | ||
- optimal swap count | ||
* - ``"acg"`` | ||
- :class:`~.ACGSynthesisPermutation` | ||
- all-to-all | ||
- swap depth of at most `2` | ||
* - ``"kms"`` | ||
- :class:`~.KMSSynthesisPermutation` | ||
- linear | ||
- swap depth of at most `n` | ||
* - ``"token_swapper"`` | ||
- :class:`~.TokenSwapperSynthesisPermutation` | ||
- any | ||
- | ||
* - ``"default"`` | ||
- :class:`~.BasicSynthesisPermutation` | ||
- all-to-all | ||
- same as ``"basic"`` | ||
|
||
.. autosummary:: | ||
:toctree: ../stubs/ | ||
|
||
BasicSynthesisPermutation | ||
ACGSynthesisPermutation | ||
KMSSynthesisPermutation | ||
TokenSwapperSynthesisPermutation |
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.
This is marked as closing an issue in the 1.0.0 milestone. Is it ready to review/merge now? We can always tweak documentation after the release, but it'd be good to have at least the main skeleton in to begin with (and this already looks fairly done?). We could merge this and have more PRs later if that's convenient? |
Sorry for the delay. I would like to make one more quick pass over the text in the tables. And many thanks to @ElePT for turning the initial mess of this PR to the current form. |
One or more of the the following people are requested to review this:
|
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.
Thanks for this, Sasha, Elena and Shelly - it looks like a really big improvement over what we've (not!) got so far.
* very initial commit * fix? * temporarily removing * is this one adds absolute paths? * partially restoring * another experiment * adding the remaining information * Move docs to corresponding file and link from top. Remove duplicate AQC plugin entry in synthesis docs and replace with module link. Remove duplicate transpiler builtin plugin page. * Generate AQC page * Remove plugin from synthesis docs, refer to new plugin docs. * adding short descriptions of available plugins --------- Co-authored-by: Elena Peña Tapia <epenatap@gmail.com> (cherry picked from commit 9184907)
* very initial commit * fix? * temporarily removing * is this one adds absolute paths? * partially restoring * another experiment * adding the remaining information * Move docs to corresponding file and link from top. Remove duplicate AQC plugin entry in synthesis docs and replace with module link. Remove duplicate transpiler builtin plugin page. * Generate AQC page * Remove plugin from synthesis docs, refer to new plugin docs. * adding short descriptions of available plugins --------- Co-authored-by: Elena Peña Tapia <epenatap@gmail.com> (cherry picked from commit 9184907) Co-authored-by: Alexander Ivrii <alexi@il.ibm.com>
Summary
Adds API docs section for synthesis plugins.
Fixes #11675.
UPDATE:
For each relevant high-level-object (e.g.,
Clifford
,LinearFunction
orPermutationGate
) we are adding a table comparing different plugins available for this object, and the links to the available plugins (to easy finding the relevant documentation).