FX versus Phenom: Core Scaling
Before we dive into our standard collection of benchmarks I thought I would take some time out to take a look at some performance metrics that might help us guage our enthusiasm accordingly. First up, core scaling and how exactly the world of "modules" and "heavy cores" actually affects performance.
Remember that while the AMD FX processor is an 8-core CPU, it is really built out of 4 modules that contain almost the equivalent of 2 cores worth of processing.
This means that not all of the cores are created equally – an application running on Core 1 and Core 2 should behave differently with both threads working inside the same module. But what happens if a program runs on Core 1 and Core 3? Now we are investigating how well the different modules communicate and how well the Bulldozer design handles this work load.
For my testing I looked at only the new FX-8150 processor and the Phenom II X6 1100T 6-core CPU and ran POV-Ray, one of our best threaded benchmarks, on various core combinations. Let’s see the results:
Ignoring the actual numeric results comparing the FX and Phenom chips, let’s focus on the core scaling. Going from Core 1 only to Core 1 and Core 2, the FX-8150 sees a boost in performance of 67.6%. On the other hand the Phenom II X6 sees a boost of 98.8% when adding in the second core. Obviously the shared floating point units on the Bulldozer modules are limiting the performance scaling of POV-Ray that usually comes as close to linear as any other software we have used.
When we move the threads OFF of working on the same module (Core 1 and Core 3), the AMD FX processor does much better and sees a scaling rate of 97.5%. The Phenon II X6 part scales basically identically with Cores 1 and 3 since the cores are completely separate and share fewer resources than the cores of Bulldozer.
This could present the AMD FX architecture with scheduling challenges on the OS side and also means that for best performance, you’ll want to have all four modules enabled for your CPU even if you have only four threads running.