From 125e1877bc7bc888d21ab84c0f25246656f35982 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 11:35:36 -0500 Subject: [PATCH 1/6] Prepare 0.12.0 release This commit prepares for the 0.12.0 release. It moves the release notes to a self contained directory for the release and updates the wording and details of the release notes. Once this commit merges it should be the tagged commit for the release. --- ...om_backendproperties-1a3d6d976133a661.yaml | 10 ++++ .../0.12/add-grouping-fcc4fad69ccdac26.yaml | 18 +++++++ ...alize_density_matrix-a72b1a614b09726e.yaml | 0 ...ethods-in-primitives-8013546db867e849.yaml | 0 .../deprecate-37-b3ec705b9f469b0b.yaml | 0 ...cate-pulse-simulator-27cde3ece112c346.yaml | 0 ...x-ndarray-contiguity-e903d0fda4744100.yaml | 9 ++++ .../fix-split-cregs-5b5494a92c4903e7.yaml | 7 +++ .../fix_batch_execution-da4d88dbee26731b.yaml | 0 ...etwork_not_installed-a23b8ef65e6e643e.yaml | 0 ...ps_fix_apply_measure-84c29a728ae0e717.yaml | 14 ++++++ ...optimized_stabilizer-f696742e7f881d0d.yaml | 9 ++++ .../0.12/own_assembler-0c76e67a054bd12c.yaml | 48 +++++++++++++++++++ .../0.12/prepare-0.12-0da477fc0492ca5d.yaml | 13 +++++ ...ated-noise-functions-52128d161d3327e9.yaml | 0 .../0.12/remove-qobj-684e68e99b212973.yaml | 8 ++++ ...emove-setup_requires-751a406e2782885e.yaml | 2 +- ...k_and_continue_gates-bf30316fcacd4b6b.yaml | 0 .../support_kraus-ec31e636c6793b8c.yaml | 0 .../tensor_network_gpu-e8eb3e40be3c35f7.yaml | 24 ++++++++++ .../0.12/use_conan_1.x-f12570e2cfc8bb26.yaml | 9 ++++ ...specified_bla_vendor-ca0322e993378048.yaml | 8 ++++ ...om_backendproperties-1a3d6d976133a661.yaml | 6 --- .../notes/add-grouping-fcc4fad69ccdac26.yaml | 8 ---- ...d-python-311-support-027047fb389116dd.yaml | 4 -- .../cmake_cuda_arch-817eb0b7232bd291.yaml | 6 --- ...om_backend_BackendV2-bccf835bc42a193d.yaml | 8 ---- ...-device-noise-models-2eca2f9c9dc25771.yaml | 11 ----- ...fix-local-noise-pass-83815d5a80f9a0e9.yaml | 6 --- ...x-ndarray-contiguity-e903d0fda4744100.yaml | 6 --- .../fix-split-cregs-5b5494a92c4903e7.yaml | 5 -- .../fix-temperature-a9c51c4599af3a49.yaml | 8 ---- ...logical-control-flow-e2f1a25098004f00.yaml | 29 ----------- ...fix-vervose-warnings-efbbbfcb4b65a2a5.yaml | 11 ----- .../fix_GPU_statevector-715da5ead0a59fb5.yaml | 8 ---- ..._aer_statevector_mps-c3dd40b936700ff4.yaml | 8 ---- ...ix_bug_in_tail_while-6a9201d1ad6ba6e8.yaml | 7 --- ...he_blocking_AerState-ccb035bb5be6f895.yaml | 8 ---- ...ector-initialization-75274fdcb4106d24.yaml | 7 --- ...ps_fix_apply_measure-84c29a728ae0e717.yaml | 10 ---- ...optimized_stabilizer-f696742e7f881d0d.yaml | 6 --- .../notes/own_assembler-0c76e67a054bd12c.yaml | 24 ---------- .../notes/remove-qobj-684e68e99b212973.yaml | 6 --- .../notes/sampler-cache-78f916cedb0c5421.yaml | 4 -- .../sampler-counts-90e5aaabccdc415b.yaml | 5 -- ..._each_in_aerstatevec-ef5fcac628dec63b.yaml | 6 --- ..._terra_primitive_022-8852b784608bcdcb.yaml | 8 ---- .../tensor_network_gpu-e8eb3e40be3c35f7.yaml | 13 ----- .../notes/use_conan_1.x-f12570e2cfc8bb26.yaml | 4 -- ...specified_bla_vendor-ca0322e993378048.yaml | 4 -- 50 files changed, 178 insertions(+), 237 deletions(-) create mode 100644 releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml create mode 100644 releasenotes/notes/0.12/add-grouping-fcc4fad69ccdac26.yaml rename releasenotes/notes/{ => 0.12}/add_initialize_density_matrix-a72b1a614b09726e.yaml (100%) rename releasenotes/notes/{ => 0.12}/delete-args-and-methods-in-primitives-8013546db867e849.yaml (100%) rename releasenotes/notes/{ => 0.12}/deprecate-37-b3ec705b9f469b0b.yaml (100%) rename releasenotes/notes/{ => 0.12}/deprecate-pulse-simulator-27cde3ece112c346.yaml (100%) create mode 100644 releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml create mode 100644 releasenotes/notes/0.12/fix-split-cregs-5b5494a92c4903e7.yaml rename releasenotes/notes/{ => 0.12}/fix_batch_execution-da4d88dbee26731b.yaml (100%) rename releasenotes/notes/{ => 0.12}/fix_tensor_network_not_installed-a23b8ef65e6e643e.yaml (100%) create mode 100644 releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml create mode 100644 releasenotes/notes/0.12/optimized_stabilizer-f696742e7f881d0d.yaml create mode 100644 releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml create mode 100644 releasenotes/notes/0.12/prepare-0.12-0da477fc0492ca5d.yaml rename releasenotes/notes/{ => 0.12}/remove-deprecated-noise-functions-52128d161d3327e9.yaml (100%) create mode 100644 releasenotes/notes/0.12/remove-qobj-684e68e99b212973.yaml rename releasenotes/notes/{ => 0.12}/remove-setup_requires-751a406e2782885e.yaml (88%) rename releasenotes/notes/{ => 0.12}/support_break_and_continue_gates-bf30316fcacd4b6b.yaml (100%) rename releasenotes/notes/{ => 0.12}/support_kraus-ec31e636c6793b8c.yaml (100%) create mode 100644 releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml create mode 100644 releasenotes/notes/0.12/use_conan_1.x-f12570e2cfc8bb26.yaml create mode 100644 releasenotes/notes/0.12/use_specified_bla_vendor-ca0322e993378048.yaml delete mode 100644 releasenotes/notes/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml delete mode 100644 releasenotes/notes/add-grouping-fcc4fad69ccdac26.yaml delete mode 100644 releasenotes/notes/add-python-311-support-027047fb389116dd.yaml delete mode 100644 releasenotes/notes/cmake_cuda_arch-817eb0b7232bd291.yaml delete mode 100644 releasenotes/notes/fix-AerSimulator_from_backend_BackendV2-bccf835bc42a193d.yaml delete mode 100644 releasenotes/notes/fix-device-noise-models-2eca2f9c9dc25771.yaml delete mode 100644 releasenotes/notes/fix-local-noise-pass-83815d5a80f9a0e9.yaml delete mode 100644 releasenotes/notes/fix-ndarray-contiguity-e903d0fda4744100.yaml delete mode 100644 releasenotes/notes/fix-split-cregs-5b5494a92c4903e7.yaml delete mode 100644 releasenotes/notes/fix-temperature-a9c51c4599af3a49.yaml delete mode 100644 releasenotes/notes/fix-topological-control-flow-e2f1a25098004f00.yaml delete mode 100644 releasenotes/notes/fix-vervose-warnings-efbbbfcb4b65a2a5.yaml delete mode 100644 releasenotes/notes/fix_GPU_statevector-715da5ead0a59fb5.yaml delete mode 100644 releasenotes/notes/fix_aer_statevector_mps-c3dd40b936700ff4.yaml delete mode 100644 releasenotes/notes/fix_bug_in_tail_while-6a9201d1ad6ba6e8.yaml delete mode 100644 releasenotes/notes/fix_cache_blocking_AerState-ccb035bb5be6f895.yaml delete mode 100644 releasenotes/notes/improve-statevector-initialization-75274fdcb4106d24.yaml delete mode 100644 releasenotes/notes/mps_fix_apply_measure-84c29a728ae0e717.yaml delete mode 100644 releasenotes/notes/optimized_stabilizer-f696742e7f881d0d.yaml delete mode 100644 releasenotes/notes/own_assembler-0c76e67a054bd12c.yaml delete mode 100644 releasenotes/notes/remove-qobj-684e68e99b212973.yaml delete mode 100644 releasenotes/notes/sampler-cache-78f916cedb0c5421.yaml delete mode 100644 releasenotes/notes/sampler-counts-90e5aaabccdc415b.yaml delete mode 100644 releasenotes/notes/set_seed_for_each_in_aerstatevec-ef5fcac628dec63b.yaml delete mode 100644 releasenotes/notes/support_terra_primitive_022-8852b784608bcdcb.yaml delete mode 100644 releasenotes/notes/tensor_network_gpu-e8eb3e40be3c35f7.yaml delete mode 100644 releasenotes/notes/use_conan_1.x-f12570e2cfc8bb26.yaml delete mode 100644 releasenotes/notes/use_specified_bla_vendor-ca0322e993378048.yaml diff --git a/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml new file mode 100644 index 0000000000..cd183a498d --- /dev/null +++ b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml @@ -0,0 +1,10 @@ +--- +features: + - | + Added a new class method :meth:`~.NoiseModel.from_backend_properties` to + the :class:`NoiseModel`. This enables constructing a new :class:`~.NoiseModel` + from a :class:`~.BackendProperties` object. Similar functionality used + to be present in the :meth:`.NoiseModel.from_backend` constructor, + however it was removed since a :class:`~.BackendProperties` object alone + doesn't contain sufficient information create a :class:`~.NoiseModel` + object. diff --git a/releasenotes/notes/0.12/add-grouping-fcc4fad69ccdac26.yaml b/releasenotes/notes/0.12/add-grouping-fcc4fad69ccdac26.yaml new file mode 100644 index 0000000000..9b2f21a6a6 --- /dev/null +++ b/releasenotes/notes/0.12/add-grouping-fcc4fad69ccdac26.yaml @@ -0,0 +1,18 @@ +--- +features: + - | + Added a new keyword argument, ``abelian_grouping``, to + the :class:`~.Estimator`. This argument is used to control whether the + :class:`~.Estimator` will group the input observables into qubit-wise + commutable observables which reduces the number of circuit executions + required to compute the expectation value and improves the runtime + performance of the :class:`~.Estimator`. By default this is set to + ``True``. +upgrade: + - | + The default behavior of the :class:`~.Estimator` primitive will now + group the input observable into qubit-wise commutable observables. + The grouping reduces the number of circuits to be executed and improves + the performance. If you desire the previous behavior you can initialize + your :class:`~.Estimator` instance with the keyword argument + ``abelian_grouping=False``. diff --git a/releasenotes/notes/add_initialize_density_matrix-a72b1a614b09726e.yaml b/releasenotes/notes/0.12/add_initialize_density_matrix-a72b1a614b09726e.yaml similarity index 100% rename from releasenotes/notes/add_initialize_density_matrix-a72b1a614b09726e.yaml rename to releasenotes/notes/0.12/add_initialize_density_matrix-a72b1a614b09726e.yaml diff --git a/releasenotes/notes/delete-args-and-methods-in-primitives-8013546db867e849.yaml b/releasenotes/notes/0.12/delete-args-and-methods-in-primitives-8013546db867e849.yaml similarity index 100% rename from releasenotes/notes/delete-args-and-methods-in-primitives-8013546db867e849.yaml rename to releasenotes/notes/0.12/delete-args-and-methods-in-primitives-8013546db867e849.yaml diff --git a/releasenotes/notes/deprecate-37-b3ec705b9f469b0b.yaml b/releasenotes/notes/0.12/deprecate-37-b3ec705b9f469b0b.yaml similarity index 100% rename from releasenotes/notes/deprecate-37-b3ec705b9f469b0b.yaml rename to releasenotes/notes/0.12/deprecate-37-b3ec705b9f469b0b.yaml diff --git a/releasenotes/notes/deprecate-pulse-simulator-27cde3ece112c346.yaml b/releasenotes/notes/0.12/deprecate-pulse-simulator-27cde3ece112c346.yaml similarity index 100% rename from releasenotes/notes/deprecate-pulse-simulator-27cde3ece112c346.yaml rename to releasenotes/notes/0.12/deprecate-pulse-simulator-27cde3ece112c346.yaml diff --git a/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml b/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml new file mode 100644 index 0000000000..dd81f999f5 --- /dev/null +++ b/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixed an issue when creating a new :class:`~.AerStatevector` instance + from an ``numpy.ndarray`` that had non-contiguous memory. Previously, + this would result in unexpected behavior (and a potential error) as + the :class:`~.AerStatevector` assumed the input array was contiguous. This + has been fixed so that memory layout is checked and the ``numpy.ndarray`` + will be copied internally as a contiguous array before using it. diff --git a/releasenotes/notes/0.12/fix-split-cregs-5b5494a92c4903e7.yaml b/releasenotes/notes/0.12/fix-split-cregs-5b5494a92c4903e7.yaml new file mode 100644 index 0000000000..3754429422 --- /dev/null +++ b/releasenotes/notes/0.12/fix-split-cregs-5b5494a92c4903e7.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixed an issue with the :class:`.Sampler` class where it would previously + fail if the input :class:`~.QuantumCircuit` contained multiple + multiple classical registers. + Fixed `#1679 `__ diff --git a/releasenotes/notes/fix_batch_execution-da4d88dbee26731b.yaml b/releasenotes/notes/0.12/fix_batch_execution-da4d88dbee26731b.yaml similarity index 100% rename from releasenotes/notes/fix_batch_execution-da4d88dbee26731b.yaml rename to releasenotes/notes/0.12/fix_batch_execution-da4d88dbee26731b.yaml diff --git a/releasenotes/notes/fix_tensor_network_not_installed-a23b8ef65e6e643e.yaml b/releasenotes/notes/0.12/fix_tensor_network_not_installed-a23b8ef65e6e643e.yaml similarity index 100% rename from releasenotes/notes/fix_tensor_network_not_installed-a23b8ef65e6e643e.yaml rename to releasenotes/notes/0.12/fix_tensor_network_not_installed-a23b8ef65e6e643e.yaml diff --git a/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml b/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml new file mode 100644 index 0000000000..410e3564f0 --- /dev/null +++ b/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml @@ -0,0 +1,14 @@ +--- + +fixes: + - | + Fixed an issue in the matrix product state simulation method (i.e. + setting the keyword argument ``method="matrix_product_state" when + initializing an :class:`~.AerSimulator` object) where the simulator + would incorrectly sort the qubits prior to performing measurment + potentially resulting in an infinite loop. This has been fixed so + the measurement of the qubits occurs in the order of the current MPS + structure and then sorting afterwards as a post-processing step. This also + will likely improve the performance of the simulation method and enable + more accurate representation of entangled states. + Fixed `#1694 `__ diff --git a/releasenotes/notes/0.12/optimized_stabilizer-f696742e7f881d0d.yaml b/releasenotes/notes/0.12/optimized_stabilizer-f696742e7f881d0d.yaml new file mode 100644 index 0000000000..936da033a2 --- /dev/null +++ b/releasenotes/notes/0.12/optimized_stabilizer-f696742e7f881d0d.yaml @@ -0,0 +1,9 @@ +--- +Features: + - | + The performance of the ``stabilizer`` simulation method (i.e. when setting + the keyword argument ``method="stabilizer"`` when initializing an + :class:`~.AerSimulator` instance) has been improved. This + was accomplished by changing the internal data order to align data access + for improved CPU cache locality and improving the efficiency of integer + bit operations. diff --git a/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml b/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml new file mode 100644 index 0000000000..6cc12644ae --- /dev/null +++ b/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml @@ -0,0 +1,48 @@ +--- +features: + - | + The overhead for running simulations with :meth:`~.AerSimulator.run` + (for all simulator backend classess) has been greatly reduced. This was + accomplished by no longer internally serializing + :class:`~qiskit.circuit.QuantumCircuit` objects into + :class:`~qiskit.qobj.QasmQobj` and instead the + :class:`~qiskit.circuit.QuantumCircuit` object directly to + an internal C++ circuit structure used for simulation. This improvement + is most noticeable for simulations of circuts with a small number of qubits + or parameterized circuits using the ``parameter_binds`` keyword argument + of :meth:`~.AerSimulator.run`. + Note that pulse simualation (via the now deprecated :class:`~.PulseSimulator`) + and DASK-based simulation still use the internal serialization and will + not see this performance improvement. + - | + Added a new method to the :class:`~.AerJob`, :meth:`~.AerJob.circuits`, which + returns a list of :class:`~qiskit.circuit.QuantumCircuit` This method returns + ``None`` if Qobj is used for simulation. +deprecations: + - | + The :meth:`~.AerJob,qobj` method of the :class:`AerJob` class is + now deprecated and will be removed in a future release. The use of + the qobj format as input to :meth:`~.AerSimulator.run` has been + deprecated since qiskit-aer 0.9.0 and in most cases this method + would return ``None`` now anyway. If you'd like to get the input + to the ``run()`` method now you can use the :meth:`~.AerJob.circuits` + method instead, which will return the :class:`~.QuantumCircuit` + objects that were simulated in the job. +upgrade: + - | + The behavior of :meth:`~.AerSimulator.run` method has changed when invalid + or otherwise unsimulatable :class:`~.QuantumCircuit` objects are passed as + an input. Previously, in these cases the :meth:`~.AerSimulator.run` method + would return an :class:`~.AerJob` whose :meth:`~.AerJob.result` method would + return a :class:`~.Result` with the ``ERROR`` or ``PARTIAL COMPLETED`` + (depending on whether all the circuit inputs or only some were invalid or not). + Starting in this release instead of returning a result object with these statuses + an exception will be raised instead. This change was necessary because + of the performance improvements by no longer internally serializing the + :class:`~.QuantumCircuit` objects to a Qobj before passing it to C++, instead + the direct conversion from :class:`~.QuantumCircuit` now errors directly when + trying to simulate a circuit Qiskit Aer is unable to execute. If you desire the + previous behavior you can build Qiskit Aer in standalone mode and manually + serialize your :class:`~.QuantumCircuit` objects to a JSON representation of + the :class:`~.QasmQobj` which you then pass to the standalone Aer binary + which will retain the previous behavior. diff --git a/releasenotes/notes/0.12/prepare-0.12-0da477fc0492ca5d.yaml b/releasenotes/notes/0.12/prepare-0.12-0da477fc0492ca5d.yaml new file mode 100644 index 0000000000..3a1cc05e73 --- /dev/null +++ b/releasenotes/notes/0.12/prepare-0.12-0da477fc0492ca5d.yaml @@ -0,0 +1,13 @@ +--- +prelude: > + The Qiskit Aer 0.12.0 release highlights are: + + * Added a new GPU tensor network simulator based on + `cuTensorNet `__ + * Added a new :class:`~.AerDensityMatrix` class to the :mod:`qiskit_aer.quantum_info` module + * Greatly improving the runtime performance of the :class:`~.AerSimulator` and the legacy + :class:`~.QasmSimulator`, :class:`~.StatevectorSimulator`, and :class:`~.UnitarySimulator` + classes by directly converting the input :class:`~.QuantumCircuit` objects to an internal + C++ representation instead of first serializing the circuit to a :class:`~.QasmQobj`. This + improvement will be most noticeable for circuits with a small number of qubits or parameterized + circuits using the ``parameter_binds`` keyword argument. diff --git a/releasenotes/notes/remove-deprecated-noise-functions-52128d161d3327e9.yaml b/releasenotes/notes/0.12/remove-deprecated-noise-functions-52128d161d3327e9.yaml similarity index 100% rename from releasenotes/notes/remove-deprecated-noise-functions-52128d161d3327e9.yaml rename to releasenotes/notes/0.12/remove-deprecated-noise-functions-52128d161d3327e9.yaml diff --git a/releasenotes/notes/0.12/remove-qobj-684e68e99b212973.yaml b/releasenotes/notes/0.12/remove-qobj-684e68e99b212973.yaml new file mode 100644 index 0000000000..593fb804d9 --- /dev/null +++ b/releasenotes/notes/0.12/remove-qobj-684e68e99b212973.yaml @@ -0,0 +1,8 @@ +--- +upgrade: + - | + The previously deprecated ``qobj`` argument name of the + :class:`~.AerSimulator` and :class:`~.PulseSimulator` classes' + :meth:`~.AerSimulator.run` method has now been removed. This argument + name was deprecated as part of the Qiskit Aer 0.8.0 release and has + been by the ``circuits`` and ``schedules`` argument name respectively. diff --git a/releasenotes/notes/remove-setup_requires-751a406e2782885e.yaml b/releasenotes/notes/0.12/remove-setup_requires-751a406e2782885e.yaml similarity index 88% rename from releasenotes/notes/remove-setup_requires-751a406e2782885e.yaml rename to releasenotes/notes/0.12/remove-setup_requires-751a406e2782885e.yaml index e2851fd28d..9626c7ac4c 100644 --- a/releasenotes/notes/remove-setup_requires-751a406e2782885e.yaml +++ b/releasenotes/notes/0.12/remove-setup_requires-751a406e2782885e.yaml @@ -3,7 +3,7 @@ upgrade: - | Aer's ``setup.py`` has been updated to no longer attempt to make calls to ``pip`` to install build requirements, both manually and via the ``setup_requires`` option in - ``setuptools.setup``. The preferred way to build Aer is to use a PEP 517-compatible + ``setuptools.setup``. The preferred way to build Aer is to use a `PEP 517 `__-compatible builder such as: .. code-block:: text diff --git a/releasenotes/notes/support_break_and_continue_gates-bf30316fcacd4b6b.yaml b/releasenotes/notes/0.12/support_break_and_continue_gates-bf30316fcacd4b6b.yaml similarity index 100% rename from releasenotes/notes/support_break_and_continue_gates-bf30316fcacd4b6b.yaml rename to releasenotes/notes/0.12/support_break_and_continue_gates-bf30316fcacd4b6b.yaml diff --git a/releasenotes/notes/support_kraus-ec31e636c6793b8c.yaml b/releasenotes/notes/0.12/support_kraus-ec31e636c6793b8c.yaml similarity index 100% rename from releasenotes/notes/support_kraus-ec31e636c6793b8c.yaml rename to releasenotes/notes/0.12/support_kraus-ec31e636c6793b8c.yaml diff --git a/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml new file mode 100644 index 0000000000..7567321028 --- /dev/null +++ b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml @@ -0,0 +1,24 @@ +--- +features: + - | + Added a new simulation method based on NVIDIA's `cuTensorNet `__ + APIs of cuQuantum SDK. This provides a GPU accelerated general tensor + network simulator that can simulate any quantum circuit, by internally + translating the circuit into a tensor network to perform the simulation. + To use this simulation method, set ``method=tensor_network`` and + ``device=GPU`` when initializing an :class:`~.AerSimulator` object. + For example:: + + from qiskit_aer import AerSimulator + + tensor_net_sim = AerSimulator(method=tensor_network, device=GPU) + + This method supports both statevector and density matrix simulations. + Noise simulation can also be done with a density matrix single shot + simulation ith density matrix are is not :class:`~.SaveStatevector` operations + in the circuit. + + This new simulation method also supports parallelization with multiple GPUs and + MPI processes by using tensor network slicing technique. However, this type of + simulation will likely take a very long time if the input circuits are + complicated. diff --git a/releasenotes/notes/0.12/use_conan_1.x-f12570e2cfc8bb26.yaml b/releasenotes/notes/0.12/use_conan_1.x-f12570e2cfc8bb26.yaml new file mode 100644 index 0000000000..118774443d --- /dev/null +++ b/releasenotes/notes/0.12/use_conan_1.x-f12570e2cfc8bb26.yaml @@ -0,0 +1,9 @@ +--- +issues: + - | + This release of Qiskit Aer is not compatible with the Conan 2.X release + series. If you are building Qiskit Aer from source manually ensure that + you are using a Conan 1.x release. Compatibility with newer versions + of Conan will be fixed in a future release. You can refer to + issue `#1730 `__ for + more details. diff --git a/releasenotes/notes/0.12/use_specified_bla_vendor-ca0322e993378048.yaml b/releasenotes/notes/0.12/use_specified_bla_vendor-ca0322e993378048.yaml new file mode 100644 index 0000000000..fa94365f75 --- /dev/null +++ b/releasenotes/notes/0.12/use_specified_bla_vendor-ca0322e993378048.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + The ``BLA_VENDOR`` environment variable can now be specified to use a + different BLAS library when building Qiskit Aer from source. By default + if this is not specified OpenBLAS will be used by default. If + the BLAS library specified in `BLA_VENDOR`` can not be found then the + Cmake build process will stop. diff --git a/releasenotes/notes/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml b/releasenotes/notes/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml deleted file mode 100644 index 92064cd491..0000000000 --- a/releasenotes/notes/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Add a new class method :meth:`~.NoiseModel.from_backend` to :class:`NoiseModel`. - The function allows to construct a noise model from a `BackendProperties` object, - which can seen as a spin-off of a removed functionality of `NoiseModel.from_backend`. diff --git a/releasenotes/notes/add-grouping-fcc4fad69ccdac26.yaml b/releasenotes/notes/add-grouping-fcc4fad69ccdac26.yaml deleted file mode 100644 index b981a628ea..0000000000 --- a/releasenotes/notes/add-grouping-fcc4fad69ccdac26.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - Add ``abelian_grouping`` option to :class:`~Estimator`. -upgrade: - - | - In default, :class:`~Estimator` groups the qubit-wise commutable observables. - The grouping reduces the number of circuits to be executed and improves the performance. diff --git a/releasenotes/notes/add-python-311-support-027047fb389116dd.yaml b/releasenotes/notes/add-python-311-support-027047fb389116dd.yaml deleted file mode 100644 index c7dcd91fdc..0000000000 --- a/releasenotes/notes/add-python-311-support-027047fb389116dd.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Added support for running Qiskit Aer with Python 3.11 support. diff --git a/releasenotes/notes/cmake_cuda_arch-817eb0b7232bd291.yaml b/releasenotes/notes/cmake_cuda_arch-817eb0b7232bd291.yaml deleted file mode 100644 index b0c70bde7a..0000000000 --- a/releasenotes/notes/cmake_cuda_arch-817eb0b7232bd291.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - cmake 3.18 or later requires setting CMAKE_CUDA_ARCHITECTURES with - architecture value for the target GPU. - This fix sets CMAKE_CUDA_ARCHITECTURES by referring to AER_CUDA_ARCH. diff --git a/releasenotes/notes/fix-AerSimulator_from_backend_BackendV2-bccf835bc42a193d.yaml b/releasenotes/notes/fix-AerSimulator_from_backend_BackendV2-bccf835bc42a193d.yaml deleted file mode 100644 index afe8f550cd..0000000000 --- a/releasenotes/notes/fix-AerSimulator_from_backend_BackendV2-bccf835bc42a193d.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed support in the :meth:`.AerSimulator.from_backend` method for instantiating - an :class:`~.AerSimulator` instance from an a :class:`~.BackendV2` object. - Previously, attempting to use :meth:`.AerSimulator.from_backend` with a - :class:`~.BackendV2` object would have raised an :class:`~.AerError` saying this - wasn't supported. diff --git a/releasenotes/notes/fix-device-noise-models-2eca2f9c9dc25771.yaml b/releasenotes/notes/fix-device-noise-models-2eca2f9c9dc25771.yaml deleted file mode 100644 index 9e6cb9a505..0000000000 --- a/releasenotes/notes/fix-device-noise-models-2eca2f9c9dc25771.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -fixes: - - | - Fixes a bug where :meth:`NoiseModel.from_backend` with a ``BackendV2`` object may generate - a noise model with excessive ``QuantumError`` s on non-Gate instructions while, - for example, only ``ReadoutError`` s should be sufficient for measures. - This commit updates :meth:`NoiseModel.from_backend` with a ``BackendV2`` object so that - it returns the same noise model as that called with the corresponding ``BackendV1`` object. - That is, the resulting noise model does not contain any ``QuantumError`` s on measures and - it may contain only thermal relaxation errors on other non-gate instructions such as resets. - Note that it still contains ``ReadoutError`` s on measures. diff --git a/releasenotes/notes/fix-local-noise-pass-83815d5a80f9a0e9.yaml b/releasenotes/notes/fix-local-noise-pass-83815d5a80f9a0e9.yaml deleted file mode 100644 index 4a4eca4b5c..0000000000 --- a/releasenotes/notes/fix-local-noise-pass-83815d5a80f9a0e9.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixes a bug in the handling of instructions with clbits in :class:`.LocalNoisePass`. - Previously, it was accidentally erasing clbits of instructions (e.g. measures) - to which the noise is applied in the case of ``method="append"``. diff --git a/releasenotes/notes/fix-ndarray-contiguity-e903d0fda4744100.yaml b/releasenotes/notes/fix-ndarray-contiguity-e903d0fda4744100.yaml deleted file mode 100644 index 8c63f1929b..0000000000 --- a/releasenotes/notes/fix-ndarray-contiguity-e903d0fda4744100.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - If non contiguous numpy.ndarray is input, an AerStatevector instance with - unexpected data is created. So this fix discontiguity of the memory layout - of numpy.ndarray if it is detected. diff --git a/releasenotes/notes/fix-split-cregs-5b5494a92c4903e7.yaml b/releasenotes/notes/fix-split-cregs-5b5494a92c4903e7.yaml deleted file mode 100644 index 4f55497c6f..0000000000 --- a/releasenotes/notes/fix-split-cregs-5b5494a92c4903e7.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Fix the bug where the :class:`.Sampler` fails if the input circuit has multiple classical - registers. diff --git a/releasenotes/notes/fix-temperature-a9c51c4599af3a49.yaml b/releasenotes/notes/fix-temperature-a9c51c4599af3a49.yaml deleted file mode 100644 index b83388bfb0..0000000000 --- a/releasenotes/notes/fix-temperature-a9c51c4599af3a49.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed a bug in :meth:`NoiseModel.from_backend` where using the ``temperature`` kwarg with - a non-default value would incorrectly compute the excited state population for - the specified temperature. Previously, there was an additional factor of 2 in - the Boltzman distribution calculation leading to an incorrect smaller value - for the excited state population. diff --git a/releasenotes/notes/fix-topological-control-flow-e2f1a25098004f00.yaml b/releasenotes/notes/fix-topological-control-flow-e2f1a25098004f00.yaml deleted file mode 100644 index e528ffb52b..0000000000 --- a/releasenotes/notes/fix-topological-control-flow-e2f1a25098004f00.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -fixes: - - | - Fixed incorrect logic in the control-flow compiler that could allow unrelated instructions to - appear "inside" control-flow bodies during execution, causing incorrect results. For example, - previously:: - - from qiskit import QuantumCircuit - from qiskit_aer import AerSimulator - - backend = AerSimulator(method="statevector") - - circuit = QuantumCircuit(3, 3) - circuit.measure(0, 0) - circuit.measure(1, 1) - - with circuit.if_test((0, True)): - with circuit.if_test((1, False)): - circuit.x(2) - - with circuit.if_test((0, False)): - with circuit.if_test((1, True)): - circuit.x(2) - - circuit.measure(range(3), range(3)) - print(backend.run(circuit, method=method, shots=100).result()) - - would print ``{'010': 100}`` as the nested control-flow operations would accidentally jump over - the first X gate on qubit 2, which should have been executed. diff --git a/releasenotes/notes/fix-vervose-warnings-efbbbfcb4b65a2a5.yaml b/releasenotes/notes/fix-vervose-warnings-efbbbfcb4b65a2a5.yaml deleted file mode 100644 index e6c333ef32..0000000000 --- a/releasenotes/notes/fix-vervose-warnings-efbbbfcb4b65a2a5.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -fixes: - - | - Fixes a bug where ``NoiseModel.from_backend()`` prints verbose warnings when - supplying a backend that reports un-physical device parameters such as T2 > 2 * T1 - due to statistical errors in their estimation. - This commit removes such warnings because they are not actionable for users in the sense - that there are no means other than truncating them to the theoretical bounds as - done within ``noise.device`` module. - See `Issue 1631 `__ - for details of the fixed bug. diff --git a/releasenotes/notes/fix_GPU_statevector-715da5ead0a59fb5.yaml b/releasenotes/notes/fix_GPU_statevector-715da5ead0a59fb5.yaml deleted file mode 100644 index aaa6f314ec..0000000000 --- a/releasenotes/notes/fix_GPU_statevector-715da5ead0a59fb5.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - This is fix for GPU statevector simulator. - Chunk distribution tried to allocate all free memory on GPU, - but this causes memory allocation error. - So this fix allocates 80 percent of free memory. - Also this fixes size of matrix buffer when noise sampling is applied. diff --git a/releasenotes/notes/fix_aer_statevector_mps-c3dd40b936700ff4.yaml b/releasenotes/notes/fix_aer_statevector_mps-c3dd40b936700ff4.yaml deleted file mode 100644 index 622ace2172..0000000000 --- a/releasenotes/notes/fix_aer_statevector_mps-c3dd40b936700ff4.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -issues: - - | - Fix two bugs in AerStatevector. AerStatevector uses mc* instructions, which are - not enabled in matrix_product_state method. This commit changes AerStatevector - not to use MC* and use H, X, Y, Z, U and CX. AerStatevector also failed if an - instruction is decomposed to empty QuantumCircuit. This commit allows such - instruction. diff --git a/releasenotes/notes/fix_bug_in_tail_while-6a9201d1ad6ba6e8.yaml b/releasenotes/notes/fix_bug_in_tail_while-6a9201d1ad6ba6e8.yaml deleted file mode 100644 index 7940e5a46d..0000000000 --- a/releasenotes/notes/fix_bug_in_tail_while-6a9201d1ad6ba6e8.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - Fixes an issue when while_loop is the tail of QuantumCircuit. while_loop - is translated to jump and mark instructions. However, if a while_loop is - at the end of a circuit, its mark instruction is truncated wrongly. This - fix corrects the truncation algorithm to always remain mark instructions. diff --git a/releasenotes/notes/fix_cache_blocking_AerState-ccb035bb5be6f895.yaml b/releasenotes/notes/fix_cache_blocking_AerState-ccb035bb5be6f895.yaml deleted file mode 100644 index 71331940b6..0000000000 --- a/releasenotes/notes/fix_cache_blocking_AerState-ccb035bb5be6f895.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - This is a fix of AerState running with cache blocking. AerState wrongly configured - transpiler of Aer for cache blocking, and then its algorithm to swap qubits - worked wrongly. This fix corrects AerState to use this transpiler. More specifically, - After the transpilation, a swapped qubit map is recoverd to the original map - when using AerState. This fix is necessary for AerStatevector to use multiple-GPUs. diff --git a/releasenotes/notes/improve-statevector-initialization-75274fdcb4106d24.yaml b/releasenotes/notes/improve-statevector-initialization-75274fdcb4106d24.yaml deleted file mode 100644 index 19c7c6d3eb..0000000000 --- a/releasenotes/notes/improve-statevector-initialization-75274fdcb4106d24.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - This is fix for AerStatevector. - It was not possible to create an AerStatevector instance directly from - terra's Statevector. - This fix allows a Statevector as AerStatevector's input. diff --git a/releasenotes/notes/mps_fix_apply_measure-84c29a728ae0e717.yaml b/releasenotes/notes/mps_fix_apply_measure-84c29a728ae0e717.yaml deleted file mode 100644 index 963957661a..0000000000 --- a/releasenotes/notes/mps_fix_apply_measure-84c29a728ae0e717.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- - -fixes: - - | - Fixed issue . - Changed the MPS measurement algorithm so that it does not move the qubits - to the sorted positions before measuring. We measure the qubits in the - order of the current MPS structure and then sort the measurement values - as a post-process. Beside fixing the bug, this is expected to improve - performance and enable more accurate representation of entangled states. \ No newline at end of file diff --git a/releasenotes/notes/optimized_stabilizer-f696742e7f881d0d.yaml b/releasenotes/notes/optimized_stabilizer-f696742e7f881d0d.yaml deleted file mode 100644 index d3905a3d19..0000000000 --- a/releasenotes/notes/optimized_stabilizer-f696742e7f881d0d.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Optimization of stabilizer simulator performance by changing data order. - By this change, data access have been improved to use cache memory - effectivelly. And also integer bit operations have been improved. diff --git a/releasenotes/notes/own_assembler-0c76e67a054bd12c.yaml b/releasenotes/notes/own_assembler-0c76e67a054bd12c.yaml deleted file mode 100644 index bcb53b5520..0000000000 --- a/releasenotes/notes/own_assembler-0c76e67a054bd12c.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -features: - - | - Aer simulates :class:`~qiskit.circuit.QuantumCircuit` without serialization to - :class:`~qiskit.qobj.QasmQobj`. Instead, Aer converts a circuit to - a :class:`.AerCircuit` instance that a wrapper of internal circuit structure - of Aer C++. With this change, because overheads of serialization is reduced, - performance of simulation especially for low-qubit circuts is improved. - Note that pulse simualation and DASK-based simulation still use Qobj and - :class`.AerJob` does not return Qobj otherwise. - - | - :class:`AerJob` has a new method :meth:`circuits` that return a list of - :class:`~qiskit.circuit.QuantumCircuit` This method returns `None` if Qobj - is used for simulation. -deprecations: - - | - A method :meth:`qobj` of :class:`AerJob` is deprecated because Using a qobj - is deprecated as of qiskit-aer 0.9.0. Once qobj support is removed, :meth:`qobj` - will return always `None`. -upgrade: - - | - If a circuit includes gates not in basis gates, previously Aer returns a result - with `ERROR` or `PARTIAL COMPLETED` status. From this release, Aer throws an - error when :meth:`reesult()` is called. diff --git a/releasenotes/notes/remove-qobj-684e68e99b212973.yaml b/releasenotes/notes/remove-qobj-684e68e99b212973.yaml deleted file mode 100644 index 34010c20ea..0000000000 --- a/releasenotes/notes/remove-qobj-684e68e99b212973.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - In Aer 0.8.0, the ``qobj`` parameter was replaced by ``circuits`` and ``schedules`` - in :class:`.AerSimulator` and :class:`.PulseSimulator` respectively. The ``qobj`` - parameter for ``backend.run`` is now removed. diff --git a/releasenotes/notes/sampler-cache-78f916cedb0c5421.yaml b/releasenotes/notes/sampler-cache-78f916cedb0c5421.yaml deleted file mode 100644 index b167488a35..0000000000 --- a/releasenotes/notes/sampler-cache-78f916cedb0c5421.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - Improved the performance of :class:`.Sampler` introducing cache of transpiled circuits. diff --git a/releasenotes/notes/sampler-counts-90e5aaabccdc415b.yaml b/releasenotes/notes/sampler-counts-90e5aaabccdc415b.yaml deleted file mode 100644 index 1bd60d8138..0000000000 --- a/releasenotes/notes/sampler-counts-90e5aaabccdc415b.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - :attr:`.SamplerResult.quasi_dists` contain the data about the number of qubits. - :meth:`QuasiDistribution.binary_probabilities` returns bitstrings with correct length. diff --git a/releasenotes/notes/set_seed_for_each_in_aerstatevec-ef5fcac628dec63b.yaml b/releasenotes/notes/set_seed_for_each_in_aerstatevec-ef5fcac628dec63b.yaml deleted file mode 100644 index fcadc88a4c..0000000000 --- a/releasenotes/notes/set_seed_for_each_in_aerstatevec-ef5fcac628dec63b.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Previously seed is not initialized in AerStatevector and then sampled results - are always same. With this commit, a seed is initialized for each sampling - and sampled results can be vary. diff --git a/releasenotes/notes/support_terra_primitive_022-8852b784608bcdcb.yaml b/releasenotes/notes/support_terra_primitive_022-8852b784608bcdcb.yaml deleted file mode 100644 index 98424916fc..0000000000 --- a/releasenotes/notes/support_terra_primitive_022-8852b784608bcdcb.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed compatibility of the :class:`~.qiskit_aer.primitives.Sampler` and :class:`~.qiskit_aer.primtives.Estimator` - primitive classes with qiskit-terra 0.22.0 release. In qiskit-terra 0.22.0 breaking API changes were made to the - abstract interface which broke compatibility with these classes, this has been addressed so that - :class:`~.qiskit_aer.primitives.Sampler` and :class:`~.qiskit_aer.primtives.Estimator` can now be used with - qiskit-terra >= 0.22.0. diff --git a/releasenotes/notes/tensor_network_gpu-e8eb3e40be3c35f7.yaml b/releasenotes/notes/tensor_network_gpu-e8eb3e40be3c35f7.yaml deleted file mode 100644 index 039dcca749..0000000000 --- a/releasenotes/notes/tensor_network_gpu-e8eb3e40be3c35f7.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -features: - - | - Implementing general tensor network simulator for GPU accelerated by - NVIDIA's cuTensoNet APIs of cuQuantum SDK. Any quantum circuits can - be translated into tensor network and can be simulated. - To use this simulation method, set method=tensor_network and device=GPU - This method supports both statevector and density matrix simulations, - noise simulation can be done by single shot with density matrix - if there is no save_statevector operation. - This method supports parallelization by multiple GPUs and MPI processes - by using tensor network slicing technique. - (Note : It will take very long time if the circuits is complicated.) diff --git a/releasenotes/notes/use_conan_1.x-f12570e2cfc8bb26.yaml b/releasenotes/notes/use_conan_1.x-f12570e2cfc8bb26.yaml deleted file mode 100644 index c9a004bfeb..0000000000 --- a/releasenotes/notes/use_conan_1.x-f12570e2cfc8bb26.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -issues: - - | - Aer isn't compatible with Conan 2.X API (https://github.com/Qiskit/qiskit-aer/issues/1730). diff --git a/releasenotes/notes/use_specified_bla_vendor-ca0322e993378048.yaml b/releasenotes/notes/use_specified_bla_vendor-ca0322e993378048.yaml deleted file mode 100644 index e9e6d6b4c3..0000000000 --- a/releasenotes/notes/use_specified_bla_vendor-ca0322e993378048.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Allow a BLA_VENDOR specified by the user, when this is not the case it defaults to OpenBLAS. Note also, if the specified BLAS library is not found Cmake's setup stops. From 6e735f14d3d5a917926aadfcc57f62b5e924f34c Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 13:33:48 -0500 Subject: [PATCH 2/6] Add aer density matrix release note --- .../0.12/add-aer-density-matrix-e2439120b24c91c9.yaml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml diff --git a/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml b/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml new file mode 100644 index 0000000000..2d06f4cea4 --- /dev/null +++ b/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Added a new class, :class:`~.AerDensityMatrix`, to the :mod:`qiskit_aer.quantum_info` + module. This class is used to provide the same interface to the + upstream :class:`~.DensityMatrix` class in Qiskit but backed by + Qiskit Aer's simulation. From 1f1367ee0a534d9a18a75a80f07bea68e8cf0e55 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 13:43:12 -0500 Subject: [PATCH 3/6] Apply suggestions from code review Co-authored-by: Jake Lishman --- .../notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml | 2 +- .../notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml | 2 +- releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml | 4 ++-- .../notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml b/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml index dd81f999f5..66becd045e 100644 --- a/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml +++ b/releasenotes/notes/0.12/fix-ndarray-contiguity-e903d0fda4744100.yaml @@ -2,7 +2,7 @@ fixes: - | Fixed an issue when creating a new :class:`~.AerStatevector` instance - from an ``numpy.ndarray`` that had non-contiguous memory. Previously, + from a ``numpy.ndarray`` that had non-contiguous memory. Previously, this would result in unexpected behavior (and a potential error) as the :class:`~.AerStatevector` assumed the input array was contiguous. This has been fixed so that memory layout is checked and the ``numpy.ndarray`` diff --git a/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml b/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml index 410e3564f0..7762a5c64c 100644 --- a/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml +++ b/releasenotes/notes/0.12/mps_fix_apply_measure-84c29a728ae0e717.yaml @@ -3,7 +3,7 @@ fixes: - | Fixed an issue in the matrix product state simulation method (i.e. - setting the keyword argument ``method="matrix_product_state" when + setting the keyword argument ``method="matrix_product_state"`` when initializing an :class:`~.AerSimulator` object) where the simulator would incorrectly sort the qubits prior to performing measurment potentially resulting in an infinite loop. This has been fixed so diff --git a/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml b/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml index 6cc12644ae..90adb0546b 100644 --- a/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml +++ b/releasenotes/notes/0.12/own_assembler-0c76e67a054bd12c.yaml @@ -16,11 +16,11 @@ features: not see this performance improvement. - | Added a new method to the :class:`~.AerJob`, :meth:`~.AerJob.circuits`, which - returns a list of :class:`~qiskit.circuit.QuantumCircuit` This method returns + returns a list of :class:`~qiskit.circuit.QuantumCircuit` objects. This method returns ``None`` if Qobj is used for simulation. deprecations: - | - The :meth:`~.AerJob,qobj` method of the :class:`AerJob` class is + The :meth:`~.AerJob.qobj` method of the :class:`AerJob` class is now deprecated and will be removed in a future release. The use of the qobj format as input to :meth:`~.AerSimulator.run` has been deprecated since qiskit-aer 0.9.0 and in most cases this method diff --git a/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml index 7567321028..01f8dc9796 100644 --- a/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml +++ b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml @@ -5,13 +5,13 @@ features: APIs of cuQuantum SDK. This provides a GPU accelerated general tensor network simulator that can simulate any quantum circuit, by internally translating the circuit into a tensor network to perform the simulation. - To use this simulation method, set ``method=tensor_network`` and - ``device=GPU`` when initializing an :class:`~.AerSimulator` object. + To use this simulation method, set ``method="tensor_network"`` and + ``device="GPU"`` when initializing an :class:`~.AerSimulator` object. For example:: from qiskit_aer import AerSimulator - tensor_net_sim = AerSimulator(method=tensor_network, device=GPU) + tensor_net_sim = AerSimulator(method="tensor_network", device="GPU") This method supports both statevector and density matrix simulations. Noise simulation can also be done with a density matrix single shot From 7167885c5c20b1f4dc22f1ead1c23b8b25aed87d Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 13:43:23 -0500 Subject: [PATCH 4/6] Update releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml Co-authored-by: Jake Lishman --- .../add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml index cd183a498d..21ebedf34c 100644 --- a/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml +++ b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml @@ -6,5 +6,5 @@ features: from a :class:`~.BackendProperties` object. Similar functionality used to be present in the :meth:`.NoiseModel.from_backend` constructor, however it was removed since a :class:`~.BackendProperties` object alone - doesn't contain sufficient information create a :class:`~.NoiseModel` + doesn't contain sufficient information to create a :class:`~.NoiseModel` object. From 21bd1ef8354f34ede0073cc4dc98778ef78773cb Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 13:48:47 -0500 Subject: [PATCH 5/6] Update releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml --- .../notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml index 01f8dc9796..5f84d655f0 100644 --- a/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml +++ b/releasenotes/notes/0.12/tensor_network_gpu-e8eb3e40be3c35f7.yaml @@ -15,7 +15,7 @@ features: This method supports both statevector and density matrix simulations. Noise simulation can also be done with a density matrix single shot - simulation ith density matrix are is not :class:`~.SaveStatevector` operations + simulation if there are not any :class:`~.SaveStatevector` operations in the circuit. This new simulation method also supports parallelization with multiple GPUs and From b6f8e606bd36bbe66cda1246f748515a6a203c3d Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 9 Mar 2023 13:59:23 -0500 Subject: [PATCH 6/6] Use full path for intersphinx refs --- ...dd-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml | 4 ++-- .../notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml index 21ebedf34c..b3ffaa7863 100644 --- a/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml +++ b/releasenotes/notes/0.12/add-NoiseModel-from_backendproperties-1a3d6d976133a661.yaml @@ -3,8 +3,8 @@ features: - | Added a new class method :meth:`~.NoiseModel.from_backend_properties` to the :class:`NoiseModel`. This enables constructing a new :class:`~.NoiseModel` - from a :class:`~.BackendProperties` object. Similar functionality used + from a :class:`~qiskit.providers.BackendProperties` object. Similar functionality used to be present in the :meth:`.NoiseModel.from_backend` constructor, - however it was removed since a :class:`~.BackendProperties` object alone + however it was removed since a :class:`~qiskit.providers.BackendProperties` object alone doesn't contain sufficient information to create a :class:`~.NoiseModel` object. diff --git a/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml b/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml index 2d06f4cea4..6bb8fba7ea 100644 --- a/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml +++ b/releasenotes/notes/0.12/add-aer-density-matrix-e2439120b24c91c9.yaml @@ -3,5 +3,5 @@ features: - | Added a new class, :class:`~.AerDensityMatrix`, to the :mod:`qiskit_aer.quantum_info` module. This class is used to provide the same interface to the - upstream :class:`~.DensityMatrix` class in Qiskit but backed by + upstream :class:`~qiskit.quantum_info.DensityMatrix` class in Qiskit but backed by Qiskit Aer's simulation.