2 ms·
"High-performance, Reliable, and Parallel APL" -github because i had no clue what co-dfns is
by systems 2y ago
"High-performance, Reliable, and Parallel APL" -github
because i had no clue what co-dfns is
- tokyovigilante 2y agoStill not further enlightened.
- rscho 2y agoIt's a compiler for the APL language, that generates GPU code. What's interesting about it is that it's also hosted on the GPU, and it also has a very original architecture representing trees as arrays of pointers.
- jiggawatts 2y agoThis is a very valuable contribution to computer science that has been overlooked because of how obscure the implementation language is. The idea of that flattening a tree into an array with relative indexing to represent the structure opens up a whole bag of performance tools. Parallel processing is just one (major!) aspect. It also enables GPU processing and unlocks SIMD instructions. Not to mention that instead of millions of tiny inefficient mallocs, this can use large contiguous arrays. An itch I’ve been meaning to scratch is implementing something like Equality Saturation on top of this data structure in the style of EGG (e-graphs good). Combine that with the Category Theory work done recently in the Haskell world for arbitrary structure to structure functional maps and you could make a compiler that takes a bunch of term rewrite rules and spits out parallel GPU code that can apply optimisation rewrites at enormous speed. “The best thing about the computer revolution is that it hasn’t happened yet.”