Skip to content
Tech News
← Back to articles

Show HN: I ran a language model on a PS2

read original get PlayStation 2 Emulator Software → more articles
Why This Matters

This project demonstrates the remarkable possibility of running sophisticated language models on a 26-year-old PlayStation 2, showcasing innovative streaming techniques that overcome hardware limitations. It highlights how retro hardware can be repurposed for modern AI applications, inspiring new avenues for cost-effective and accessible AI deployment. For consumers and developers alike, this blurs the line between vintage gaming consoles and cutting-edge AI technology, fostering creativity and resourcefulness in the tech industry.

Key Takeaways

PS2 LLM Demo

Running a large language model on a PlayStation 2.

This project started as an experiment born from two passions: retrogaming and LLMs. Having built a complete PS2 SDK from scratch (including tools that had to be rewritten due to incompatibilities with modern software and hardware), and having extensive experience working with language models, the question after seeing a team run an LLM on a Windows 98 PC was simple: "Can I run this on a 26-year-old game console?"

The answer is yes. The PS2's Emotion Engine (MIPS-III @ 294 MHz, 32 MB RAM) can run transformer inference by streaming model weights from CD-ROM one matrix at a time, keeping only activations and KV cache in memory. The current default model is brandon-tiny-10m-instruct, a custom 10M-parameter architecture running at Q8 precision.

Website: naranjositos.tech

How It Works

The PS2 has 32 MB of RAM total. Model weights don't need to fit in memory -- the inference engine streams them from CD-ROM one matrix at a time during the forward pass. Only activations, KV cache, token embeddings, and RMS norms stay in RAM.

This means models much larger than 32 MB can run on the console. A 77 MB model works -- it just reads more from CD. See MODELS.md for details on all models tested.

Models

Several models were tested during development. The current default is brandon-tiny-10m (Q8, ~10.4 MB), chosen for its balance of speed and coherence on PS2 hardware.

... continue reading