Good to hear
I was burned more than a few times by using AMD chips over the past 25 years. I have to admit, I haven't bothered with them in a while. This is mainly because they're great at consumer and great at data center, but somewhere in-between, they're lacking when it comes to supporting small scale developers. Their development tools have always been lacking and their pathetic support for GPU code developers really chased me away from them. That said, I am happy to hear that a real CPU vendor is taking on ARM.
There are a few major problems I see here :
- 10Gbe support on die, this is just amazing, but to be honest, I don't any mention for FCoE/DCB here. To make the 10Gbe controller useful, it needs to be more than an Ethernet controller or it's just a waste of die space. A modern 10Gbe controller needs to support priority flow control and enhanced transmission selection. This is a minimum requirement for supporting FCoE. In addition, added support for RDMA over Ethernet is a major requirement in today's environment. Add to that VNtag support and you have a controller worth using. Yes, I know only a handful of vendors have those features today. Broadcom, Cisco and it looks like soon Intel will all have them. But two 10Gbe controllers with those features are a minimum requirement in a data center network adapter for 2014.
- Virtualization support. ARM has it, but it's borderline crap at the moment. This is really not ARMs fault. They're just noobs to this category of computing and it'll take some time to get it worked out. They should be actively working with VMware, Microsoft, RedHat and Citrix to make this happen. They should get silicon out there as soon as possible so those companies can get bare metal hypervisors ready for the ARM processor in the real world.
- Compiler support. ARM/AMD need to stop screwing around with the ARM compiler which has always been a pain in the ass except when developing boot loaders or code close to the hardware. They need to put together a team of real engineers to take LLVM seriously. Thankfully, the guys over at Apple take ARM seriously, but they're interested in the 32-bit core from ARM. I haven't heard a single rumor of a chip from Apple which will employ 64-bit instructions. In fact, in a smart phone, it's probably almost a disadvantage to waste space on wider word width. What's the point of adding a huge amount of CPU power using 64-bit in a phone when 99% of what you want to accelerate would profit more from custom cores and better GPUs. In server land, it's all about CPU and therefore neither ARM or AMD can bank on someone like Apple taking on the optimization of back end code generation for 64-bit ARM as there's just no profit in it for them. AMD needs to invest to make this happen.
- Wide busses. Most people simply believe that PCIe busses come for free.The fact however is that the PCIe controller of the CPU takes a tremendous amount of bandwidth, requires direct memory access within the CPU cache as well as system memory causing major issues. This increases the amount of multiplexing that has to occur within the CPU cache especially when trying to support cache coherency. This generally is accomplished by placing a much larger burden on the cache logic itself, the effect of this is to either slow down the cache and the speed at which the CPU cores can access it OR by increasing transistor count and power consumption. Want to see all those great benefits of ARM technology go bye bye? Add more PCIe lanes.
- Microsoft support. Yeh... I know.. we all hate Microsoft, but to be fair, unless Microsoft throws some server and data center love at ARM, there's little hope for this being a really useful technology outside of corner cases. Sure, you can do more web serving. You can maybe run some monster apps like hadoop, but in the end, companies run on Windows Server, Exchange and others. I doubt there's a whole lot of processor specific code in Exchange, but there's bound to be some. In addition, for developer workstations, there should be a version of Windows which runs on ARM with desktop support and Visual Studio for example. Most developers really don't enjoy debugging their apps remotely. There's something more natural about debugging on the machine you're coding on.
Guys, it could happen... I hope it does, but unless ARM and AMD take the real world problems seriously, I don't see this being more than a niche market item. And worse, if AMD comes to market with a half assed solution, it'll become a problem like Surface vs. Surface Pro. People still go to the store and buy computers with either Intel or AMD chips in them. If they get a machine with an AMD and it's an ARM and they end up running Windows RT or worse, an Android variant, people will stop looking for AMD systems because it's too confusing.