wikillm

Concept · 1 paper · updated 2026-11-07

Model partitioning

Splitting one neural network across several devices so that no device has to hold a whole layer. The core idea is to give each worker a share of a layer's output positions or neurons, sized by its capability, and to route activations between workers. The trade-off: communication grows with the number of workers, and the one source here reports total latency rising as boards are added.

inferencemicrocontrollertinymldistributed-inferencememorylatency

Markdown4 min read

AI-compiled overview, updated 2026-11-07, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.

Overview

Model partitioning means running one trained network on several devices at once, with each device holding only part of the weights and computing only part of the outputs. The reason to do it is memory. A single device may have enough flash for the weights but not enough working RAM for the intermediate activations of one layer 2605.09357 §1. Cutting between layers does not help when one layer alone is larger than a device's RAM 2605.09357 §1, Challenge 1.

The one source in this set cuts finer than a layer. It splits each convolution by output position and each linear layer by output column 2605.09357 §4.2. Workers receive their weight fragments once at deployment. A coordinator then sends each worker the inputs it needs for every layer and collects the partial outputs [arxiv:2605.09357 §3, §4.4]. No worker holds the full activations or weights of a layer 2605.09357 §4.4.

The cost is communication. Every intermediate result passes through the coordinator, so each activation crosses the network at least twice 2605.09357 §6.2. On the testbed, computation time fell from 15.37 s on three boards to 7.07 s on eight, while communication time rose from 27.60 s to 49.82 s 2605.09357 §7.2.3.

Variants

Rating-weighted split across microcontrollers

Each worker gets a share of every layer that is proportional to a capability rating. The rating combines clock frequency, per-kilobyte communication delay, bandwidth and a communication coefficient 2605.09357 §5.1, eq. 5. Convolution output positions are cut into contiguous runs, and linear-layer columns into contiguous runs, one run per worker 2605.09357 §4.2, alg. 1, alg. 2. Weight fragments are sized the same way, with an overflow rule for workers whose storage is too small 2605.09357 §5.3, eq. 6–7. Activations are routed between consecutive layers by a map that records which inputs each worker needs 2605.09357 §4.3, alg. 3. The paper deploys this on eight Teensy 4.1 boards, each with a 600 MHz Cortex-M7 [arxiv:2605.09357 §6.1]. Card: Split CNN Inference on Networked Microcontrollers.

Other partitioning schemes named in the paper for GPUs and phones assume each worker can hold its sub-matrix or all channels of a feature map 2605.09357 §2. This variant is aimed at the case where it cannot. The paper gives no number for a single board, since one board cannot hold the model 2605.09357 §7.1, §7.2.1.

Even split as a baseline

The same paper uses an even split, where every worker gets the same share regardless of speed, and a frequency-only split as baselines 2605.09357 §7.2.1. These are the simplest versions of the variant above, and the paper's comparison in tab. 2 is the reference for how much the rating adds 2605.09357 tab. 2.

When to use which

SituationUseWhy
One layer's peak RAM exceeds a device's budgetSplit within layers, as in the paperLayer-boundary cuts cannot fix a single oversized layer 2605.09357 §1
All boards have the same clock and linkEven split may be enoughWith equal boards and no delay, even and optimized both took 9.80 s in case 1 2605.09357 tab. 2
Boards differ in clock speedRating-weighted split, then measureOptimized was fastest or tied for fastest in 7 of 8 cases; the exception is case 2, where frequency-only was faster 2605.09357 tab. 2
Links have different delaysRating-weighted split, then measureIn the four cases with injected delays, optimized was fastest 2605.09357 tab. 2
Many workers on a slow networkFewer workers with enough RAMTotal latency rose from 42.97 s on 3 boards to 56.89 s on 8 2605.09357 §7.2.3. The paper does not test a fewer-workers setting as advice
Accuracy must be guaranteedMeasure on your own modelThe paper reports no accuracy number for the split, quantised model 2605.09357 §9

This set has one paper, so only the rating-weighted variant is covered. The comparison with an even split rests on that paper's numbers alone. A reader should not expect the same gains on other boards or links.

Implementation sketch

The common core is to assign each worker a contiguous run of output positions, sized by its rating 2605.09357 alg. 1. The linear case is the same with columns in place of positions 2605.09357 alg. 2.

Pseudocode
# Assign output positions of a conv layer to workers  [alg. 1]
# Input: output shape (c, h, w), ratings R, number of workers N
def split_conv(c, h, w, ratings, n_workers):
    start = 0
    for r in range(n_workers):
        # Quota of positions for worker r, proportional to its rating
        quota = ratings[r] / sum(ratings) * c * h * w
        i = start
        while i - start < quota:
            # Output channel that position i belongs to
            kernel = i // (h * w)
            if kernel not yet on worker r:
                send kernel weights to worker r
            else:
                increment usage count of kernel on worker r
            i = i + 1
        start = i

Notes on where the variant differs from the core:

Contradictions

  • RAM budget of one board. The paper gives the Teensy 4.1 as having 1 MB of on-chip RAM 2605.09357 §6.1. Its evaluation calls 512 KB the typical single-MCU RAM 2605.09357 §7.2.1. The text does not say which budget the per-layer RAM check uses.
  • Optimized versus frequency-only. In case 2 the frequency-only split is faster (12.40 s) than the rating-weighted one (12.52 s), while in case 5 the frequency-only split is slower than an even split 2605.09357 tab. 2. The paper's text presents the rating as the better method, so these rows show it is not better in every case.
  • Rating formula in the released code. The paper's rating does not appear in the released source. The simulation gives every worker an equal portion 2605.09357 §5.2, code: pc_code/Simulation/src/main.rs#L20. Table 2's "Optimized" column therefore cannot be checked from the code alone.
  • Input size. The paper evaluates 112 × 112 × 3 inputs 2605.09357 §7.1. The released code crops to 224 × 224 util.rs.

Papers

Source and license

Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.