Interactive Mandelbrot Set Viewer Runs on FPGAs

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]

22 thoughts on “Interactive Mandelbrot Set Viewer Runs on FPGAs

    1. A quick look around turns up a 41ms to calculate a 2k*2k Mandelbrot on a GTX285 (from a test in 2010).
      That would be around 19ms for a similarly-sized image, so a GTX285 wouldn’t be able to keep up with 60 FPS.
      By 3D performance alone, a GTX1080 should be around 10X faster than a GTX285, so I’d say any recent GPU could easily outperform this FPGA.

      1. True, but for any level of detail in a Mandelbrot you need double precision math.

        An ordinary GPU shader won’t be good enough, it will rapidly lose detail as you zoom in.

        1. Any GPU manufactured in the last few years can handle double-precision in shaders normally, at not too bad a performance hit. And you can always use multiple of them and be clever to get whatever precision you need, at a higher performance hit.

  1. This looks so much better than bitcoins :)

    Makes me wonder if there are any ASICS for speeding up complex multiplications. Would be helpful for signal processing too.

    1. Indeed. I was happy with xaos 10 years ago, perhaps not 60fps but still fast enough for realtime zooming.
      BTW I also remember waiting 12 hours for single 160×200 multicolor frame on my C64 (coded in SImons’ Basic)

  2. Yeh, right. So many microcontrollers are being pulled from the market and replaced by more expensive FPGAs that can’t be programmed by DIYers aren’t they?
    I think you need to get a grip on reality and take a look at what’s on the market. FPGAs let you do things that are difficult or impossible with a microcontroller, but they don’t replace them for general use.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.