Central Processing Units haven’t always been the multi-core beasts they are today. I suppose one could make an argument that today’s CPUs would be barely recognizable as such when compared to the earliest of central processing units. Consider the recent relabeling of CPU cores as “modules” by AMD (describing a Bulldozer – or Kaveri’s case, Steamroller – core consisting of two integer cores and one shared floating point unit). The buzz around modules becomes so much more interesting when one realizes that early CPUs didn’t even have the capability to perform floating point math on-chip (let alone share an FPU among two integer cores…). It begs the question, just what IS a CPU? Is all this talk of APUs and modules just more marketing speak, or is there something to it? The more time I spend with AMD’s recent Kaveri APUs, the more I can see the need to describe modern processors as something other than *just* a CPU. Arguably, the same terminology could be applied to Intel’s Haswell lineup – an on-chip voltage regulator, on-chip graphics cores, VT-d/VT-x, Trusted Execution, WiFi, WiDi, and many more letters…clearly, today’s CPUs do much more than just crunch a few numbers and carry out linear instructions. For example, take a look at Kaveri’s CPU die below: Maybe one could argue that we should call this thing a GPU, since the majority of the transistors above (colored orange) are set aside for the 512 GCN graphics cores. Well, perhaps we can’t even call it that – AMD feels the term “Compute Cores” is more appropriate, since these cores are capable of a lot more than just rendering an image. Note their proximity to the two Steamroller modules on the right (green), most notably to the cache in the middle. The Kaveri APUs’ CPU modules and GPU cores have shared access to memory, which allows each to merely reference a location rather than copy data whenever they need it. Additionally, the graphics cores are counted by AMD as Compute Cores, since they meet the HSA definition: Any core capable of running at least one process in its own context and virtual memory space, independently from other cores (taken from AMD’s whitepaper on Compute Cores).
While I’m not sure we’re all ready to call the Kaveri APUs 12-core processors yet, on paper it seems that there are 4+8 cores individually ready to crunch some numbers. Later on, we’ll see if this reflects in a few benchmarks. With graphics processors uniquely suited for certain operations (not to mention the complex calculations required for today’s 3D environments and physics simulations), GPUs have become pretty adept processors over the years. Previously, the CPU and GPU were quite independent. One had to pass instructions to the other, and wait for the other component to finish before picking up the next instruction – the only information they had access to was whatever was explicitly sent over. AMD’s Kaveri APUs are trying to change that. While this isn’t an article about the Heterogeneous System Architecture or its benefits, it’s important to note that HSA changes the nature of CPUs yet again. Kaveri brought quite a few new technologies to the FM2+ platform and they all make an appearance in the A10-7800 APU. One of the major changes from previous APUs are Kaveri’s GCN graphics cores. Utilizing the same architecture as AMD’s Hawaii GPUs (with an HSA boost), the Kaveri APUs bring all of the latest generation graphics technologies with them. That includes:
- TrueAudio (a dedicated sound DSP that brings a shader-like approach to audio)
- Mantle (a lower level graphics API that can be used to reduce the load on a CPU)
- Eyefinity support (multi-monitor / panoramic display)
Of course, the real game-changer here is HSA, or Heterogeneous System Architecture. Very basically, HSA allows an application to run on whichever component would be more appropriate – highly parallel tasks would automatically run on a GPU compute core, with traditional tasks executing on the CPU cores. While we’re just starting to see the benefits of this, it doesn’t take much to see the possibilities here once HSA becomes commonplace (anyone that experienced the jump from CPU to GPU crypto-mining probably understands the potential). Compute-capable GPUs are just flat-out better at certain calculations – it only makes sense to allow the GPU to perform those operations. With the Kaveri APUs and the A10-7800, this ability is built-in to the hardware. So the hardware supports HSA – will the software follow? I’m sure it will take some time to fully answer that question, but let’s take a look at a few different types of benchmarks to see what type of performance the A10-7800 is capable of.