Skip to content

Conversation

@auphelia
Copy link
Collaborator

@auphelia auphelia commented Nov 25, 2025

Multilayer Offload (MLO) allows significantly larger neural networks (with repetitive blocks) to be deployed on FPGAs using FINN.

Instead of mapping every layer of a model onto hardware, MLO implements just one representative block of the repetitive structure in the network (for example, a single transformer encoder layer) and repeatedly reuses it. The weights for each iteration are streamed in from external memory such as DRAM or HBM, enabling models far larger than what could fit fully on-chip.

Importantly, the repeated block does not need to cover the entire network. Many architectures contain head and tail portions around a large repeated middle section. MLO can be applied selectively: fixed, non‑repetitive layers can be implemented as standalone hardware layers, while the repetitive core (e.g., the main stack of transformer layers) is handled by the MLO mechanism.

FINN continues to stream both the activations and the weight tensors as needed. The MLO control logic, which resides in the FPGA fabric next to the accelerator, operates fully automatically: it monitors the flowing data, manages iteration indices, selects the correct weight set, and loops outputs back into the computation when required. This removes the need for any manual scheduling or user‑driven orchestration of layer execution. The hardware autonomously steps through each repeated layer based purely on the data and iteration control embedded in the design.

The result is a practical trade‑off: slightly reduced throughput in exchange for the ability to deploy much larger models.

Joshua Monson and others added 30 commits June 23, 2025 23:44
Add loop_control and loop_control_wrapper
…ased on a lambda filter, updated the loop test to reflect the changes
Extended adjacency_list utility function to accept a lambda for filtering decisions.
@auphelia auphelia requested a review from preusser November 25, 2025 15:57
@auphelia auphelia marked this pull request as ready for review November 25, 2025 15:58
Copy link
Collaborator

@preusser preusser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good functionally.
Please, fix licenses and clean up module interfaces though.

@auphelia auphelia requested a review from preusser January 12, 2026 18:26
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.

5 participants