Microsoft Releases Hotfix to Improve Bulldozer Performance UPDATE: Pulledby Kristian Vättö on December 16, 2011 9:29 AM EST
The launch of Bulldozer in October wasn't exactly a success for AMD. In our review, Anand ended up recommending the Intel i5-2500K over AMD FX-8150. One of the reasons behind the poor performance of Bulldozer is its unique design: each Bulldozer module consists of two integer and one floating point core. Todays operating systems don't know how to optimally schedule threads for this design and as a result, the full potential of Bulldozer has not been achieved. Microsoft has released a hotfix for Windows 7 and Server 2008 R2 that should increase the performance of Bulldozer.
Let's look at the problem to see what happened and how the hotfix helps address it. Before the update, Windows didn't know how to ideally schedule threads on Bulldozer. Essentially, it didn't know when it was good to place threads on single module versus multiple modules.
The picture above explains this pretty well. Before the update, Windows more or less randomly placed the threads which meant many modules were unnecessarily active at the same time. This capped the maximum Turbo speeds because those can only be achieved when some of the modules are inactive (power gated).
VR-Zone is claiming that Windows sees one Bulldozer module as a single multi-threaded core, similar to an Intel Hyper-Threading core. Basically, your 8-core FX-8150 is seen as a quad-core, 8-thread CPU—just like Intel's i7-2600K for instance. This goes against AMD's design and marketing because Bulldozer is closer to an 8-core CPU.
We have not yet tested Bulldozer with the hotfix, but don't expect miracles as Microsoft is suggesting a 2-7% increase. Better scheduling for the Bulldozer CPUs will improve performance a bit, but not enough to close the gap in many scenarios. Windows 8 already has the new thread scheduler, and according to AMD's own and third party tests the performance increase is up to around 10%, but Bulldozer needs a lot more than 10% to surpass Sandy Bridge.
Update: VR-Zone reports (and we can confirm) that the download link for the hotfix is no longer functional. There were apparently unexpected performance drops in some cases after applying the hotfix and Microsoft is investigating the issues. Modifying the scheduler in Windows is not something to be done lightly, as it changes a core element of the OS, so more testing and validation for such updates is always a good idea.
Update 2: Apparently there is a second part to the hotfix that was not pushed live, and this hotfix was pushed live prematurely.
Post Your CommentPlease log in or sign up to comment.
View All Comments
gseguin - Monday, December 19, 2011 - linkChanges to the scheduler are complex. People (Benchmarks, applications, drivers) have been optimising for the current scheduler for years. When you change anything in the windows core, it represents months of testing on different hardware and apps. It makes no sense to make a windows patch that kills the performance of Core 2 Duo processors to help out AMD, so due diligence on this kind of patch is rather costly in time and effort..
As for AMD, they probably provided the design for the patch and an engineer(s) for the project. They can't build windows core services themselves, else they'll have to pay for testing on all versions/subversions/patches of all supported windows versions, and risk loosing Microsoft as a partner.
Microsoft has no vested interest in making AMD chips optimal for the OS, but they do need windows to be seen as a performing and up to date OS.
Mirakulix - Friday, December 16, 2011 - linkThe patch doesn't generally perform better, sometimes worse, and has been removed already.
The links below are German, but you get the numbers:
Kristian Vättö - Friday, December 16, 2011 - linkThe source link still works, so I don't think it has been removed.
darkequitus - Friday, December 16, 2011 - linkThe patch has been removed by MS due to unforeseen circumstances.
JarredWalton - Friday, December 16, 2011 - linkText updated, thanks.
werfu - Friday, December 16, 2011 - linkWhat's coming out of these numbers is that the patch doesn't take into account when a thread is massively using floating point instructions. I guess MS didn't take into account that detail. But once they get it right I think we may really see a good boost.
tk11 - Friday, December 16, 2011 - linkAFAIK no schedulers make any attempt to examine the instructions they're scheduling. I don't think it would make sense to attempt to write a scheduler that did so either. Best case would be an OS that schedules one thread per module before scheduling threads on any module that isn't idle.
It would probably be ideal if MS had some sort of scheduler API that allowed CPU manufacturers to write a driver that could suggest to windows which core to schedule the next thread on. Perhaps the driver could use a few of the CPU's vendor specific performance counters to make a more informed decision than windows could ever hope to make.
freezervv - Saturday, December 17, 2011 - linkI imagine we'll see that in the next 10 years with heterogeneous computing.
An Intel GPU won't be an ATI GPU won't be an NVIDIA GPU... and if we have "one framework to rule them all", then we're going to need some BIOS-equivalent able to say "Hey! I'm here, and these are the computational resources I provide!"
fic2 - Friday, December 16, 2011 - linkStill waiting on the AMD fix....
ochadd - Friday, December 16, 2011 - linkAMD would be gone if the wintel CPU business had more than a couple players. IMHO AMD needs to be the first to market with some new whizbang technology to stay relevant. Optical CPUs, quantum computing, etc. They will not be able to outperform Intel by ratcheting up an existing technology. There aren't enough mhz or cores out there to make the jump.