forked from Qiskit/qiskit-aer
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implementing runtime parameter binding (Qiskit#1901)
Optimizes GPU simulation for single circuit with multiple parameters by binding parameters to each gates at runtime on a single circuit with multiple shots of simulations. This feature is enabled by a new option ``runtime_parameter_bind_enable=True`` (Default is ``False``). * Implementing runtime parameter binding * remove old files * fix seg fault caused by global phase for parameters * delete duplicate max_matrix_qubits * Correct metadata for runtime param bind configs and move time_taken to metadata so that we can read time info from primitives * performance improvement of sampling measure for runtime parameter binding * fix error for MPI * Improve batched sampling measure * format * fix OpenMP nested parallel * reflecting review comments * fix lint * fix lint
- Loading branch information
Showing
43 changed files
with
4,389 additions
and
823 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
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
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
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
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,30 @@ | ||
--- | ||
features: | ||
- | | ||
This release restructures ``State`` classes. | ||
Adding circuit executor classes that runs a circuit and manages multiple | ||
states for multi-shots simulations or multi-chunk simulations for large | ||
number of qubits. | ||
Previously ``StateChunk`` class manages multiple chunks for multi-shots or | ||
multi-chunk simulations but now ``State`` class only has one state | ||
and all the parallelization codes are moved to ``Executor`` classes. | ||
Now all ``State`` classes are independent from parallelization. | ||
Also some of the functions in ``Aer::Controller`` class are moved to | ||
``CircuitExecutor::Executor`` class. | ||
- | | ||
Shot-branching technique that accelerates dynamic circuits simulations | ||
is implemented with restructured ``Executor`` classes. | ||
Shot-branching is currently applicable to statevector, density_matrix | ||
and tensor_network methods. | ||
Shot-branching provides dynamic distribution of multi-shots | ||
by branching states when applying dynamic operations | ||
(measure, reset, initialize, noises) | ||
By default ``shot_branching_enable`` is disabled. | ||
And by setting ``shot_branching_sampling_enable``, final measures will be | ||
done by sampling measure that will speed up to get counts for multiple shots | ||
sharing the same state. | ||
- | | ||
New option for GPU simulation ``target_gpus`` is added. | ||
A list of GPUs used for the simulation can be set by this option. | ||
Without this option, all the available GPUs are used. | ||
For example, if there is 4 GPUs, ``target_gpus=[0, 2]`` will use 2 GPUs. |
8 changes: 8 additions & 0 deletions
8
releasenotes/notes/runtime_parameter_binding-d2c57255f02729a1.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,8 @@ | ||
--- | ||
features: | ||
- | | ||
A runtime parameter binding option is implemented to bind paramters at | ||
runtime to a single circuit instead running multiple circuits as input. | ||
An option ``runtime_parameter_bind_enable=True`` enables this feature and | ||
for GPU, ``batched_shots_gpu=True`` should be also set to speed up | ||
simulating parameterized circuit. |
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
Oops, something went wrong.