5 Comments
User's avatar
Theodore Omtzigt's avatar

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.

Prof. Tom Yeh's avatar

Love to see your work 😊

Theodore Omtzigt's avatar

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.

Kishore's avatar

Professor Tom, I came up with something similar many years ago :)

https://kishorepv.github.io/Matrix-Multiplication/

Prof. Tom Yeh's avatar

You are 10 years ahead of me. =)