forked from Qiskit/qiskit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Consolidate transpiler pass port related release notes
- Loading branch information
Showing
9 changed files
with
55 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 0 additions & 7 deletions
7
releasenotes/notes/1.3/oxidize-basis-translator-e246a99118bd9486.yaml
This file was deleted.
Oops, something went wrong.
4 changes: 0 additions & 4 deletions
4
releasenotes/notes/1.3/oxidize-commutation-analysis-d2fc81feb6ca80aa.yaml
This file was deleted.
Oops, something went wrong.
53 changes: 53 additions & 0 deletions
53
releasenotes/notes/1.3/oxidize-transpiler-passes-16f2f1c57612e74a.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
--- | ||
features_transpiler: | ||
- | | ||
Most of the transpiler passes required by the preset pass manager have | ||
been ported into Rust. | ||
* The :class:`.ConsolidateBlocks` pass will now run the equivalent of the | ||
:class:`.Collect2qBlocks` pass internally if it was not run in a pass | ||
manager prior to the pass. Previously, | ||
:class:`.Collect2qBlocks` or :class:`.Collect1qRuns` had to be run before | ||
:class:`.ConsolidateBlocks` for :class:`.ConsolidateBlocks` to do | ||
anything. By doing the collection internally, the overhead from the pass | ||
is reduced. If :class:`.Collect2qBlocks` or :class:`.Collect1qRuns` are | ||
run prior to :class:`.ConsolidateBlocks,` the collected runs by those | ||
passes from the property set are used and there is no change in behavior | ||
for the pass. The pass now runs up to 3x faster than it did with Python. | ||
* The :class:`.BasisTranslator` transpiler pass has been reimplemented | ||
to work purely from Rust, taking advantage of all the other structures | ||
that currently exist there, such as the :class:`.Target`, :class:`.EquivalenceLibrary`, | ||
and the :class:`.DAGCircuit`. The pass itself now runs | ||
3x to 5x faster than it did in Python. | ||
* Added a Rust implementation of :class:`.CommutationAnalysis` in :func:`.analyze_commutations`. | ||
Testing on ASV benchmarks reveals increased performance of up to 3x compared to Python. | ||
* Port most of the logic of the transpiler pass :class:`~.ElidePermutations` | ||
to Rust. On certain tests the demostrated speedup is between 5x and 10x from | ||
its previous Python implementation. | ||
* Ported the entirety of the :class:`.Optimize1qGatesDecomposition` transpiler | ||
pass to Rust. This improves the runtime performance of the pass between 5x | ||
to 10x. | ||
* The :class:`.CommutationChecker` class has been reimplemented in | ||
Rust. This retains the same functionality as before but is now | ||
significantly faster in most cases. Depending on the circuit type | ||
we can observe a speedup of 5x. | ||
* Added circuit library functions :func:`.pauli_feature_map`, :func:`.z_feature_map`, | ||
:func:`.zz_feature_map` to construct Pauli feature map circuits. These functions | ||
are approximately 8x faster than the current circuit library objects, | ||
:class:`.PauliFeatureMap`, :class:`.ZFeatureMap`, and :class:`.ZZFeatureMap`, | ||
and will replace them in the future. Note, that the new functions return a plain | ||
:class:`.QuantumCircuit` instead of a :class:`.BlueprintCircuit`. From multiple benchmarks | ||
a speedup of up to 8x was observed, in comparison to Python. | ||
The functions can be used as drop-in replacement:: | ||
from qiskit.circuit.library import pauli_feature_map, PauliFeatureMap | ||
fm = pauli_feature_map(20, paulis=["z", "xx", "yyy"]) | ||
also_fm = PauliFeatureMap(20, paulis=["z", "xx", "yyy"]).decompose() |
5 changes: 0 additions & 5 deletions
5
releasenotes/notes/1.3/port-elide-permutations-ed91c3d9cef2fec6.yaml
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 0 additions & 6 deletions
6
releasenotes/notes/1.3/rust-commutation-checker-c738e67efa9d292f.yaml
This file was deleted.
Oops, something went wrong.
13 changes: 0 additions & 13 deletions
13
releasenotes/notes/1.3/rust-consolidation-a791a00380fc78b8.yaml
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.