DYNAMICALLY POOLED ALLOCATIONS OF MEMORY BUFFERS ON SPATIAL COMPUTE ARCHITECTURES
DYNAMICALLY POOLED ALLOCATIONS OF MEMORY BUFFERS ON SPATIAL COMPUTE ARCHITECTURES
Dynamically pooled allocation of memory buffer on spatial compute architectures, including analyzing, at compile-time, access patterns (e.g., cyclo-static execution/firing rules) of consumer and/or producer processes that have shared access to local memory of one or more compute tiles, and identifying situations in which multiple buffers can be replaced with a pooled buffer having a memory footprint that is less than a sum of the memory footprints of the multiple buffers. A compiler may identify instances of mutual exclusiveness in the execution patterns of the processes, differences in execution times between compute kernels of the processes, and/or variations in execution times of the kernels. The compiler may generate controller code and/or configuration parameters to enforce memory allocation/mapping at application run-time.