There are many workloads which require significant image manipulation such as visualization and analysis of geospatial data to generate georeferenced imagery and terrain data. These workloads can be found in a wide variety of industries ranging from aerospace and defense to security and planetary research. One tool which is commonly used to tackle such tasks across a vast spectrum of Linux distributions is ImageMagick. ImageMagick is also found it just about all of the most popular web-stacks to handle image transformations such as re-sizing, contrast enhancement, and the application of various filters.
ImageMagick presently supports several OpenCL accelerated image operators for which a complete list can be found here. In general, to enable OpenCL in ImageMagick one has to jump through several hoops such as installing the proper drivers, toolkits, and of course one needs to properly compile the program with OpenCL enabled.
With our new Bitfusion ImageMagick AMI we take care of all the setup nuances to get you up and running quickly on AWS GPU instances. But we go even further than that - we believe that the AMI we are publishing today is the fastest available multi-GPU accelerated ImageMagick available on AWS. How fast is it? Below are several benchmarking results from our test runs. These runs were conducted on a g2.8xlarge instance where we compare the performance of the 4 GPUs vs. the CPU performance on the very same system.
We utilize two different image sets for these test, namely imageset #1, and imageset #2. The former is a large set of JPEG images that range in size from 100KB to 16MB, while the latter is a small set of very large ppm images that range in size from 20MB to 224MB . The GPUs on the g2.8xlarge are the Nvidia GRID K520s, each of which has 1,535 CUDA cores and 4GB of memory. The CPU is a dual socket Intel Xeon E5-2670 (Sandybridge), each of which has 8 dual-threaded cores. We ran the tests multiple-times and report the averages in the graphs above. Please note that for the graphs above shorter is better, and that the x-axis is on a log scale.
As you can see from our results, depending on the applied operator we show up to a 20x improvement in run-time over the standard CPU implementation. All the instructions to replicate our results are contained in the AMI Readme in case you would like to reproduce them yourself. If you are doing a lot of image processing with IamgeMagick on AWS then take our Bitfusion ImageMagick AMI for a spin. Interested in deploying our multi-gpu version of ImageMagick in your data-center, please drop us a note.