aihwkit_lightning.simulator.parameters.io module

Forward related parameters for resistive processing units.

class aihwkit_lightning.simulator.parameters.io.IOParameters(inp_res=-1, out_noise=0.0, out_noise_per_channel=False, out_bound=0.0, out_res=-1)[source]

Bases: _PrintableMixin

Parameter that define the analog-matvec (forward / backward) and peripheral digital input-output behavior.

Here one can enable analog-digital conversion, dynamic input scaling, and define the properties of the analog-matvec computations, such as noise and non-idealities (e.g. IR-drop).

Parameters:
  • inp_res (float) –

  • out_noise (float) –

  • out_noise_per_channel (bool) –

  • out_bound (float) –

  • out_res (float) –

inp_res: float = -1

Number of discretization steps for DAC (\(\le0\) means infinite steps) or resolution (1/steps).

out_bound: float = 0.0

Output bound and ranges for analog-to-digital converter (ADC).

out_noise: float = 0.0

Output noise strength at each output of a tile.

This sets the std-deviation of the Gaussian output noise (\(\sigma_\text{out}\)) at each output, i.e. noisiness of device summation at the output.

out_noise_per_channel: bool = False

Output noise strength at each output of a tile.

This sets the std-deviation of the Gaussian output noise (\(\sigma_\text{out}\)) at each output, i.e. noisiness of device summation at the output.

out_res: float = -1

Number of discretization steps for ADC or resolution.

Number of discretization steps for ADC (\(<=0\) means infinite steps). Example: 8 bits is \(1 / (2**8 - 2)\) or \((2**8 - 2)\).