News for hackers. Stuff that matters.
Re:Ampere switching to in-house CPU designs by fbn79 on Thursday May 20, 2021 @08:14AM (#27220150)
I remember and interesting speech by Linus Torvalds about success of x86 and why is hard for AMD to break into servers that I think can be relevanto for Ampere too:

"I can pretty much guarantee that as long as everybody does cross-development, the platform won’t be all that stable. Or successful.

Some people think that “the cloud” means that the instruction set doesn’t matter. Develop at home, deploy in the cloud.

That’s bullshit. If you develop on x86, then you’re going to want to deploy on x86, because you’ll be able to run what you test “at home” (and by “at home” I don’t mean literally in your home, but in your work environment).

Which means that you’ll happily pay a bit more for x86 cloud hosting, simply because it matches what you can test on your own local setup, and the errors you get will translate better…

Which in turn means that cloud providers will end up making more money from their x86 side, which means that they’ll prioritize it, and any ARM offerings will be secondary and probably relegated to the mindless dregs (maybe front-end, maybe just static html, that kind of stuff).

Guys, do you really not understand why x86 took over the server market?

It wasn’t just all price. It was literally this “develop at home” issue. Thousands of small companies ended up having random small internal workloads where it was easy to just get a random whitebox PC and run some silly small thing on it yourself. Then as the workload expanded, it became a “real server”. And then once that thing expanded, suddenly it made a whole lot of sense to let somebody else manage the hardware and hosting, and the cloud took over. (All emphasis original)"

Re:Ampere switching to in-house CPU designs by madeofpalk on Thursday May 20, 2021 @09:04AM (#27220572)
Most people are essentially developing fancy/overcomplicated wordpress themes. They're at an abstraction where architecture just isn't exposed to them directly, or as much.

I can certainly imagine a 'serverless' platform like Lambda or something where running on ARM is just an implementation detail (if it's not already).

Re:Ampere switching to in-house CPU designs by salicideblock on Thursday May 20, 2021 @10:27AM (#27221520)
That is true, but it is also true that the WordPress and PHP running on that ARM lambda will not be as stable as the x86 lambda if the vast majority of their developers only run x86 at home.
Re:Ampere switching to in-house CPU designs by pjmlp on Friday May 21, 2021 @02:22AM (#27231062)
Their developers can ssh/webshell into a cloud instance, just like we used to do with telnet/X-Windows 20 years ago.
Re:Ampere switching to in-house CPU designs by madeofpalk on Thursday May 20, 2021 @01:53PM (#27224579)
("overcomplicated wordpress themes" was just a dig at how a lot of business is just landing pages or essentially blogs)
Re:Ampere switching to in-house CPU designs by twic on Thursday May 20, 2021 @11:44AM (#27222647)
Linus knows what he knows, but he has some significant blindspots. Here, it's the existence of languages other than C. I think this argument basically doesn't apply to any interpreted or JITted language.

I wouldn't be at all worried about deploying my Ruby, Python, or Java app on ARM, having worked with x86 locally.

That is, as long as the Ruby, Python, and Java development teams themselves have been able to test on ARM hardware themselves!

Re:Ampere switching to in-house CPU designs by mumblemumble on Thursday May 20, 2021 @12:09PM (#27223000)
Kindasorta? Even higher level languages still rest atop the native code. For starters, someone's got to maintain the port of the interpreter or VM. It's going to get a lot more attention if developers are using it as their daily driver.

And then there are all the other native and system packages that you depend on. For example, I do a lot of work in Python, and I would be very hesitant to have anything but an Intel CPU in my workstation. Because that's what our servers run, and I know that a lot of packages I use include native code that has been carefully tuned for Intel CPUs. If I choose AMD or get an M1 Macbook, I'm going to have a much poorer sense of how the things I'm working on would behave in production.

That said, I'd be willing to at least try it. On the other hand, if work started talking about switching to ARM servers in production, I'd instantly be clamoring for a (non-M1) ARM workstation to develop on, because I need to know that I'm not going to get into trouble with packages that get a lot of love in the x86 versions of the native libraries but not so much on ARM.

Re:Ampere switching to in-house CPU designs by outworlder on Thursday May 20, 2021 @01:59PM (#27224666)
> For starters, someone's got to maintain the port of the interpreter or VM

This was a good argument a couple of decades ago. Now? Keep in mind that most devices in this planet are ARM-based, ever since we started talking about 'smartphones'. They have been running these interpreters for a long time now. Most applications and libraries of any importance have been ported.

> If I choose AMD or get an M1 Macbook, I'm going to have a much poorer sense of how the things I'm working on would behave in production.

I thought that's what staging environments were for? Plus scale tests? A laptop provides a pretty poor proxy for a server environment behavior. For starters, they are not really the same spec, are they? Are you running a Xeon-based laptop?

Re:Ampere switching to in-house CPU designs by mumblemumble on Thursday May 20, 2021 @02:07PM (#27224813)
It at least gets you in the same ballpark. I'm not allowed to hook a debugger up to anything in the staging environment, and it's not terribly fun to be stuck, for example, having to guess at how memory fences are behaving in production because all the machines where you can test things empirically have a different memory model.

Or, for example, there's one library I use that includes some inline assembly language routines. Which target SSE, not SVE. So, if we're targeting different ISAs, then my dev box isn't even executing the same code as what would be running in production.

Re:Ampere switching to in-house CPU designs by Sindisil on Thursday May 20, 2021 @05:36PM (#27227636)
> I'm not allowed to hook a debugger up to anything in the staging environment

That seems crazy to me. What bizarre excuse does your organization have for that policy?

To me, part of the point of a staging environment is to provide something as close as practical to prod in which to test, reproduce, evaluate, and investigate issues, be they performance, correctness, or what have you.

Re:Ampere switching to in-house CPU designs by mumblemumble on Thursday May 20, 2021 @06:57PM (#27228483)
Honestly, does it even matter?

Even if it were allowed, it would still be awkward. I want to, as much as is practicable, find problems as early as possible, and not wait for them to get all the way to staging. I'm not really interested in making myself less able to do my job effectively just because I can.

Re:Ampere switching to in-house CPU designs by pjmlp on Friday May 21, 2021 @02:21AM (#27231053)
Back on the glory days of UNIX timesharing, my workstation was a thin client to the actual world.

Nowadays a browser takes that role.

Having a workstation with the same CPU is definitly not an issue as Linus makes it to be.

Re:Ampere switching to in-house CPU designs by freedomben on Thursday May 20, 2021 @11:53AM (#27222794)
Ruby and Python both have significant parts of their implementation and libraries in C, so it's still a significant problem there.

Java less so, but the behavior and performance characteristics are definitely different.

Re:Ampere switching to in-house CPU designs by tachyonbeam on Thursday May 20, 2021 @01:31PM (#27224242)
Definitely. A huge chunk of Python and Ruby packages are written as "C extensions", and if those C extensions are going to get compiled on some platform the developers haven't tested them on, it will make for fun surprise bugs.

I know Java has C extensions for some things too. I'm curious how much code is actually "pure Java", but I've actually rarely seen Java used at any of the places I worked at.

Re:Ampere switching to in-house CPU designs by jayd16 on Thursday May 20, 2021 @11:51AM (#27222773)
That all depends on how far you trust "write once, deploy anywhere." It doesn't have a flawless track record.

I think Linus' comments still apply to those higher level languages. They all rely on platform dependent code.

Re:Ampere switching to in-house CPU designs by spamizbad on Thursday May 20, 2021 @02:54PM (#27225487)
One thing you might encounter is some C-binding building correctly on your machine but not in production (or vice-versa). Sure 99% of what you deploy is Python, Ruby, or JS... but that 1% in C/C++? Well.. you need that 1%.
Re:Ampere switching to in-house CPU designs by softfalcon on Thursday May 20, 2021 @12:57PM (#27223756)
Even if I'm using a JIT-ed product like C#/Java apps, I might still need to use OS-specific features that might differ from the ARM vs x86 flavour of Linux.

I develop and test against docker containers that run on a specific image + arch + base OS.

Even though my environment is supported on ARM, I am still not keen on using ARM servers even if I think it will work. There's just too much risk involved and I don't have the time to set it up and test it thoroughly.

Re:Ampere switching to in-house CPU designs by AdamN on Thursday May 20, 2021 @01:30PM (#27224220)
Even in Python, OS differences and architecture differences pop up between testing, staging, and prod. It's annoying and can definitely cause user-facing problems.

With Python, some of the really useful libraries are written in C so you really need consistency between your environments if you don't want gotchas in your deployment pipelines.

Re:Ampere switching to in-house CPU designs by lmm on Thursday May 20, 2021 @10:35AM (#27221626)
If that were actually an important factor then no-one would do development on OSX, because servers don't run OSX, and the debugging, tools etc. are all a bit different on server *nix from what they are on OSX. And yet we see many developers who'd rather use a Macbook. So while there may be some premium to being able to "develop at home", clearly many developers value other considerations more highly.
Re:Ampere switching to in-house CPU designs by nine_k on Thursday May 20, 2021 @11:44AM (#27222657)
Many people use macbooks as glorified terminals to run a text editor and a browser, while running the actual program being developed on a remote Linux machine.

Even more people use macbooks to develop for the browser, or to develop using platform-independent languages: Python, Ruby, Node, maybe even golang.

Quite a few people then package their backend code in a container and test it in a Linux VM which "Docker for Mac" helpfully provides.

But indeed the fact that Macs used to run on Intel, so the libraries you used in development were mostly that same versions of the same code as in production, must have been helping.

Re:Ampere switching to in-house CPU designs by smoldesu on Thursday May 20, 2021 @01:03PM (#27223838)
>If that were actually an important factor then no-one would do development on OSX

People only develop on MacOS because of how similar it is to Unix, not in spite of it. Go ahead, look at how many developers were using MacOS before OSX. I'll wait. The reason why people develop on Macs is because it's "close enough" to Linux to deploy with, and "good enough" as a desktop to keep tabs on most of your other apps.

> So while there may be some premium to being able to "develop at home", clearly many developers value other considerations more highly.

Let's clear this up: there is no development without development at home. If you work for a company as a developer, you'll be expected to maintain a machine that can consistently build and deploy your software. Unless you're working as a web developer (in which case, may god have mercy on your soul), you're probably going to end up using an x86 machine. Hell, my best friend is a die-hard Apple fan, and even he has admit that he can't really upgrade his Xeon iMac unless Apple offers him an upgrade within the x86 ecosystem.

Re:Ampere switching to in-house CPU designs by lmm on Thursday May 20, 2021 @08:35PM (#27229202)
> Go ahead, look at how many developers were using MacOS before OSX.

There were plenty of other problems with pre-OSX MacOS.

> The reason why people develop on Macs is because it's "close enough" to Linux to deploy with, and "good enough" as a desktop to keep tabs on most of your other apps.

The differences between x86 OSX and x86 Linux are bigger than the differences between x86 Linux and ARM Linux, in my experience. So these machines are also "close enough" to ARM servers.

> there is no development without development at home. If you work for a company as a developer, you'll be expected to maintain a machine that can consistently build and deploy your software.

Most developers have a local development environment and a separate production environment. Developers place some value on having them be similar, but they're also happy to introduce differences between local and prod for the sake of other tradeoffs.

Re:Ampere switching to in-house CPU designs by MonaroVXR on Thursday May 20, 2021 @05:37PM (#27227642)
>Unless you're working as a web developer (in which case, may god have mercy on your soul), you're probably going to end up using an x86 machine. Hell, my best friend is a die-hard Apple fan, and even he has admit that he can't really upgrade his Xeon iMac unless Apple offers him an upgrade within the x86 ecosystem.

Why can't he upgrade? (Genuine question)

Re:Ampere switching to in-house CPU designs by smoldesu on Friday May 21, 2021 @01:05PM (#27236765)
He makes a living provisioning x86 servers, and maintaining legacy code is kinda his entire job. afaik, his main concern is that current Macs won't have enough memory (he's not upgrading to a machine with less than 64 gigs), and that he won't be able to natively debug or work on the same software that his clusters will be running.
Re:Ampere switching to in-house CPU designs by ip26 on Thursday May 20, 2021 @10:38AM (#27221674)
Didn't Macbook-as-developer-machine only really take off after the switch to Intel?
Re:Ampere switching to in-house CPU designs by Edman274 on Thursday May 20, 2021 @10:59AM (#27221961)
That happened in 2006, and I would argue that the effect of them moving from PowerPC to Intel was dwarfed by the effect of people wanting to be able to do things like iPhone app development.
Re:Ampere switching to in-house CPU designs by FractalParadigm on Thursday May 20, 2021 @11:12AM (#27222188)
I think it was a bit of that, mixed with the iPhone launch and subsequent release of the App Store and third-party apps. Limiting app development and distribution exclusively to Macs through Xcode probably forced a lot of people into using them for the first time. Mac OS X also received UNIX certification around this time IIRC, I wouldn't be surprised if that compatibility pushed some more people tired of fiddling with their OS towards the "it just works" Mac.
Re:Ampere switching to in-house CPU designs by smoldesu on Thursday May 20, 2021 @01:05PM (#27223861)
Macbook-as-developer-machine started getting popular around the release of the iPhone. Apple took the opportunity to lock down their ecosystem and allow you to exclusively build and sign applications on their own platform, basically locking out anyone who isn't a Mac owner.
Re:Ampere switching to in-house CPU designs by perl4ever on Saturday May 22, 2021 @02:11AM (#27243988)
I'm not understanding what you're contrasting when you say they locked out people who didn't own Macs.

From 1984 to the iPhone, I believe it was the norm to develop Mac applications on Macs, except for a brief period when the very first models were starved for memory.

Re:Ampere switching to in-house CPU designs by pjmlp on Friday May 21, 2021 @02:24AM (#27231070)
I wonder how did Mac software happened before, given that apparently there were no developers.
Re:Ampere switching to in-house CPU designs by an_opabinia on Thursday May 20, 2021 @10:43AM (#27221740)
The better interpretation seems, people want their servers to look like their MacBooks.
Re:Ampere switching to in-house CPU designs by rkangel on Thursday May 20, 2021 @11:10AM (#27222157)
OSX is a different abstraction layer from processor architecture. Until recently Mac hardware was x86 and all the deployment targets were x86. A VM could take care of all the other differences.
Re:Ampere switching to in-house CPU designs by lmm on Thursday May 20, 2021 @08:41PM (#27229245)
> OSX is a different abstraction layer from processor architecture.

It is, but it introduces enough differences that you're not "at home"; indeed I'd say OSX-to-Linux is a bigger difference for development than x86-to-ARM.

Re:Ampere switching to in-house CPU designs by evgeniysharapov on Thursday May 20, 2021 @10:41AM (#27221706)
To your point there's nothing developed on OSX (and specific to OSX) that runs "in the cloud". There is some niche Swift offering but they are niche.
Re:Ampere switching to in-house CPU designs by nemothekid on Thursday May 20, 2021 @11:42AM (#27222628)
Servers don't run Windows either, but Linux still is still the preferred server platform. Being UNIX-like is way more compatible than a different instruction set altogether.
Re:Ampere switching to in-house CPU designs by kingsuper20 on Thursday May 20, 2021 @09:58AM (#27221176)
>It wasn’t just all price. It was literally this “develop at home” issue.

Whether you're right or not, I think I agree with the idea.

It also seems to me that, in general, working with a different CPU architecture and instruction set implies that the new & improved stuff has to be significantly better to be worth the cost and risk.

At this point, is one really that much better than another? Are large improvements happening at the margin?

Another camel that'll poke it's head in the tent, in large/expensive embedded (which I realize that the parts in the article aren't aimed at) is whether a CPU and it's battlegroup of other stuff will be supported right off the bat by software infrastructure and later on by actually being available in the long run. You have to wonder how out on a limb anyone who used a Motorola 88k felt.

Re:Ampere switching to in-house CPU designs by TheMagicHorsey on Thursday May 20, 2021 @08:57AM (#27220513)
I'm not sure I agree. Many customers are working at a level of abstraction where this objection is not relevant.

For example, if I'm building on Firebase with Cloud Functions I'm so far abstracted from the underlying hardware that these architecture specific issues are less important.

Similarly, if I'm working in Django/Python on AWS RDS, using an ARM server for my EC2 instance might be an issue ... but moving my RDS Postgres instance onto ARM might not make a difference.

Re:Ampere switching to in-house CPU designs by cmrdporcupine on Thursday May 20, 2021 @09:14AM (#27220678)
It's that way, and you're 100% right, until you hit the corner case performance bug that you can't track down and you spend hours trying to track down why some performance counter is incrementing monotonically on one platform but not on the other. Or why some highly threaded code has great throughput on your development workstation but falls down in production and it probably has something to do with differences in lock behaviour, etc.
Re:Ampere switching to in-house CPU designs by vlovich123 on Thursday May 20, 2021 @09:58AM (#27221163)
That’s already true today. At work I have a 12 core laptop with 32gb of RAM. In the cloud is significantly more on all fronts. We encounter all the challenges you mention and still make it work (and yes, it’s hard). That being said, I doubt anyone writing in a managed language or hitting the database will actually care. Databases that have defects on a certain architecture will have resources poured into finding and fixing the issue (although it’s entirely possible there will be cloud lockin for those fixes if they aren’t contributed back)
Re:Ampere switching to in-house CPU designs by MonaroVXR on Thursday May 20, 2021 @05:41PM (#27227708)
This reminds me off that story on hackernews about getting that laptop in the datacenter, because they couldn't figure out why it was slower on the server.
Re:Ampere switching to in-house CPU designs by MaxBarraclough on Thursday May 20, 2021 @10:03AM (#27221208)
> moving my RDS Postgres instance onto ARM might not make a difference

I have no specific knowledge here but I imagine the x86-64 builds are far better tested, regarding correctness. As cmrdporcupine points out, the performance of the x86-64 builds will also have been better studied. Whether it's an issue in practice, I don't know, but if you're looking to minimize risk, there are good reasons to stick with x86-64.

Re:Ampere switching to in-house CPU designs by ksec on Thursday May 20, 2021 @12:59PM (#27223782)
He has a point, although that is not all there is.

Most web stuff dont deploy on x86, they deploy on VM or more specifically JVM. Which is someone else's problem. Amazon and Oracle are both spending resource making sure it works flawlessly.

I mean seriously, most doing Web Development dont even want to touch the VM.

You may want to ask Amazon, who is trying to get as many Graviton 2 produce as possible from TSMC because the demand for them are outstripping supply.

And all of that was before Apple even announced their switch to ARM on Mac.

For some workload it is half the cost on R6g than x86 instances. And for some like Twitter, they will invest into making sure it works with ARM. Those works get filter down the pipe. Medium-Large size companies see ecosystem matures and clear cost benefits they will move.

Re:Ampere switching to in-house CPU designs by smoldesu on Thursday May 20, 2021 @12:57PM (#27223761)
Yep. Wanna know why my M1 Macbook Air never gets any usage? Because all my servers are x86.
Re:Ampere switching to in-house CPU designs by gonzo on Thursday May 20, 2021 @04:19PM (#27226641)
if you're not using it,... want to sell it cheap? ;-)
Re:Ampere switching to in-house CPU designs by Gravityloss on Thursday May 20, 2021 @10:24AM (#27221482)
If you run things on the JVM or some other VM, then you're relying on that having good support for the architecture.
Re:Ampere switching to in-house CPU designs by pjmlp on Friday May 21, 2021 @02:26AM (#27231088)
What would have been of Java without those Solaris SPARC desktops for everyone to try it out.