I have been working on visualizations of the tiling, bufferization, and schedules of compute graphs, and the tiled matmul is quite beautiful. Unfortunately, that is a 3D and 4D space, so needed some game programming to get done.
Free schedules tend to consume too many memory resources, so you are looking for Just In Time schedules, and there is a set of linear and piece-wise linear schedules that can be derived by looking at the Read dependencies of the system of equations: https://stillwater-sc.github.io/domain-flow/ch1/linearschedule/index.html
These are all interactive 3D graphics, so you can manipulate the view to gain a better understanding of the data flow.
Tiling and bufferization are compiler transformations that start to marry algorithm and hw resources, and I am still looking for good viz patterns to convey the dynamics.
Lovely visualization of the mathematics.
I have been working on visualizations of the tiling, bufferization, and schedules of compute graphs, and the tiled matmul is quite beautiful. Unfortunately, that is a 3D and 4D space, so needed some game programming to get done.
Love to see your work 😊
Sorry for the delay: here are a couple of resources:
The whole mathematics behind it was developed in the 80's as part of the systolic array synthesis: https://stillwater-sc.github.io/domain-flow/
Here is the free schedule of a matmul: https://stillwater-sc.github.io/domain-flow/ch1/freeschedule/index.html
Free schedules tend to consume too many memory resources, so you are looking for Just In Time schedules, and there is a set of linear and piece-wise linear schedules that can be derived by looking at the Read dependencies of the system of equations: https://stillwater-sc.github.io/domain-flow/ch1/linearschedule/index.html
These are all interactive 3D graphics, so you can manipulate the view to gain a better understanding of the data flow.
Tiling and bufferization are compiler transformations that start to marry algorithm and hw resources, and I am still looking for good viz patterns to convey the dynamics.
Any ideas would be appreciated.
Professor Tom, I came up with something similar many years ago :)
https://kishorepv.github.io/Matrix-Multiplication/
You are 10 years ahead of me. =)