Skip to main content

Aer - high performance quantum circuit simulation for Qiskit

License Build Tests Qiskit Ecosystem

Aer is a high performance simulator for quantum circuits written in Qiskit, that includes realistic noise models.

❗ Reduced Maintenance Mode
Aer is currently operating under reduced maintenance. The maintainers are only able to address critical bug fixes. Feature requests and non-critical enhancements have been placed in the backlog and will be revisited as capacity allows.

Installation

We encourage installing Aer via the pip tool (a python package manager):

pip install qiskit-aer

Pip will handle all dependencies automatically for us, and you will always install the latest (and well-tested) version.

To install from source, follow the instructions in the contribution guidelines.

Installing GPU support

In order to install and run the GPU supported simulators on Linux, you need CUDA® 11.2 or newer previously installed. CUDA® itself would require a set of specific GPU drivers. Please follow CUDA® installation procedure in the NVIDIA® web.

If you want to install our GPU supported simulators, you have to install this other package:

pip install qiskit-aer-gpu

The package above is for CUDA® 12, so if your system has CUDA® 11 installed, install separate package:

pip install qiskit-aer-gpu-cu11

This will overwrite your current qiskit-aer package installation giving you the same functionality found in the canonical qiskit-aer package, plus the ability to run the GPU supported simulators: statevector, density matrix, and unitary.

Note: This package is only available on x86_64 Linux. For other platforms that have CUDA support, you will have to build from source. You can refer to the contributing guide for instructions on doing this.

Simulating your first Qiskit circuit with Aer

Now that you have Aer installed, you can start simulating quantum circuits using primitives and noise models. Here is a basic example:

$ python
from qiskit import transpile
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit_aer import AerSimulator

sim = AerSimulator()
# --------------------------
# Simulating using estimator
#---------------------------
from qiskit_aer.primitives import EstimatorV2

psi1 = transpile(RealAmplitudes(num_qubits=2, reps=2), sim, optimization_level=0)
psi2 = transpile(RealAmplitudes(num_qubits=2, reps=3), sim, optimization_level=0)

H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 1, 2, 3, 5, 8, 13]
theta3 = [1, 2, 3, 4, 5, 6]

estimator = EstimatorV2()

# calculate [ [<psi1(theta1)|H1|psi1(theta1)>,
#              <psi1(theta3)|H3|psi1(theta3)>],
#             [<psi2(theta2)|H2|psi2(theta2)>] ]
job = estimator.run(
    [
        (psi1, [H1, H3], [theta1, theta3]),
        (psi2, H2, theta2)
    ],
    precision=0.01
)
result = job.result()
print(f"expectation values : psi1 = {result[0].data.evs}, psi2 = {result[1].data.evs}")

# --------------------------
# Simulating using sampler
# --------------------------
from qiskit_aer.primitives import SamplerV2
from qiskit import QuantumCircuit

# create a Bell circuit
bell = QuantumCircuit(2)
bell.h(0)
bell.cx(0, 1)
bell.measure_all()

# create two parameterized circuits
pqc = RealAmplitudes(num_qubits=2, reps=2)
pqc.measure_all()
pqc = transpile(pqc, sim, optimization_level=0)
pqc2 = RealAmplitudes(num_qubits=2, reps=3)
pqc2.measure_all()
pqc2 = transpile(pqc2, sim, optimization_level=0)

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 2, 3, 4, 5, 6, 7]

# initialization of the sampler
sampler = SamplerV2()

# collect 128 shots from the Bell circuit
job = sampler.run([bell], shots=128)
job_result = job.result()
print(f"counts for Bell circuit : {job_result[0].data.meas.get_counts()}")
 
# run a sampler job on the parameterized circuits
job2 = sampler.run([(pqc, theta1), (pqc2, theta2)])
job_result = job2.result()
print(f"counts for parameterized circuit : {job_result[0].data.meas.get_counts()}")

# --------------------------------------------------
# Simulating with noise model from actual hardware
# --------------------------------------------------
from qiskit_ibm_runtime import QiskitRuntimeService
provider = QiskitRuntimeService()
backend = provider.least_busy()

# create sampler from the actual backend
sampler = SamplerV2.from_backend(backend)

# run a sampler job on the parameterized circuits with noise model of the actual hardware
bell_t = transpile(bell, AerSimulator(basis_gates=backend.basis_gates), optimization_level=0)
job3 = sampler.run([bell_t], shots=128)
job_result = job3.result()
print(f"counts for Bell circuit w/noise: {job_result[0].data.meas.get_counts()}")

Contribution Guidelines

If you'd like to contribute to Aer, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs. Please use our slack for discussion and simple questions. To join our Slack community use the link or submit a request to join the Qiskit slack workspace. For questions that are more suited for a forum, we use the Qiskit tag in the Stack Exchange.

Next Steps

Now you're set up and ready to check out some of the other examples from the Aer documentation.

Authors and Citation

Aer is the work of many people who contribute to the project at different levels. If you use Qiskit, please cite as per the included BibTeX file.

License

Apache License 2.0

Metadata

Release files for qiskit-aer-gpu-cu11 0.18.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for qiskit-aer-gpu-cu11 0.18.0
File Actions
qiskit_aer_gpu_cu11-0.18.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details for qiskit_aer_gpu_cu11-0.18.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details for qiskit_aer_gpu_cu11-0.18.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for qiskit_aer_gpu_cu11-0.18.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for qiskit_aer_gpu_cu11-0.18.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for qiskit_aer_gpu_cu11-0.18.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Total release size: 90.5 MB

Release files / qiskit_aer_gpu_cu11-0.18.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qiskit_aer_gpu_cu11-0.18.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 18.1 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
da05496325e38136f35d55b62d1d4ada3ca18b818a9280afa1c458f3d3920b69
BLAKE2b-256 checksum
How to use checksums
cc83f0274e87880c1f12f382dc687f39633c8ea61caf909e94accbecf3698b8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / qiskit_aer_gpu_cu11-0.18.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qiskit_aer_gpu_cu11-0.18.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 18.1 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
4979c5408848510aab98d4dbafb7f88fe269ba36376faa882b1f0c83351a3bab
BLAKE2b-256 checksum
How to use checksums
60241aed041a8f833f22ed2d7c2af9d2f52164f5b9973deba532b8977bdf2b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / qiskit_aer_gpu_cu11-0.18.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qiskit_aer_gpu_cu11-0.18.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 18.1 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f3290ee4b698bb4f8379e831b430ae63791e280467938e2a8dabb308e80db586
BLAKE2b-256 checksum
How to use checksums
42aedb7f0588db3be22989cf7e5b84aa9178a63a12b7bc1268a801c8efbf4dae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / qiskit_aer_gpu_cu11-0.18.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qiskit_aer_gpu_cu11-0.18.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 18.1 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e4137dddbb78999b84a59bce5029cc383b22fcc182a98cd25e64c7236594f78b
BLAKE2b-256 checksum
How to use checksums
1ec3ef964b9c4293aaf8a8c5a8b62947a5067300443e2199c610db2f719bc451
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Release files / qiskit_aer_gpu_cu11-0.18.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qiskit_aer_gpu_cu11-0.18.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 18.1 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
92d6021f65a8a7330be74a1aac02e8e449fd0566bfc6edd426870e4c0aa0cb1e
BLAKE2b-256 checksum
How to use checksums
da2e612e20484b41d8c5918e021cd17bdc804a713816f5fcfe1d2d1202971e34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

Security for qiskit-aer-gpu-cu11 0.18.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 5 files in this release have been uploaded with provenance metadata.

Select from 5 files

Attestation for qiskit_aer_gpu_cu11-0.18.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page