lava icon indicating copy to clipboard operation
lava copied to clipboard

Implement unscaled LIF process to enable hardware consistency

Open tim-shea opened this issue 1 year ago • 0 comments

User story

As an application developer, I want to build networks with LIF that behave the same across CPU and Loihi 2 backend, without needing to be re-parameterized. The Loihi 2 process model for LIF currently implements parameter scaling inside the DASM and at the NcProcessModel level, both of which are not very helpful or necessary and can be very confusing to users.

See #579 for background.

Conditions of satisfaction

  • There is a LIF-like process (e.g. could be called UnscaledLIF or LIF2 or something to maintain backwards compatibility) which implements standard leaky integrate-and-fire dynamic and doesn't apply any hardware-specific scaling of parameters.
  • Behavior should be consistent to within a fixed-point approximation across Loihi 2 and CPU backends. Does not need to be compatible with Loihi 2 hard-coded pipeline.

Acceptance tests

  • Create a "NewLIF" process with some parameters (e.g. du=0.5, dv=0.1, vth=1.0), run it with Loihi2SimCfg and Loihi2HwCfg and some random input, show that output (v, spk) is approximately equal.

tim-shea avatar Jan 17 '24 17:01 tim-shea