Stream-Based Kernels - Stream-Based Kernels - 2026.1 English - UG1864

Vitis Functional Simulation User Guide (UG1864)

Document_ID
UG1864
Release_Date
2026-06-23
Version
2026.1 English

Stream-based AIE kernels process data incrementally using readincr and writeincr.

Partial data (fewer samples than the kernel loop):

  • Input: 4 samples (kernel loops 8 times)
  • Output: 4 samples
  • Behavior: the kernel processes the available data and produces partial output immediately.
output = myGraph.run(va.array([1, 2, 3, 4], dtype=va.int32))
# output: [2, 4, 6, 8]

Exact data (matches the loop count):

  • Input: 8 samples → output: 8 samples. One full processing cycle.

Oversized data (multiple of the loop count):

  • Input: 16 samples → output: 16 samples. The kernel loop runs twice automatically.
output = myGraph.run(va.array(list(range(1, 17)), dtype=va.int32))
# output: [2, 4, 6, ..., 32]

Characteristics: - Incremental processing - Immediate output for partial data - Suitable for streaming applications and pipelined dataflow - Lower latency for partial results