OpenCL™ Mandelbrot Fractal Algorithm

Recommended for:

  • Device: Unknown

  • Quartus®: v17.1



This example provides a kernel that implements the Mandelbrot fractal algorithm as well as a host application that displays the results to the screen. The host application is interactive and allows you to move and zoom around the region.

This example also enables increased performance by supporting execution on multiple Open Computing Language (OpenCLTM) devices. In this example, the problem is divided across multiple devices by partitioning the rows to be rendered.


  • Multiple device partitioning
  • Visual and interactive host application


The design example provides source code for the OpenCL device (.cl) as well as the host application. For compiling the host application, the Linux* package includes a Makefile and the Windows package includes a Microsoft Visual Studio 2010 project.

The following downloads are provided for this example:

The use of this design is governed by, and subject to, the terms and conditions of the hardware reference design license agreement.

Software and Hardware Requirements

This design example requires the following tools:

  • Intel® FPGA Software v17.1 or later
  • Intel FPGA SDK for OpenCL™ v17.1 or later
  • On Linux: GNU Make and gcc
  • On Windows: Microsoft Visual Studio 2010

To download the Intel design tools, visit the OpenCL download page. The requirements for the underlying operating system are the same as those of the Intel FPGA SDK for OpenCL.

Mandelbrot Display

Figure 1. Design Display at the Starting Point

OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

* Product is based on a published Khronos Specification, and has passed the Khronos Conformance Testing Process. Current conformance status can be found at