Serenity

About the project

Why Serenity?

Working through GPU questions,
with an image at the end.

I’m building Serenity to explore GPU performance from the rendering side. Moving light gives me a way to investigate techniques that also matter to transformer inference: processing data in small pieces, keeping a small amount of running state, and combining partial results or reusing earlier work.

The scene is deliberately simple: glass, porcelain, and metal marbles on a walnut table, lit by moving fireflies. That leaves the lighting to carry the image, and gives me something visible to inspect as I work on the kernels underneath.

The first milestone

The naive path tracer is built. It gives me the baseline for the work ahead: a scene, a reference image, and measurements of error and time. ReSTIR is in progress on a branch. The aim is a clean frame at the display’s full resolution and 60 frames a second, traced lower and upscaled.

The milestone-one writeup explains what I learned getting the baseline in place.

Why the name

In path tracing, the bright stray pixels in a noisy render are called fireflies. Here they are also, literally, the lights. Serenity is named for the calm, clean frame I’m working toward.

If the name brings to mind a small ship that kept flying, that’s not an accident. It’s why the metal spheres are polished: they had to be shiny.

Part of Plainsight Systems

I’m a systems architect and builder. At Plainsight Systems, I work through questions that interest me by building things I can inspect and measure. Serenity lets me approach the GPU problems I encounter in inference through rendering, where the consequences of a change are visible in the image as well as the frame time.

The Plainsight Systems site brings that work together, with the other projects, research, and writing.