aihwkit.simulator.configs.configs module

Configurations for resistive processing units.

class aihwkit.simulator.configs.configs.DigitalRankUpdateRPUConfig(device=<factory>, forward=<factory>, backward=<factory>, update=<factory>)

Bases: aihwkit.simulator.configs.helpers._PrintableMixin

Configuration for an analog (unit cell) resistive processing unit where the rank update is done in digital.

Note that for forward and backward, an analog crossbar is still used, and during update the digitally computed rank update is transferred to the analog crossbar using pulses.

as_bindings()

Return a representation of this instance as a simulator bindings object.

Return type

aihwkit.simulator.rpu_base.devices.AnalogTileParameter

backward: IOParameters

Input-output parameter setting for the backward direction.

device: DigitalRankUpdateCell

Parameters that modify the behavior of the pulsed device.

forward: IOParameters

Input-output parameter setting for the forward direction.

update: UpdateParameters

Parameter for the analog part of the update, that is the transfer from the digital buffer to the devices.

class aihwkit.simulator.configs.configs.FloatingPointRPUConfig(device=<factory>)

Bases: aihwkit.simulator.configs.helpers._PrintableMixin

Configuration for a floating point resistive processing unit.

device: FloatingPointDevice

Parameters that modify the behavior of the pulsed device.

class aihwkit.simulator.configs.configs.InferenceRPUConfig(forward=<factory>, noise_model=<factory>, drift_compensation=<factory>, clip=<factory>, modifier=<factory>)

Bases: aihwkit.simulator.configs.helpers._PrintableMixin

Configuration for an analog tile that is used only for inference.

Training is done in hardware-aware manner, thus using only the non-idealities of the forward-pass, but backward and update passes are ideal.

During inference, statistical models of programming, drift and read noise can be used.

as_bindings()

Return a representation of this instance as a simulator bindings object.

Return type

aihwkit.simulator.rpu_base.devices.AnalogTileParameter

backward: IOParameters

perfect.

Type

Input-output parameter setting for the backward direction

clip: WeightClipParameter

Parameters for weight clip.

device: IdealDevice

ideal device.

Type

Parameters that modify the behavior of the pulsed device

drift_compensation: BaseDriftCompensation

For compensating the drift during inference only.

forward: IOParameters

Input-output parameter setting for the forward direction.

modifier: WeightModifierParameter

Parameters for weight modifier.

noise_model: BaseNoiseModel

Statistical noise model to be used during (realistic) inference.

update: UpdateParameters

NONE pulse type.

Type

Parameter for the update behavior

class aihwkit.simulator.configs.configs.SingleRPUConfig(device=<factory>, forward=<factory>, backward=<factory>, update=<factory>)

Bases: aihwkit.simulator.configs.helpers._PrintableMixin

Configuration for an analog (pulsed device) resistive processing unit.

as_bindings()

Return a representation of this instance as a simulator bindings object.

Return type

aihwkit.simulator.rpu_base.devices.AnalogTileParameter

backward: IOParameters

Input-output parameter setting for the backward direction.

device: PulsedDevice

Parameters that modify the behavior of the pulsed device.

forward: IOParameters

Input-output parameter setting for the forward direction.

update: UpdateParameters

Parameter for the update behavior.

class aihwkit.simulator.configs.configs.UnitCellRPUConfig(device=<factory>, forward=<factory>, backward=<factory>, update=<factory>)

Bases: aihwkit.simulator.configs.helpers._PrintableMixin

Configuration for an analog (unit cell) resistive processing unit.

as_bindings()

Return a representation of this instance as a simulator bindings object.

Return type

aihwkit.simulator.rpu_base.devices.AnalogTileParameter

backward: IOParameters

Input-output parameter setting for the backward direction.

device: UnitCell

Parameters that modify the behavior of the pulsed device.

forward: IOParameters

Input-output parameter setting for the forward direction.

update: UpdateParameters

Parameter for the parallel analog update behavior.