We tried to switch to ARM. We maintain our ARM port of all our code for the day there are servers we can use. However, we are in production with AMD now.
From one of the posts: "Readers of our blog might remember our excitement around ARM processors. We even ported the entirety of our software stack to run on ARM, just as it does with x86, and have been maintaining that ever since even though it calls for slightly more work for our software engineering teams. We did this leading up to the launch of Qualcomm’s Centriq server CPU, which eventually got shuttered. While none of the off-the-shelf ARM CPUs available this moment are interesting to us, we remain optimistic about high core count offerings launching in 2020 and beyond, and look forward to a day when our servers are a mix of x86 (Intel and AMD) and ARM."
As a happy Cloudflare user (free plan for personal use tho) and stock investor, I'm really pleased to see all your excellent and hard work and appreciate open sharing!
I've been tracking your ARM effort for a while (and did my math when you released Gen9 server! See https://news.ycombinator.com/item?id=18190891). I'm not sure how much you could share on what happened to Falkor and Qualcomm's ARM server business in general, but if possible, please do have a similar writeup. It would be extremely interesting and valuable to the whole industry.
Meanwhile I'd assume this must have been discussed internally, but have you ever considered designing your own ARM SoC (and boards) given that the licensing model actually could work (compared to the impossibility of licensing x86)? I know Cloudflare is still a small company (compared to the big four) and maybe the timing is not right and/or scale is not yet there, but you do have this option in the long run. If possible, I'd also like to hear your thoughts on this.
Anyway, thanks for the great writeup and keep the good work going! ^_^
Do you see any ARM chips on the horizon this year or next that might change the equation? It looks like Amazon is seeing 40% better performance per watt (I think they said the power draw is comparable somewhere) with their custom design, will a commercially available chip be able to match that soon?
Side note: Thanks for making a great product and keeping it cheap/free for hobby projects! I got comfortable with the basic features on a small project and now advocate for it's use regularly.
We continue to look at ARM and test things. We continue to look at Intel and test things. Right now AMD makes the most sense for the servers we are deploying today. But don't be surprised if we have more Intel in our future or ARM.
I personally never used Itanium, but the features it had at the time were very compelling. Unfortunately, it was too ambitious, and now it’s faster to do OOO execution instead of making the compiler do all the heavy lifting.
I don't think it every was a promising approach to let the compiler alone do that work. For one, it means that you basically have to recompile for every microarch, and the compiler needs all those details. But even then, the compiler can't fully predict cache behaviour etc. Which means ooo execution still is important.