February 26, 2020
A Taste of GPU Compute
The GPU in a modern computer (desktop or mobile) has about an order of magnitude more raw general purpose computing throughput than the CPU, but is barely used except for games, machine learning, and cryptocurrency mining, largely because it’s hard to program. Getting good performance entails massive parallelism (thousands of threads) and careful attention to an explicit memory hierarchy. While GPU compute programming may seem to many like a black art, techniques from functional programming, including immutable data structures and an emphasis on associative operations (monoids) adapt very well to this space. This talk will present techniques used in piet-metal, a new 2D graphics rendering engine optimized for the modern GPU compute, and hopefully will serve as an invitation for the curious to explore this strange but powerful computing environment.
Raph Levien is currently an independent researcher exploring 2D graphics, font technology, and GUI, doing most of his work in Rust. Previously he was at Google for 11 years, including on the Android UI toolkit team, mostly working on fonts and text, and before that was the maintainer of Ghostscript. He has a PhD in Computer Science from UC Berkeley, on the topic of curve design tools.