To GPU or not GPU Render – That is the Question

Flam4CUDA for Mac and Fractal Architect have supported fractal rendering on the GPU since 2009. Flam4CUDA for Mac (I am its author) was an open source precursor to Fractal Architect.

Fractal Architect 3D, FA 2, and Serendipity all use the powerful OpenCL platform to render on either a CPU or a GPU. On OS X Mavericks, all recent Mac GPUs from Nvidia, ATI, and Intel are supported.

The beauty of  rendering on the GPU is quite simple:   Speed !!    (speed varies by GPU model)

For example, rendering on Macbook Pro laptop GPUs is often 3 to 4 times faster than rendering on the CPU. With the new Mac Pro, the speed increase might be 100X times faster (not benchmarked yet as of late 2013 – but this speed increase has been seen with Flam4CUDA on high end gaming PC’s)

The disadvantage is the possible presence of bugs in the OpenCL drivers and OpenCL code compilers.  OS X updates can bring new driver bugs  without warning, which force me to update the apps. For example, Hotfix for Mavericks 10.9.1. But usually these problems are short lived.

Summary of OpenCL Rendering Issues for OS X Mavericks

[table]
Device,Performance,Compile Speed
Intel CPU,Slow, 2 secs. Fast
Intel Iris GPUs,Slow to Moderate,2+ mins Very Slow!!
Nvidia GPUs,Very Fast,15 secs.
ATI GPUs,Very Fast,5 secs.
[/table]

As of Mavericks version 10.9.1, unfortunately we consider the Intel Iris Graphics GPU OpenCL driver to be of only Beta quality because OpenCL compile’s time out at 2 min 20 secs followed by an app crash. The only workaround is to create smaller variation sets. The OpenCL drivers for the CPU and Nvidia and ATI GPU’s don’t have this problem (see table above).

Render Performance

If you want to submit your Mac’s render performance, just render the fractal called Worlds.fa that is in FA 3D’s Gallery to a PNG file with size 1440×900 pixels at 300 render quality. Please post a comment with your results.

GPU
Render Time
GPU/CPU Peformance
15″ Retina Macbook Pro – Mid 2012
Nvidia GT 650M
4.93 sec
325% X Faster than CPU
Intel(R) Core(TM) i7-3720QM CPU
16.08 sec
Baseline CPU
Intel HD 4000 GPU
79.78 sec
496% X Slower than CPU
Macbook Air Mid 2013
Intel HD 5000
34.485 sec
30% Faster than CPU
Intel(R) Core(TM) i5-4250U CPU
44.923 sec
Baseline CPU
Macbook Pro Early 2011
ATI 6750M
8.74 sec
242% Faster than CPU
Intel(R) Core(TM) i7-2720QM CPU
21.08 sec
Baseline CPU
27” iMac Mid 2010
Intel CPU
39.707 sec
Baseline CPU

3 thoughts on “To GPU or not GPU Render – That is the Question”

  1. I tested this on my iMac with 3.5 GHz i7 and NVIDIA GeForce GTX 780M with 4096Mb VRAM.

    It took 16 seconds using CPU, and only 2 seconds with GPU. That’s without installing any CUDA drivers, using the “Like Classic Flam3 v 3.0” setting.

    Pretty amazing performance running this way!

  2. Random generation with GPU is very fast but produces very lov qulity images. How to get better quality?
    Same things happen when rendering, I need to rerender some images using CPU.
    I use Macbook pro and I mac with Yosemite.

    1. The app is optimized for fast preview renders when creating/editing new fractals. Of course, you can do extremely high quality long renders too, but not while editing. Think of it as “draft” mode while editing for fast turnaround.

      The app was tuned for responsiveness on Macbook Air’s. More powerful Macs can use higher render quality defaults for editing.

      The default quality settings are changeable under Preferences.

      See:
      Preferences > Thumbnail Grids > Triangle Editor, Quicklook, Grid Thumbnails quality settings.
      Preferences > Preview > Minimum Quality

      GPU rendering quality is greatly improved in Fractal Architect 3D compared to FA 2 or Serendipity.

      Some fractals (a small percentage) do not converge well and have a lot of noise in their images. For these few fractals you will want to increase the quality settings mentioned above.

      With final production renders, the quality is so high that render noise is insignificant.
      Editing quality is usually between 35 and 50, while final production render quality will range between 3,000 and 10,000.

      Also, you might play with the Gamma Threshold parameter setting if you are getting areas of your fractal with a lot of noise.
      Some fractal will have noisy regions even with extremely high render quality settings.

      FA 3D allows you to change quality related parameters after after a long production render and quickly post-process the fractal again. So you can tune the Gamma and Gamma Threshold settings then

Leave a Reply

Your email address will not be published. Required fields are marked *