Gluing 8192 MCUs Together To Make A GPU

What do you get when you take 8,192 CH570 MCUs, put them on custom PCBs, and write firmware for this interconnected gaggle of cores? In the case of [bitluni]’s project, you get something that’s decidedly cluster-shaped.

These cheap MCUs feature a QingKe 32-bit RISC-V core that’s clocked at a maximum of 100 MHz, with an RV32IMBC instruction set. This means that they support integers, integer multiplication and division, bit manipulation, and compressed instructions, but no atomic, vector, or floating-point instructions.

The basic concept was to use a single MCU per pixel, but once you start scaling up a measly 10 mA and ~$0.10 per MCU to literally tens of thousands of them, you’re suddenly talking about thousands of dollars in hardware as well as a cool 655.36A at 3.3V – or 2 kW –  for something close to QVGA resolution at 320×200. Clearly this would be a rather crazy project to implement, which is why each MCU also got its own RGB LED to immediately create the pixel.

Continue reading “Gluing 8192 MCUs Together To Make A GPU”