Skip to content

qiu_qiskit_aer_encore.simulator

Aer simulators configured for the available hardware.

Classes:

  • AerDevice –

    The devices an Aer simulator can run on.

Functions:

Attributes:

GPU_OPTIONS module-attribute

GPU_OPTIONS: dict[str, Any] = {'cuStateVec_enable': True, 'blocking_enable': True, 'batched_shots_gpu': True}

The default options of simulators on GPUs, overridable per simulator.

AerDevice

Bases: ExtendedEnum

The devices an Aer simulator can run on.

  • AUTO: a GPU if one is available, and the CPU otherwise.
  • CPU: the CPU, which is always available.
  • GPU: a GPU, raising an error if none is available.

Attributes:

AUTO class-attribute instance-attribute

AUTO = 'auto'

CPU class-attribute instance-attribute

CPU = 'cpu'

GPU class-attribute instance-attribute

GPU = 'gpu'

available_aer_devices cached

available_aer_devices() -> tuple[str, ...]

Return the devices Aer can simulate on, e.g. ("CPU", "GPU").

The devices are detected once and cached.

Source code in packages/qiu-qiskit-aer-encore/src/qiu_qiskit_aer_encore/simulator.py
33
34
35
36
37
38
39
@cache
def available_aer_devices() -> tuple[str, ...]:
    """Return the devices Aer can simulate on, e.g. `("CPU", "GPU")`.

    The devices are detected once and cached.
    """
    return tuple(AerSimulator().available_devices() or ())

aer_simulator

aer_simulator(device: AerDevice | str = AUTO, **options: Any) -> AerSimulator

Return an Aer simulator on the requested device.

Parameters:

  • device (AerDevice | str, default: AUTO ) –

    The device to simulate on, see AerDevice.

  • **options (Any, default: {} ) –

    Options of the AerSimulator, e.g. method="statevector". On GPUs, they override the defaults of GPU_OPTIONS.

Returns:

  • AerSimulator –

    The configured simulator.

Raises:

  • AerError –

    If a GPU is requested, but none is available.

Source code in packages/qiu-qiskit-aer-encore/src/qiu_qiskit_aer_encore/simulator.py
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
def aer_simulator(
    device: AerDevice | str = AerDevice.AUTO, **options: Any
) -> AerSimulator:
    """Return an Aer simulator on the requested device.

    Args:
        device: The device to simulate on, see `AerDevice`.
        **options: Options of the `AerSimulator`, e.g. `method="statevector"`. On
            GPUs, they override the defaults of `GPU_OPTIONS`.

    Returns:
        The configured simulator.

    Raises:
        AerError: If a GPU is requested, but none is available.
    """
    device = AerDevice(device)
    gpu_available = "GPU" in available_aer_devices()

    if device == AerDevice.GPU and not gpu_available:
        raise AerError("A GPU simulator was requested, but no GPU is available.")

    if device == AerDevice.GPU or (device == AerDevice.AUTO and gpu_available):
        return AerSimulator(device="GPU", **{**GPU_OPTIONS, **options})
    return AerSimulator(device="CPU", **options)