Bulldozer. It is a term that has dangled over the CPU market for a long time now, threatening AMD’s return to being a serious contender. After numerous delays it is making its first appearance in the form of the new AMD FX line of CPUs, which uses the Bulldozer architecture in a design formerly known as Zambezi.
AMD has announced several models of FX, but to date we have only seen the top of the range FX-8150 in the Atomic labs. This CPU is based around four Bulldozer modules, a pseudo eight core design, running at a nominal 3.6GHz and capable of spiking up to 4.2GHz with Turbo Core. It features 8MB each of L2 and L3 cache and has a TDP of 125W. On paper it looks incredibly powerful, but as AMD once taught us Megahertz means nothing – performance is about how speed and efficiency of design work together.
In order to understand how the FX performs, and why we see it as using pseudo-cores, one needs to look at the philosophy behind Bulldozer’s design. What AMD has done is implemented a kind of hardware hyperthreading with its modules, designing it to take advantage of highly threaded workloads.
Unlike Intel’s hyperthreading implementation, which attempts to carefully juggle two threads on a single core, AMD has opted to double up on some parts of the core itself. If we have a closer look at the Bulldozer design we see that each ‘module’ has shared Fetch and Decode units, Floating Point Scheduler and L2 Cache. The rest of the parts are doubled up, with each ‘core’ having its own Integer scheduler, integer pipelines and L1 cache. Each core also has its own 128-bit floating point unit, although the two units in a module can be combined to form a single 256-bit pipeline if needed (this is to support AVX extensions).
The Zambezi design puts four of these modules onto a CPU. The number of functional cores is then worked out through binning, and those with four functioning modules are marketed as eight core processors (The FX-8150 being the selected from the fastest four module silicon). There are lower range models with less cores – these are most likely processors where a module failed in the binning process but it does open the possibility of core unlocking in the future.
Eight cores, four modules
So in a way it is disingenuous to call the FX-8150 an eight core processor, but it is closer to being a ‘real’ eight core processor than a Core i7 with hyperthreading is. But this is important not because of semantic arguments but because it indicates that the FX-8150 is targeted at heavily multithreaded environments.
In many ways this is due to AMD developing one architecture for desktop and server processing, but throughout the review process AMD has stressed to us that Bulldozer is designed for heavily threaded desktop workloads. Our problem is that these kind of desktop processing tasks are rare, so while Bulldozer will theoretically chew through them, there is likely to be little or no benefit at the moment.
One of the other major issues is that while AMD has been clever in the way it designs the modules, there is no way for Windows to currently know which core is part of which module. Its scheduler tries to assign tasks to free cores, but in doing so it means that co-dependant data gets separated to different parts of the CPU. This also causes problems with Turbo Core, AMD’s automatic overclocking technology. Turbo core is designed to boost busy cores by turning off unused cores and using the spare TDP – however because Windows isn’t able to schedule the data properly, it messes with the operation of Turbo. This is an issue that AMD indicates will improve with Windows 8, and despite it theoretically being possible to patch improved scheduling into Windows 7, it isn’t something we can see being done.
One other important thing to note is that there is no GPU functionality in the FX-8150. In fact, the entire Zambezi design is just a CPU with no graphics. This seems surprising considering AMD’s heavy push towards Accelerated Processing Units, but it does mark the processor as an anomaly considering that both Intel and AMD have been incorporating GPU functionality into their other processor designs.