The Mandelbrot Set is a mathematical oddity where a simple function creates an infinitely complex landscape that you can literally zoom into forever. Like most people, I’ve downloaded Mandelbrot set viewers and marveled at the infinite whorls and spirals, and then waited while each frame took minutes or hours to render as I zoomed in. [Michael Henning], [Max Rademacher] and [Jonathan Plattner] decided to throw some modern computational muscle at this problem by building an interactive Mandelbrot set viewer using a laptop and two FPGA boards.
The three are students at Cornell, and this was their final project for the Advanced Microcontrollers class. The design is clever: the laptop handles the user interface and renders the final display of the Mandelbrot set. It also sends requests to the FPGA boards that do the number crunching, dividing the required calculations into tiles that are divided between boards. The FPGA boards are TerASIC DE-1 SOC boards that are built around a Cyclone V SOC FPGA chip twinned with 1GB of DDR3 memory. They used two boards, but their modular design means that it would be easy to speed the system up even further by adding additional FPGA boards.
The results are very impressive: the user can zoom in or out and move around in real time, at an impressive resolution of 1600 by 1200 pixels at 60fps. It does slow down when you zoom in, but it’s a remarkable example of how much faster FPGAs can be at this sort of thing than standard CPUs. They have tested it to a maximum depth of 2^260, but their system should be capable of going even further to a remarkable depth of 2^1700. At that depth, the full Mandelbrot set would be nearly as big as the observable universe.
[UPDATE: Corrected to DDR3 memory from DDR5]