Apple built its own custom GPU core starting with the iPhone 6 — and nobody noticed
Nov 5, 2016
Apple’s path from licensing standard ARM cores to building its own CPU design was well-documented, starting with the company’s decision to purchase PA Semi in April 2008. Its GPU cores, in contrast, have been broadly assumed to be licensed from Imagination Technologies. According to a new report, however, Apple has been building its own GPU cores for years — it’s just that no one noticed. David Kanter at RealWorldTech spotted the differences by digging into the available architectural manuals for both Apple’s Metal API and Imagination Technologies’ GPU products. There are significant, non-trivial differences between the two. Apple’s hardware is apparently built around 16-bit half-precision registers, while the PowerVR architectures support half-precision, but do not require its use. The advantage of using 16-bit precision in GPUs isn’t really in performance, but in power efficiency. The less data you store in a given register, the less energy it costs to move that data around on-chip. There are also practical advantages in terms of register file size and subsequent power consumption. Overall, the manuals point to fundamentally different architectures — and Apple appears to have gained a tremendous advantage over PowerVR’s baseline technology as a result. Kanter writes:
The contrast between the register file and data conversion in the Apple’s and Imagination GPUs is tremendous. The register file organization is fundamental to the shader core and impacts the design of nearly everything, from the instruction set architecture of the shader cores to the execution units and scheduling logic. As one example, the register size determines the data path and wiring that runs throughout most of the shader core. The data conversion is not quite as substantial, but makes a very big difference to the compiler and to developers. The PowerVR Series 7 GPU is fairly similar to the previous generation Series 6, and crucially also uses 32-bit registers. Based on these differences, the only logical conclusion is that Apple’s GPU uses a proprietary shader core that was internally designed. By extension, this means that Apple also developed their own shader compiler for the OpenGL ES and Metal APIs and most likely, their own graphics driver. Apple’s deep investment into GPU cores raises a number of interesting questions. In theory, the company now has both of the building blocks it would need to bring its custom ARM SoCs into MacBooks and MacBook Pros. I’m still not convinced this will happen, mostly for the same reasons I covered two years ago. Apple, historically, doesn’t switch until it sees an extremely significant benefit from doing so — and while the iPad Pro offered some competition for PC devices in general, no ARM CPU yet built can challenge Intel from the top to the bottom of the stack. Apple won’t switch to its own custom-built chips (if indeed it ever does) until ARM can offer a large benefit over x86 and justify the maneuver. This screenshot from GFXBench was later pulled offline, but not before being archived by Back to the Mac, a Korean site. Apple still licenses some GPU technology from Imagination, but this is thought to consist of some fixed-function blocks. Owning its own GPU stack gives Apple much more ability to tweak its software to run optimally on its hardware, or built custom heterogeneous compute capabilities into its own products. It’s not surprising to see Apple go this route, given that they’ve already blazed a trail in CPUs. But it’s probably a touch frustrating for macOS users who would like to see the company adopt a newer version of OpenGL (still stuck on 4.1, now six years old). In mobile, however, Apple builds the fastest GPUs in the business — and now, thanks to RWT’s sleuthing, we know why.