Why Cloudflare Chose AMD EPYC for Gen X Servers
blog.cloudflare.com
blog.cloudflare.com
If AMD could come up with something similar, it'd make their offering a no-brainer.
Why would this time be different?
https://www.cnet.com/news/intel-to-pay-amd-1-25-billion-in-a... Lll https://www.ftc.gov/news-events/press-releases/2010/08/ftc-s...
Some people don't want cores that you can't gather insight into how you are spending/wasting their time.
I'm not a direct customer of Intel or AMD, but in general I would trade off clock speed/cores/cost for insight into what my software is doing.
If you make CPUID lie to it that it's an Intel part, it'll use AVX2, and Threadripper parts will beat Xeon by a 20% margin. Otherwise it's 200%+ slower.
Meanwhile, MKL has been a fair bit faster than OpenBLAS, etc on Xeon ("pretend to be Intel" MKL and OpenBLAS are about the same speed on AMD), so all kinds of software is linked against Intel MKL.
When you have core libraries tuned for Intel, either because Intel makes them themselves or because the tooling for performance tuning on AMD hasn't been present, Intel has a software tuning advantage that helps hide AMD's current silicon performance advantage.
I’m not posting this to bash AMD. Just trying to make point that the software side can matter a lot and from end customer point-of-view this can make a huge difference.
[1] https://www.pugetsystems.com/labs/hpc/AMD-Ryzen-3900X-vs-Int...
Sure, if AMD hardware is much better than Intels, an unoptimized libc might run better there. That’s not the point.
The point is that a libc optimized for AMD could run much better than what it does today.
Improving the performance of low level libraries for Intel hardware is trivial because there are a lot of great tools that help you with that.
If I had to improve the performance of some library on AMD hardware, I would get some Intel hardware and tools, improve the performance for Intel, and then “hope” that this improves the performance for AMD as well.
- Intel AVX-512 instruction set
- Intel 4 and 8 sockets
What realistic workloads have a better performance/cost advantage on Intel vs AMD EPYC?
If you're a home user (gamer, programmer), is there any reason to buy Intel today? I'm about to buy another motherboard & CPU and considering AMD for the first time. In the past, I avoided it because AMD had an incompatibility (e.g. VMware) that kept me on Intel.
(E.g. previous example of AMD showstopping bug affecting VMware: https://communities.vmware.com/thread/456094)
There's definitely not much. I believe absolute peak single-core performance can still be slightly higher on Intel which is important for gaming, but maybe the last few AMD chips also killed that. And there are also some tools that are not well optimized or don't yet fully support AMD yet. For example:
https://github.com/mozilla/rr/issues/2034
This year's release of Zen 3 looks very promising. Hopefully RAM manufacturers wake up and we also get a bunch more ECC options that aren't so overpriced and slow.
https://www.cpubenchmark.net/singleThread.html It's still weird to see amd anywhere near the top of this list, a few years ago the first few screenfulls were intel.
It's definitely quite close but PassMark just shows that it's a tie and it's not necessarily representative of game workloads. It all depends on how much overclocking headroom there is. The enthusiasts for this kind of thing will throw great cooling at these chips and get the best out of them. I wouldn't be surprised if the advantage AMD now has in fabrication meant it also won there though.
Intel is also tending to win in lowly threaded desktop applications because it can boost higher for longer. AMD's single-core boost is for quite short periods and only on one core with a quicker drop off as more cores are utilised, but Intel will maintain its boost in well-cooled conditions for many minutes or forever with a bios setting (many motherboards come this way by default although it's technically outside of spec) and it will happily also run the single-core overclock with all cores, again with a bios setting (also out of spec, also often comes turned on by default). AMD's CPUs are pushed much harder out of the factory and only 1 core on the chip can achieve the stated highest clock speed so it just can't do the same thing.
Intel ends up better somewhat better in low threaded stuff, games and applications, due to similar IPC but higher clock speed. But AMD CPUs beat it soundly for anything that can utilise more threads as at the same price you get 50% more cores than you do with Intel at least. Below a certain clock speed boost and price Intel just isn't worth it at all, neither are its productivity chips. 9700k, 9900K, 9900kS the soon to be released equivalent 10000 chips, those are still worth it compared to the 3900k, 3800k for certain gaming. Below that however I wouldn't bother with Intel at all and I certainly wouldn't bother with Intel at 60hz, it only really plays at high refresh rates or very particular games.
Saying that just be aware that the Intel CPU will probably age worse as threading continues to increase, all be it a very slow process. It really is going to depend on if you play AAA games or whether you play something particular or indy games and if they have problems with performance and are also lowly threaded.
It’ll be interesting to see what standard they set this summer when the new Nvidia GPU comes out. I expect everyone will upgrade then including CPUs if they deem a different CPU available.
Also a slight tangent, it’ll be interesting to see how the competitive landscape shakes out after the pricing hike in hardware due to logistics slow downs in Asia due to all the quarantines going on. Linus TEch Tips just did a great video on this, maybe when the dust settles AMD will be the undisputed champion.
Also, don't forget that these "streamers" are basically blank canvas advertisement machines, "putting out" to whoever pays top money, be it Intel, which is very active in that scene, the various motherboard companies which want to advertise their Intel-geared products and cooling solutions, which sometimes are geared toward Intel CPUs. The last two are changing slowly. In the last year, the amount of B450/X570 chipset motherboards flooding the market was staggering. It was very clear where the wind is blowing in the gaming segments. Intel is still a very high-paying force, but you will start seeing "streamers" also take the AMD route over time.
As far as I can see the Youtube/Streamer types are either poor and choosing Ryzen as making videos is their bottleneck and its better bang for the buck or rich and choosing the best CPU for each circumstance across a range of computers.
Programmers that game have a different trade-off. A lot of compilers aren't all that parallel and many other tools aren't either. It highly depends on the language and tooling and the program you are writing. Maybe you can get use out of 32/64 CPU with what you are using, but if you are programming a language that is single-threaded mostly (Ruby) then perhaps there isn't a lot of point on anything more than 2/4.
This is the wider issue with threading scaling generally and having two companies chasing differing things. Intel is going hard for more clock speed with minor increments at the moment while AMD is going wider at somewhat lower clock speed. IPC wise AMD has an advantage in many cases but it's by no means always the case. It is complex to choose the right thing if 20% matters to you, but if 20% doesn't then go AMD because at the same price you get a lot more cores.
Whether you then choose Intel depends on the circumstances, but the facts are the facts.
https://www.cpubenchmark.net/singleThread.html
AMD CPUs are leading the chart with lower clock rates than Intel's 9900KS (4.0 GHz base, 5.0 GHz boost). Overclock those AMD CPUs and Intel has no advantage.
https://youtu.be/CGQY9yJqfMs?t=449 <- this is a 36 game roundup from a place that does decent game testing.
Here is another from GamersNexus probably one of the best places for gaming reviews out there https://www.youtube.com/watch?v=yqQ2X1y0jvw
Here is Anandtech on the 9900KS that includes a 3900X, their methods and range of tests is pretty outdated nowadays but still the same picture emerges https://www.anandtech.com/show/14979/the-intel-core-i9-9900k...
The majority of the big outlets say the same thing about gaming and low threaded workloads on these CPUs. Intel wins that still, not by as much as it did but it still wins most of the time and on average about 7%, at worst more like 20-25%. Intel also looses sometimes, it really depends.
Another practical issue is running hackintosh in VM. It was not possible on AMD few years ago and even if it's possible now, it's unlikely as stable and I want to keep that ability.
What about the plethora of security issues that are present in Intel but not AMD CPUs? Not sure there's a case to be made that Intel CPUs have less bugs.
I would say that in the past, some OEMs have very fickle support for AMD lines, and you can run into problems if you have many of them affected by some obscure bug that isn’t getting fixed.
If you need EEC ram?
I know technically AMD supports it for their Ryzen line, but everything I’ve read says it’s up to the motherboard manufacturer to support it. And even if the motherboard manufacturer says you can use ECC ram, it doesn’t mean it will actually “use” it correctly.
So you mainly need to rely on others doing tests on their own systems to confirm if the motherboard actually uses it.
My understanding is that you need to use the EPYC line for guaranteed ECC usage, which is really expensive.
Intel’s W series Xeons start off at a reasonable price, and there are even cheaper Celerons that will use ECC ram.
AFAIK every ASRock AM4 motherboard supports ECC.
Also, most Intel processors do not support ECC at all, except the ones which are competing (in some limited sense, since they are being absolutely crushed at most price points) with Threadripper, in which case, ECC is available across the board (and glorious quad-channel memory).
https://fuse.wikichip.org/news/3352/intel-refreshes-2nd-gen-...
Intel have a reasonable two-way communications system with big customers, they also write their own firmware still, instead of slinging it out to contractors (although AMD are apparently changing that)
crucially they are able to supply 500k procs at a fixed price in a fixed deadline.
AMD are yet to be able to do that for big non-consumer suppliers(is what my hardware contacts tell me that is. )
Video encoding, especially newer codecs like HEVC and VP9 are CPU intensive and SIMD optimized tasks that people are doing right now.
https://developer.nvidia.com/video-encode-decode-gpu-support...
Real-time audio processing is probably the most common case where you see huge gains in SIMD on the CPU but very minimal gains on the GPU. Other examples are certain polynomial approximations and physics simulations.
Also string manipulation, parsing, evaluating a regex. The overhead of getting to the GPU outweighs keeping it on the CPU core.
Comparing the similar priced Intel and AMD CPU's shows Intel has a slight advantage.
Reading the conclusion, it seems for Overclocked performance, AMD is the winner, especially when factoring in large core workloads.
As games and typical "home-user" scenarios are not designed to take advantage of large multi-core CPU's, Intel would appear to be the better choice at the ~$350 CPU level.
https://www.reddit.com/r/buildapc/comments/chco8h/userbenchm...
It appears that AMD are not able to provide either the support (microcode tweaks, firmware heads up, firmware testing and bug reporting) or the volume to be useful.
The conclusion was that AMD want to nail consumer first.
Heh, you know that guy is with / getting a visit from the German BDN 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."
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.
It's such a beautiful architecture, but nobody seems to touch it and get out unharmed.
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.
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! ^_^
I can hear the loud silence of that full stop.
https://www.servethehome.com/ampere-altra-80-arm-cores-for-c...
When they publish these blog posts, it shows to me that they are willing to consider bold moves and that they aren’t afraid to be different. Also, that their architecture has been designed with this agility in mind. I’ve visited their offices and while their corporate culture didn’t seem like the best fit for me, I liked the team and what they are doing.
I'm guessing it was Akamai. Every change we need to make to our Akamai distros is an up sell conversation with them. It's obnoxious. I much prefer Amazon CloudFront.
The WAF was one of the reasons we switched, our existing provider wanted to charge us 10x more just for the WAF than the entire Cloudflare plan is now.
At least it was about 5 years ago when I last used it, I ran from that as fast as I could.
They should just set the price for each feature and charge us based on usage. We're actively migrating to CloudFront because we're sick of playing these games.
Because they benchmarked a drop-in-place commodity replacement as being a better performance-per-dollar for their operation? I'm not sure what's bold about that. I find the notion that they posted a blog entry about this pretty bizarre -- almost rinky-dink. It seems like it's pandering to the AMD fanbase (which I am right now, just as anyone who is paying attention is, but I can still recognize it)
EDIT: Sorry, I didn't realize I stepped into a Cloudflare circlejerk. Apologies and carry on. So brave!
I'm pretty sure it was a "drop-in place" move, and they say absolutely nothing to the contrary. They benchmarked a system that performed better than their existing system for whatever criteria they targeted, and chose it. Story at 11. Saying they "abandoned" Intel is uproarious given that if Intel pushes out a new 128-core Xeon at a decent price, they'd as easily "abandon" AMD for Intel.
But it is notable that these are our first servers wit NO Intel components at all.
Since you're the CTO of Cloudflare, and you posted the OP; Why did you replace the word 'Chose', in the linked title, with the word 'abandoned' here?
That comes across as real click-baity.
Are you running up against some sort of heat limit or optimizing for electricity cost?
Seems like requests per amortized dollar all in would make more sense. Or requests per cubic foot of data center space if that is your limitation.
According to some napkin calculations, the CPU is $5000 and will be kept in service, I guess, 5 years.
The US average price is 13 cents / kWh so this 225 watts CPU will cost $1280 in electricity over those 5 years.
Colocation price is probably low, let's say $50 / 1U server / month. So that's another $3000.
Why is electricity the most important here? I guess because you can't lower the other 2 costs very much? But isn't the CPU price itself based on the power savings it does provide?
CloudFlare is trading half their server density[0] for a ~25% gain in performance-per-watt and performance-per-node[1]. Power is the whole ball-game at scale.
[0] https://blog.cloudflare.com/a-tour-inside-cloudflares-g9-ser...
[1] https://blog.cloudflare.com/an-epyc-trip-to-rome-amd-is-clou...
> We are constrained by the data centers’ power infrastructure which, along with our selected power distribution units, leads us to power cap for each server rack.
Or did you confuse ARM and AMD? ARM I know you need to recompile your code but possibly other changes depending on what... and I believe there's even compatibility difference between ARM chip versions like 6 and 7, etc. but I guess that's why Apple created bitcode to try to help with that.
That service you are talking to might be running on a Xeon Windows Server instance on vmware, or a Neoverse N1 Linux instance over KVM. Whatever was right. Cloudflare specifically say that they try to operate this way, and probably have since day, as does any competent tech company.
It's more the tech-as-a-cost-center company that has such restrictions. The accounting shop or traditional bank where "We use X, Y and Z! We're an Intel and Dell company!", where the desktops are all running Windows 7.
Submission and editorialized title change is by John Graham-Cumming, CTO at Cloudflare.
Not sure what to make of that.
Submitted title was "Why Cloudflare abandoned Intel for AMD for its latest servers".
I'd rather program single core applications on my i5-4690k than any other ryzen series chips including threadrippers with 12+ cores.
I have used two threadrippers for more than 6 months.
Linux still runs faster on i5-4690k which is 6 years old