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.2

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.2
File Actions
qiskit_aer_gpu_cu11-0.18.2-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.2-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.2-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.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.2-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.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.2-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.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qiskit_aer_gpu_cu11-0.18.2-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.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Total release size: 90.6 MB

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

Download URL qiskit_aer_gpu_cu11-0.18.2-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
719c0422281d5b93bb68a5e578cb923667c8ee082f95a2d568f84dfd80838156
BLAKE2b-256 checksum
How to use checksums
477c6c8f3a4a94a9280cdc4758e2259ba0f2c1d884a3840593190599456175bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

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

Download URL qiskit_aer_gpu_cu11-0.18.2-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
f0ab7c276c89ef39cd6a0413a9e8f5e57978cc74f4aaae91c243a03985226c08
BLAKE2b-256 checksum
How to use checksums
da41f3a03f8cbbc4584b744633e59a6ed05620df0898950267c349666bf444f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

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

Download URL qiskit_aer_gpu_cu11-0.18.2-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
40bbd70c6e6a3a465409d9ea817499897e6c0aaf829ec835a3457f7df7ac8e6f
BLAKE2b-256 checksum
How to use checksums
efdcdb3f998c4e8cc5df1b57ca681176d1630bdfa50d6a656b3bde520984625a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

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

Download URL qiskit_aer_gpu_cu11-0.18.2-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
58aad3a7dd1d20402ecfc080ecf13a1ec165cbf0fa73bd2ec6311f20cbc73e9a
BLAKE2b-256 checksum
How to use checksums
72ab2c17f248ee5878c956cb1eea03e276b4126a0b1cbf861da8879220462b71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

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

Download URL qiskit_aer_gpu_cu11-0.18.2-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
4d112787efb6a52fbd073c1c7e6a8c101d6a06f2cbe2244ee76b6e2cf86ef320
BLAKE2b-256 checksum
How to use checksums
6b7a9cf2a492676d4be588cfe0d29a29f38881930af8472e27fd26d052970ebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 26, 2026.

Transparency log

Security for qiskit-aer-gpu-cu11 0.18.2

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.2-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 26, 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