qiskit/crates/accelerate
Matthew Treinish 13443f4c97
Remove unecessary nodes field in SabreDAG (#14199)
The SabreDAG struct was carrying a nodes field which was a Vec of the
topologically sorted node descriptions used to create the inner graph
object. The format of this field mirrors what Python passes to Rust when
initially creating the DAG. The reason this was being kept around was
for reversing the graph when working with control flow ops. However, in
practice this isn't necessary because all the data contained in the vec
is also contained in the graph and we can just reverse the graph
directly and save having to carry around the entire object. Also
removing this field simplifies the step of moving the sabre dag
construction into Rust which is required for porting the remainder of
the pass to Rust.
2025-04-10 19:49:41 +00:00
..
src Remove unecessary nodes field in SabreDAG (#14199) 2025-04-10 19:49:41 +00:00
Cargo.toml Fix string and standard gate mismatch in commutation checker (#13991) 2025-03-12 13:27:09 +00:00
README.md Refactor Rust crates to build a single extension module (#12134) 2024-04-17 19:52:07 +00:00

README.md

qiskit-accelerate

This crate provides a bits-and-pieces Rust libary for small, self-contained functions that are used by the main Python-space components to accelerate certain tasks. If you're trying to speed up one particular Python function by replacing its innards with a Rust one, this is the best place to put the code. This is usually the right place to put new Rust/Python code.

The qiskit-pyext crate is what actually builds the C extension modules. Modules in here should define themselves has being submodules of qiskit._accelerate, and then the qiskit-pyext crate should bind them into its fn _accelerate when it's making the C extension.