Fractal Architect icon

Fractal Architect OpenCL Accelerated Render

Applies to:
Fractal Architect
Serendipity

What is OpenCL?

OpenCL is an open standard for creating solutions that can run on both CPUs and GPUs. A CPU is the main processor that runs the Mac operating system and virtually all Mac applications.

A GPU is a Graphical Processing Unit, that traditionally handles 2 and 3D graphical display output. A fairly recent innovation is to use a GPU for non-graphical applications as a general compute device. A GPU is optimized for parallel computation. This makes it a good platform for the type of computations that are used by a Flame fractal renderer. On Macbook Pros, the fractal rendering runs about 4 to 5 times faster on the GPU than on the CPU.

OpenCL provides a framework for software so it can be executed on either a CPU or GPU. Many Macs have both a CPU and a separate discrete GPU which can both run OpenCL kernels. Some Macs do not have a separate discrete GPU and can only run OpenCL kernels on the CPU. Intel Sandy Bridge processors have a small embedded GPU, but Intel does not provide OpenCL support for the Sandy Bridge embedded GPU (they do support OpenCL CPU).

OpenCL for CPU is the Default renderer for Fractal Architect

Out-of-the-box Fractal Architect will choose the CPU for OpenCL rendering as that is supported by all Intel Macs. As the graphs below show, if you have a OpenCL supported GPU, then you will want to switch to OpenCL GPU rendering for better rendering performance.

Switching from CPU to GPU OpenCL rendering (and vice versa)

Go to the Fractal Architect -> Preferences menu and open the Preferences dialog. Select the Render Options tag and look for the CPU and GPU radio buttons in a box named: OpenCL Render Device. Click on the GPU radio button.

Note: The very first time you click on the GPU radio button, it may take a while for the radio button selection to change and you may see the cursor change to a swirly Busy cursor for up to a minute. OpenCL has to compile the rendering kernel for your GPU the first time. This also happens with the Quicklook plugin for the Finder, on the very first time you choose to get a Quicklook of a .flame or .flam3 file with the Finder.

Which Macs have a GPU with OpenCL support?

Older Macs often have discrete GPU's that are not supported by OpenCl. The supported GPUs can be found here: Supported GPUs for OpenCL

Why does Fractal Architect not support OpenCL GPU rendering on Snow Leopard?

Basically because the OpenCL runtime compiler on Snow Leopard was unable to compile the rendering kernel code. It treated as erroneous perfectly valid variable declarations. That bug had been reported to Apple back in 2009. The OpenCL runtime compiler for Lion does work just fine however. So it looks like fundamental OpenCL bugs aren't being fixed in Snow Leopard anymore (this could be a bad assumption).

OpenCL CPU based rendering does work fine on Snow Leopard. The OpenCL CPU compiler also had problems with some stuff, but workarounds did exist that did not impose performance penalties.

We plan to revisit the broken GPU support on Snow Leopard in future updates of Fractal Architect.

Performance Benchmarks for Fractal Architect on Selected Macs (Lion)

Shorter bars are faster and the units for the x axis values are seconds. Three different images sizes with different quality settings were used - to represent typical app usage of thumbnails, medium sized images, and large images with high quality rendering.

Macbook Pro early 2011 with ATI 6750M GPU

Macbook Pro 2011

Macbook Pro late 2009 with Nvidia 9600M GPU

Macbook Pro 2011

Macbook Air mid 2011 - No GPU

Macbook Pro 2011