Ideas

GPU & Computer Architecture

Notes and projects on GPU programming and computer architecture: CUDA kernels, memory hierarchy, warp scheduling and simulation, and building a CPU from logic gates up.

Low-level work, starting from logic gates. The nand2tetris projects build a working computer up from NAND gates and a VM translator. The GPU course goes the other direction into CUDA: tiled kernels, a warp scheduler simulated cycle by cycle, and reading compiled SASS to find branch divergence.

Most of it comes down to the same question: what is the hardware actually doing? The answer usually involves memory hierarchy, scheduling, and divergence.

Thread Retro 4 parts Updated
Green ripples abstract art

GPU Hardware and Software

What I learned in GPU Hardware and Software (CS 8803).

Thread Retro 2 parts Updated
Black-and-white ink illustration showing the progression from logic gates to computer hardware, binary code, and a stack of Tetris blocks, evoking the Nand2Tetris courses path from basic circuits to a working computer.

From Nand to Tetris

Building a modern computer from first principles — a two-part retrospective on the Nand2Tetris course