The idea of doing any kind of serious video or image editing on a mobile computer would have made any designer or editor cringe just a few years ago. However, thanks to the more advanced graphics processing available on our mobile processors, and the inclusion of software standards like OpenCL and OpenGL, popular applications from software giant Adobe are finally starting to feel lot slicker than ever before. Mobile Geeks explore how Adobe finally got accelerated on Intel’s new Iris Pro Graphics platform:
We All Want General Purpose GPU Performance
One things that many of us creative professionals have been looking forward to in recent years is the introduction GPGPU processing in many of the heavier applications that don’t actually benefit from incrementally improving CPU performance. Applications like Adobe’s Premiere Pro, Photoshop and Illustrator all benefit from the kind of performance that can only be delivered by the system’s graphics processor or GPU, using it as a General Purpose GPU, i.e. utilizing the chips parallel programming capabilities to greatly increase performance.
High performance GPUs have typically been purchased by end users who are building a PC that can handle 3D gaming. The latest PC games demand a great deal of raw computational grunt. Processing a 3D environment in real-time requires many, many small cores that are designed to cope specifically with unique tasks very quickly. Compared to a CPU, a GPU core is very much the idiot savant; very capable at doing one specific operation very quickly, but not so good at more sophisticated operations that are better left to the CPU. The key advantage of course, is that the GPU has lots and lots of cores.
The problem faced by many professionals when using applications like Photoshop and Premiere Pro, was that the entire workload was pushed onto the CPU, a processing unit less adept at the many tasks and operations that this kind of software requires. The question was quite simple. How could we utilize the power of the GPU in these kinds of applications? A big part of that answer was OpenCL and OpenGL.
Intel Iris Pro
Intel has gradually been improving its integrated graphics technology for several generations now, closing the gap between discrete graphics solutions from Nvidia and AMD. The latest Haswell architecture packs Intel’s Iris and Iris Pro graphics technology which is by far the company’s best performing graphics platform. Generally speaking, the GPUs that we find in Haswell are well suited to help lift some of the grunt work currently done by the CPU, with the HD5200 graphics engine sporting 40 individual GPU cores, more than any other processor Intel have ever produced. The top-end SKU also sports an on-package eDRAM cache that helps negate memory performance bottlenecks.
If we look at some theoretical performance data, we can see that the top integrated GPU sku, the HD5200 GPU that can be found integrated on several mobile Core i7 parts, is capable of performing 832 graphics floating point operations per second, or GFLOPS. This is greatly enhanced performance compared with what saw on previous generations; the HD2000 could manage only 97 GFLOPs, the HD3000 only 194GFOPs, and even the Sandy Bridge architecture HD4000 could muster a mere 294 GFLOPs. Finally Intel have graphics performance worth shouting about.
With real GPU performance now possible on a mobile device processor, there is suddenly a real need to exploit the performance in general purpose computing, not just 3D gaming. We wanted to get these 40 graphics cores to work on our Adobe applications. The performance was clearly there, so why wasn’t it happening?
Adobe Integrates OpenCL (Finally)
OpenCL was developed initially by Apple with later collaboration with a number of big hitters including Qualcomm, Nvidia, AMD, IBM and of course Intel. It is essentially a open framework for writing programs that can indeed take advantage of the system’s GPU. The idea is that the computing system uses the CPU as the host processor, and the GPU cores as accelerators, making specific tasks with application happen faster. OpenCL also defines how system memory (RAM) is used, with a four level hierarchy that reduces latency and generally speeds things up for an optimal user experience.
OpenGL is a little different from OpenCL, and is a cross platform application programming interface (API) for 2D and 3D graphics rendering. It’s origins go back as far as 1991 and it has a firmly established presence in CAD, virtual reality and scientific visualization areas, as well as some modern video game titles. Both OpenCL and OpenGL are managed by the Khronos Group, a non-profit technology consortium.
So if OpenCL and OpenGL are the tools needed to access the power of increasingly powerful GPUs, why in 2014 where we still waiting for it to happen in Adobe’s Creative Suite offerings? Adobe has in fact been gradually introducing OpenCL and OpenGL since Creative Suite 4 where we saw Photoshop integrate the OpenGL API to enhance several Canvas and 3D interactions. Smooth Zoom, Panning, Canvas Rotate, Pixel Grid, and 3D Axis/Lights all used the OpenGL API to improve performance. To enjoy the enhancements the end-user would have to make sure that OpenGL support was enabled. You can see below how to do this:
The more recent release of Creative Suite and Creative Cloud now introduce a range of GPU accelerated effects including Adaptive Wide Angle, Liquify, Oil Paint, Puppet Warp, Lighting Effects, and 3D Enhancements. The latest edition has a broad range of selectable modes where the application can “Use Graphics Processor” and “Use OpenCL.”
Adobe Premiere Pro is possibly the most demanding of all Adobe applications. Processing streams of HD or even 4K video puts a huge amount of stress on a system. In my opinion, if there was one application that could really benefit from GPU acceleration, it is Premiere Pro. The good news is that as of April of this year, Creative Suite 7.2.2 finally added support for Intel Iris architecture processors. When selecting effects to apply to your timeline you can see that many, if not all, effects and filters can now be accelerated by the Iris Pro GPU.
Check out the video below where Adobe’s Dave Hemly shows OpenCL at work using an Intel Iris capable processor. It’s actually pretty impressive:
The performance we are seeing in the video above is exactly what we have been crying out for, for so long. It is great to Adobe now really exploiting the power of these enhanced integrated graphics processors to really speed things up. The ability to apply effects and filters in real-time with smooth playback is incredible, especially when you see this happening on a mobile PC.
Adobe looks to have finally gotten it right on Intel Iris Pro. It’s also important to note that GPU acceleration is possible on 4th, 3rd and 2nd generation Intel core processors – so even going back as far Sandy Bridge chips, you will feel a boost in performance and productivity. These benefits are not limited to Iris or Iris Pro chips, although the high-end HD5000 series will offer way more performance than comparable HD2000 offerings. But with Iris and Iris Pro, serious GPGPU performance is finally here. Now there are no excuses when it comes to video or image editing on the road.
Further reading: Adobe Photoshop* with Open Standards Enhanced by Intel® HD and Iris™ Graphics, by Tim Duncan.