Today, at the 2017 Open Compute Project U.S. Summit, Microsoft unveiled some significant announcements around their hyperscale cloud hardware design, which they first announced in November as Project Olympus. With the explosion of growth in cloud computing, Microsoft is hoping to reduce the costs of their Azure expansion by creating universal platforms in collaboration with the Open Compute Project. Project Olympus is more than just a server standard though. It consists of a universal motherboard, power supplies, 1U and 2U server chassis, power distribution, and more. Microsoft isn’t the first company to want to go down this road, and it makes a lot of sense to cut costs by creating standards when you are buying equipment on the level of Azure.

The company made several big announcements today, with the first one coming somewhat as a surprise, but when you read between the lines, it makes a lot of sense. Microsoft is partnering with Qualcomm and Cavium to bring ARM based servers to Azure. This is a pretty big shift for the company, since they have focused more on x86 computing, and changing to a new ISA is never a small task, so Microsoft is clearly serious about this move.

Microsoft Distinguished Engineer Leendert van Doorn expanded on why the company is exploring this option in a blog post today. Clearly ARM has made some progress in the server world over the last few years, and Microsoft feels it’s the right time to bring some of that capability to their own datacenters. I think one of the key takeaways is that Microsoft wants to shape the hardware capabilities to the workload, and with an open platform like ARM, this can make a lot of sense for certain workloads. He points out that search and indexing, storage, databases, big data, and machine learning, are all named as potential workloads, and in cloud computing, these are all significant in their own right.

Qualcomm Centriq 2400 Platform

Microsoft already has a version of Windows Server running on ARM, and they’ve announced that both of their partners will be demonstrating this internal use port of Windows Server, first with Qualcomm with their Centriq 2400 processor, with 48 cores on Samsung’s 10nm FinFET process. Cavium will be running on their second generation ThunderX2 platform. Our own Johan De Gelas did a thorough investigation of the original ThunderX platform in June 2016 and it is certainly worth a read. The takeaways were that Cavium needed to do a lot of work on power management, and they had some big performance bottlenecks, so they offered inferior performance per watt compared to a Xeon D, but better than advertised single-threaded performance with SPEC 2006 results only 1/3 the Xeon results, rather than the 1/5 that was advertised. If Cavium has fixed some of the issues, especially power consumption, the new ThunderX2 might be a compelling solution for specific tasks.

Cavium ThunderX2 Platform

That is really the kicker though. The ARM platform, if properly executed, should be a good solution for some specific tasks, and if Microsoft can work with the platform makers to shape the hardware to fit specific tasks, but still be more general purpose than an ASIC, but at this time, it’s unlikely to be a serious threat to Intel’s monopoly on the datacenter at the moment. Intel has a pretty sizeable advantage in IPC, and especially on single-threaded workloads, so x86 isn’t going anywhere yet. What really matters is how Qualcomm and Cavium can execute on their platforms, and where they price them, since the end goal for Microsoft with this change is certainly, at least to some extent, to put pressure on Intel’s pricing for their datacenter equipment.

Back on the x86 side, Microsoft also had some announcements there as well. AMD will also be collaborating with Microsoft to include their Naples processor into Project Olympus, which is their new server processor based on the “Zen” architecture. Although much of the news today has been around the ARM announcement, this is arguably the bigger play. Ryzen has already shown it is very competitive with Core, and Naples could be very strong competition for Xeon. We’ll have to wait for the launch to know for sure.

Microsoft didn’t abandon Intel either, and they announced close collaboration with Intel as well. This will be not only for Intel’s general purpose CPUs, but also for Intel’s FPGA accelerators and Nervana support. Microsoft already has FPGAs in Azure, so adding them to Project Olympus is a no-brainer.

Microsoft also announced a partnership with NVIDIA today, bringing the HGX-1 hyperscale GPU accelerator to Project Olympus. HGX-1 is targeted at AI cloud computing, which is certainly an area where there has been tremendous growth. Each HGX-1 will be powered by eight NVIDIA Tesla P100 GPUs, each with 3584 Stream Processors, based on the GP100 chip, and a new switching design based on NVIDIA NVLink and PCIe which allows a CPU to connect to any number of GPUs dynamically. NVIDIA states the HGX-1 provides up to 100x faster deep learning performance compared to CPU-based servers.

This is a pretty substantial update today for Project Olympus, and it looks to be an incredibly modular platform. Anyone reading that Microsoft is dropping Intel for ARM in Azure is misunderstanding this goal. Looking at the platform as a whole, it is abundantly clear that Microsoft wants a platform that can be designed to work with any workload, and still offer optimal performance, and efficiency. Some tasks will be best on ARM, some on x86, while GPUs will be leveraged for performance gains where possible, and FPGAs being utilized for other tasks. When you look at computing on the scale of something like Azure, it only makes sense to dedicate hardware to specific workloads, since you’ll certainly have enough different workloads to make the initial effort worthwhile, and that isn’t always the case when looking at small business, medium business, or even most enterprise workloads.

Source: Microsoft Azure Blog


Comments Locked


View All Comments

  • Meteor2 - Thursday, March 9, 2017 - link

    From van Doorn's blog: "We feel that ARM is well positioned for future ISA enhancements because its opcode sets are orthogonal." -- what does orthogonal opcodes mean?
  • 7487 - Thursday, March 9, 2017 - link

    It means that the opcodes are generally irreducible. If you want something done, there is a well defined way to do it. It is orthogonal in the sense of orthogonal basis vectors in a vector space.
  • Arnulf - Thursday, March 9, 2017 - link

    No, it doesn't.
  • OreoCookie - Thursday, March 9, 2017 - link

    For the A6 (Swift), Apple added a hardware integer divide unit, for example. So ordinary ARM v7 code ran perfectly on in, the new instruction did not interfere with functionality, it did benefit from recompiling everything so that code could benefit from the additional instruction. This recompiled code was no longer backwards compatible, though (and not a problem, because Apple allows you to ship binaries for multiple architectures in the same package).
  • Zingam - Thursday, March 9, 2017 - link

  • name99 - Thursday, March 9, 2017 - link

    What he means is that the ARMv8 opcodes are very clearly laid out. I can't find the diagram right now, but different opcodes are very methodically laid out in the opcode space. This means, among other things, that the SVE (and other earlier ARMv8.1 and v8.2) instructions could be fitted in cleanly.
    AND (relevant for MS) there are obvious "squares" of unallocated instruction space where vendor specific instructions could be added.

    I can't find anything about the "legal" status of this, but everything is negotiable. The relevant point for MS is that ARMv8 technically provides a clean way (doesn't interfere with the rest of the CPU, fits nicely into existing tool chains) for them, if they wish and negotiate with ARM, to add their equivalent of something like SVE that would exist purely on MS cores for MS purposes.
    Arranging something like that for x86, even apart from the politics, is technically vastly more difficult.
  • Meteor2 - Friday, March 10, 2017 - link

    I see... thank you.
  • prisonerX - Friday, March 10, 2017 - link

    It means that ARM ISA isn't batshit crazy like the x86 ISA.
  • lefty2 - Thursday, March 9, 2017 - link

    Interesting. I'm guessing that the HGX-1 won't be compatible with AMD's Project Olympus offering
  • MrSpadge - Thursday, March 9, 2017 - link

    They don't need to be compatible - just put them into different machines for differnet purposes.

Log in

Don't have an account? Sign up now