3 ms·
This looks pretty amazing. It seems like it's basically a library for program transformation - more or less two kinds of transformation, parallelization/vector
by joe_the_user 7y ago
This looks pretty amazing.
It seems like it's basically a library for program transformation - more or less two kinds of transformation, parallelization/vectorization and automatic differentiation.
The question I would have is; suppose you have some large program which gets transformed into a system that pipes vectors from location to location, doing operations, how do you deal with issues of data/memory divergence [1]. Basically, how to do you tune the system the data you are using stays in the cache - without consider cache, many advantages of a GPU can be lost. These messy issues tend appear whenever one engages in code generation. Purely piece vectorizations don't have the problem but anything where you're partially reducing and such could have the problem.
[1] (Best quick reference I could Google up quickly on what data divergence is) https://etd.auburn.edu/handle/10415/4688 https://etd.auburn.edu/handle/10415/4688