Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inference tile supporting time-dependent IR drop #587

Merged
merged 32 commits into from
Jan 5, 2024

Conversation

maljoras
Copy link
Collaborator

@maljoras maljoras commented Jan 4, 2024

Related issues

Description

Included a new simulator tile called TorchSimulatorTileIRDropT, which simulates a time-dependent IR drop. The IR drop is general enough to apply to multiple AIMC designs.

Time-varying IR drop model (due to varying activations) is included based on circuit designs that have been verified in Cadence. The design works by computing the time-varying Thevenin equivalent circuits for each unit cell. These can then be bunched into time-varying segment equivalent Thevenin equivalent circuits. This represents an approximation to reduce the computational expense. Use of 8 segments is typically sufficient and approximates the solution very well. 512 segments would represent no approximation where each unit cell is treated independently. Lastly, the wire resistance between segments is incorporated and the segment Thevenin equivalent circuits are collapsed into a single time-varying Thevenin equivalent circuit per column (from a hardware standpoint). The Thevenin equivalent circuit can then be used in conjunction with the ADC read voltage to determine the time-varying currents including IR drop. The current is then integrated to achieve a value proportional to the MAC output with IR drop taken into consideration.

Model requires specifying the following parameters:

  • mv_type - specify mode of operation AnalogMVType.ONE_PASS (default), AnalogMVType.SPLIT_MODE, AnalogMVType.BIT_WISE
  • g_converter = SinglePairConductanceConverter - because IR drop is dependent on programming strategy including g_min and g_max values
  • ir_drop_segments = 8 - number of segments per column in which to partition simulation (approximation)
  • ir_drop_time_steps = 128 - time granularity for time-dependent IR-drop simulation
  • ir_drop_rs = 0.15 - series resistance between unit cells due to wires
  • ir_drop_v_read = 0.4005 - ADC read voltage used in conjunction with per-column Thevenin equivalent circuit
  • split_mode_pwm_bit_shift = 3(for AnalogMVType.SPLIT_MODE) - number of bits in remainder (LSB) when partitioning activations into two parts for split mode PWM operation.

BIT_WISE mode also included for the time-varying IR drop, which may be useful for Micron JDA later.

Details

uses a fast(er) C++ implementation in case the aihwkit extension is compiled (needs -DBUILD_EXTENSION=ON flag during compilation).

Kaoutar El Maghraoui and others added 29 commits January 4, 2023 22:39
@maljoras maljoras requested a review from kkvtran January 5, 2024 16:21
@maljoras maljoras merged commit d7e69a0 into IBM:master Jan 5, 2024
2 checks passed
@maljoras maljoras deleted the dt-ir-drop branch January 5, 2024 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants