Running large LLMs on small hardware: Gemma 4 12B on a VRAM-constrained Radeon laptop

Google released Gemma 4 12B today. I'm a huge fan of the Gemma model family, they have improved with each iteration and consistently perform on par with larger models. It didn't run at first because it needs more VRAM that my laptop has, but there's a workaround. Here's a short instruction for how to run … Continue reading Running large LLMs on small hardware: Gemma 4 12B on a VRAM-constrained Radeon laptop →

OPAW: Independent Component Analysis

Independent Component Analysis (ICA) fascinates me [DEMO]. It's a neat method for isolating signals from a signal mix, as long as multiple recordings of the signal mix from different perspectives are available. An application would be isolating speakers in a conference room with many people talking (over each other), while a set of different microphones … Continue reading OPAW: Independent Component Analysis →

OPAW: Optimal Bounds for Open Addressing Without Reordering

This paper by Martin Farach-Colton, Andrew Krapivin and William Kuszmaul shook the computer science interwebs last year as it proposed a much faster implementation for hash maps. An important disclaimer: unless you are way more bewandered in data structures than me, you're forgiven to believe that this paper revolutionises mainstream hash map implementations like the … Continue reading OPAW: Optimal Bounds for Open Addressing Without Reordering →

OPAW: An observer-based approach to the sorites paradox and the logic derived from that

The sorites paradox asks: at what point does a heap stop being a heap? The compact version: let's take a large heap, remove one grain, then it surely is still a heap. Rinse and repeat. What is the grain count threshold after which a heap isn't a heap any more? It's one of those logic … Continue reading OPAW: An observer-based approach to the sorites paradox and the logic derived from that →