- Initial load
- The kernel's first read of the shared buffer blocks until the PS writes initial
data via
g.update(). After the Mem Tile write completes and the L1 DMA transfers the data into the L1 cache, the kernel unblocks and execution proceeds.
Figure 1. Read-Only Timeline with Runtime Updates - Timeline
- Runtime updates
- The timing of
g.update()relative to the L1 DMA fetch cycle determines when the kernel observes new data. If the update completes before the next L1 fetch, the kernel uses the new data on that iteration. If the L1 DMA already has data for the current iteration, the new data takes effect on the following iteration.
Figure 2. PS Update Timing Determines Data Freshness