Hacker News new | past | comments | ask | show | jobs | submit login

I wish we could just get away from x86 "standard" and move on. If there is something that still needs it, x86 emulation is very efficient nowadays. Just look what Apple has done with this ARM architecture. Even now, Qualcom's ARM processors running Windows are doing a fantastic job emulating x86 as needed.



Apple is the only one making ARM chips fast enough to be competitive even with emulation.

Qualcomm isn't on that level - they're only on par with AMD and Intel without emulation.

The market won't move from the x86 duopoly to Apple's walled garden because they have a fast chip. It's on ARM to make a licensable core that's so much faster than the x86 options that people actually move to it.


> Apple is the only one making ARM chips fast enough to be competitive even with emulation.

I'd modify that to: Apple is the only one making ARM chips fast enough to be competitive, period. All of the other cores from ARM or Qualcomm aren't as fast as the top Intel and AMD x86 CPUs, just maybe more efficient. It is the reason Windows has continued to fail on ARM, because they have to use the same slow off-the-shelf cores as everyone else.

I'm a big Surface fan, and wish they had a version with an Apple M-class SoC in it, but every ARM version (which used the fastest non-Apple ARM core at the time) has been a dog compared to the same model with Intel. Just give me the iPad Air SoC in a Surface...


> All of the other cores from ARM or Qualcomm aren't as fast as the top Intel and AMD x86

I don’t think top cpu perf is relevant. I was working on some C code for science stuff inside Termux on a Pixel 7a, and would’ve been perfectly ok having that perf on a standard format laptop. I even noticed some branch prediction was better than x86. It’s more an issue that no one is making a decent arm in laptop format with nvme, enough ram etc.


> I was working on some C code for science stuff inside Termux on a Pixel 7a

I don't want this to come across as rude or condescending, but who hurt you?


Ha, I was benchmarking arm really, not writing from scratch.


> just maybe more efficient

Isn’t efficiency all that matters nowadays? It’s exactly what gives Apple the crazy battery life and allows them a lot of thermal headroom to drive the chips with high power.


It’s not clear to what extent this is necessitated by the ISA as opposed to caused by the implementation. Recent x86 chips have caught up a lot in terms of efficiency.


Apple's emulation literally implements some x86 in hardware, and they will likely drop that silicon when the transition end, so I won't rely on that


It doesn't implement some x86 in hardware, it implements some memory ordering guarantees in hardware to match what x86 requires.

However that is a very minor implementation, there is no actual x86 in Apple's ARM.

https://www.sciencedirect.com/science/article/pii/S138376212...

TSO could be implemented by other ARM processors easily as well, to provide the same memory ordering guarantees. Besides that the x86 code is translated by Rosetta to ARM instructions.


Besides TSO there are a bunch of ARM extensions designed to match x86 behavior. https://dougallj.wordpress.com/2022/11/09/why-is-rosetta-2-f... I'm curious whether Oryon and X925 implement these instructions and whether other emulators like FEX use them.


He didn't say it implemented any instructions, I would argue that the memory ordering is quite important and part of why other CPU architectures can sometimes be faster or more efficient than x86, it takes effort to guarantee atomicity and apparent read and write ordering. And when a CPU was expending effort that means either transistors or time.


Apple also implements a couple x86 CPU status register flags not present in AArch64.


> Apple is the only one making ARM chips fast enough to be competitive even with emulation.

My big problem is Rosetta 2 doesn’t emulate AVX which more and more software uses.

I work in an AI platform team. I’m not actually trying to do machine learning stuff under it, but I just want to start the Docker containers to test some unrelated functions on my laptop. And that happens to start Tensorflow and pgvector, even though I’m not really using either in anger in this case. And both try to use AVX, and then get a SIGILL, so those containers fail to start.

Maybe should just build Linux ARM Docker containers but trying to get some ARM CI machines to build them with (we could just use our laptops but want to do it properly)


> My big problem is Rosetta 2 doesn’t emulate AVX which more and more software uses.

You can probably blame that on patents. Base x86-64, which includes SSE2, is old enough that all relevant patents have already expired (the x86-64 ISA documentation was first published by AMD 24 years ago, see https://web.archive.org/web/20000829042324/http://www.x86-64...). Other ISA extensions are newer, and might still be threatened by patents.


Maybe patents are involved, but there's a bigger issue too: the Apple chips don't have support for the equivalent Arm instructions (SVE/SVE2) nor wide enough vectors in their SIMD units. Any AVX/AVX2 emulation is going to be dog slow, even if it isn't encumbered by patents.


For my use case, I don’t really care much about AVX performance, since I am using it very minimally.

Using QEMU instead of Rosetta 2 gets past this, since QEMU doesn’t seem to be afraid of those patents, but it makes everything else a lot slower

Maybe, if Apple made available a plug-in API for Rosetta 2, to enable plugins to emulate additional instructions. Then some open-source plug-in could implement the missing AVX instructions, but if Intel tried to claim Apple was infringing on the AVX patent, Apple could (truthfully) say “we have nothing to do with that plug-in, we just created the API it calls”

Another approach would be if Apple open-sourced Rosetta 2, and then a community fork could implement this stuff. I doubt Apple will do that though - I think they view Rosetta 2’s superior x86 emulation as a commercial advantage over other ARM laptop vendors (such as Qualcomm’s ARM Windows systems), and they’d likely view open sourcing it as giving away that commercial advantage


I think it’s more on NVidia, Qualcomm, or AMD to engineer their own ARM based chips which can outcompete x86 variants. Both NVidia and AMD are rumored to be working on general purpose ARM based CPUs. Right now NVidia is likely the one to do it thanks to their absolutely obscene margins giving them more than enough money for R&D.

I personally don’t think there is a lot of incentive for ARM to make the fastest possible cores. They’d be undermining those who are currently paying the most to license their IP. ARM’s real incentive is power efficiency and then letting the licensees use and abuse that for performance gains.


They want to keep x86 going because they have cross-licensed patents which keep their market share a walled-garden. Anything else would invite competition.

Mind you, it's not just them. MIPS was pretty shady with their patent that even if trapped and implemented in software they sued so you could not compete without licensing and losing your margen. SPARC was open... until UltraSPARC IIRC and then they tried something similar.

https://www.edn.com/mips-lexra-both-claim-victory-in-markman...

> MIPS said the court’s ruling Friday rejected Lexra’s attempt to limit the claims of U.S. Patent No. 4,814,976 to hardware implementations of the unaligned load and store instructions (LWL, LWR, SWL, SWR) of the MIPS instruction set architecture. MIPS argues the claims should also cover software implementations like Lexra’s

That is what is so important about it RISC-V is that it being an open ISA creates a commodity with true competition instead of competing oligopolies.


Multi arch support has never been better and yet x86 is still competitive. Maybe in 10 years everything will be risc V but it doesn't seem to be happening very fast.


> That is what is so important about it RISC-V is that it being an open ISA creates a commodity with true competition instead of competing oligopolies.

Not just that, but also by being fairly vanilla/boring about a lot of things in the ISA too. Thus letting the ISA itself be less an impediment to being compatible with ARM and x86_64 as far as behavior for memory ordering and such.


Those patents are starting to expire. Original x86-64 is probably free and clear now, being released in 2001. The big sticking point for general code out there (cmpxchg16b) was released in 2008, so it only has a few more years left.

If anything this x86 "reshaping" sounds like a way to get some new patent bricks for the wall of the garden.


I simply can't comprehend why people are so all-in on ARM. Snapdragon X Elite support in the Linux kernel is still a work in progress. There's still no GPU driver. It's been months. Is this going to happen every time there's a new Snapdragon? How is this sustainable long-term? If Intel or AMD release a new CPU architecture, it's basically supported out of the box, even if it might need some bug fixing (which actually happens fairly regularly).

How does Qualcomm's commitment to Linux and an open platform actually stack up to x86? Because the biggest benefit of x86 is that it forces interoperability through heavy standardization and established culture. Every ARM manufacturer is basically doing their own thing and it requires the manufacturer to give a crap about Linux or a volunteer group months or years of effort to get things running (see Asahi).

And what happens when an ARM-based device is EoL?


IIRC Apple chips are particularly good at x86 emulation because they have a special option to run with an x86-compatible memory model which is stronger than the standard arm one. A generic arm chip is not necessarily good at x86 emulation.


It could be, if it has fast RCpc.


What's wrong with x86? According to Jim Keller the disadvantage is minor:

https://www.youtube.com/watch?v=rfFuTgnvwgs&t=474s

(I wish Linus let him finish though)


What have they done with ARM? Cut out all I/O put memory on package and pay for the latest TSMC node?

I think ARM is overhyped because people see Apple's success and just assume aarch64 > x86_64


>I think ARM is overhyped because people see Apple's success and just assume aarch64 > x86_64

It seems like that's the case

"ARM has bigger share in people's minds than actual numbers"


No one "needs" a particular architecture. It's just that some of them are better suited to certain problems than others.

If you really want to get rid of something and "move on" why not get rid of the wild class of devastating speculation bugs that every OOO processor in existence currently has?

Far more valuable than worrying about how instruction bits are arranged in a stream.


The main problem with non-speculative options isn't hardware it's performance. You can turn x86 CPUs into in order machines without respinning hardware. Nobody wants to do it because it's slow as molasses. If there was a completely alternative design that was better than speculative execution wholesale then it'd be back to being the original "just go to the fastest thing".


why not get rid of the wild class of devastating speculation bugs that every OOO processor in existence currently has?

Because almost no one but cloud-computing providers have a threat model that justifies the performance hit (and, not coincidentally, the carbon footprint) associated with crippled CPUs.


Laptops could do with the power use reduction.


I think you are underestimating how many times slower processors would be without any speculation at all. It would mean having to wait dozens of cycles on every branch so you can know whether it was taken before executing the next instruction, for example.


Speculative execution like almost every modern CPU performance trick decreases power use.

Mobile SoCs have OOO.


Yes people need a particular architecture.

There are many legacy systems that still rely on IBM chips, mainframes, etc.

They can’t just move on without rebuilding the entire system from scratch. a monumental and risky proposition.

Even if tomorrow everyone went all in on arm, risc5, whatever, x86 is here to stay.


If anyone knew how to get rid of all the speculation bugs, don’t you think they’d do so? What concretely are you proposing Intel and AMD do?


Qualcom's chips do a very good job, but it's not perfect. Not sure if it's the chip or software, but if you need things to work (on either Apple or Windows ARM), emulation isn't suitable still. Apple gets away with it because they just wrote off the gaming market and everything else was forced to quickly migrate to the new platform.


>I wish we could just get away from x86 "standard" and move on.

But actually why? is there reason that isn't licensing?

Because perf or perf/watt is not the reason


The best reason I can think of is aesthetic: x86 is the ugliest (extant?) ISA.

Nobody wants to read, write, or think about x86 assembly. Most RISCs are easy and enjoyable to read, reason about, and write by hand.


Move on to what? ARM? Is ARM better in every way than x86?

(genuine question)


Apple have shown that you can get x86-tier performance, but it generally costs a similar amount of silicon and engineering effort as those x86 devices.

The lack of other competitors managing this suggest the arm ISA isn't "fundamentally" better at delivering that performance, it doesn't seem easier in engineering effort or silicon cost. The Apple products tend to outperform in perf/watt though, but that's hard to really compare as they're focusing on a slightly different market that favors that over "Peak Server Performance".

Is ARM better from a license POV? I also don't think so. Some people claim they want away from the "monopoly" of x86 copyright and license shenanigans from Intel and AMD, but I'd argue ARM control their ISA to a similar degree - you need to buy it off ARM to use it, and they have the right to revoke that license. See the Qualcomm/Nuvia legal mess, and that was when both companies were paying ARM already.

So in many ways I see ARM vs x86 as the "Coke v Pepsi" of ISAs, they seem pretty similar from the outside, serving pretty much the same use case (even if how they go around serving that use case is different), but some people online have rather dramatic opinions they confuse with "Proven Objective Fact".

RISC-V might be a good path away from just repeating the same "Single company controls all licensing" problem, but that's similar to how arm was 15 years ago - there's not really any proven high-performance cores approaching common "desktop" use cases yet, and at least ARM had to do a pretty clean re-write to go from then to now in armv8. Some of the things they "fixed" were very non-obvious until you actually tried to make a large, superscaler speculative implementation too - and who knows what pitfalls there may be in current ISA designs that trip over the "next" performance increasing techniques. Maybe they've managed to avoid all them for the near future, but like many things in R&D we don't really know until we get there.


Well put.

“Should we move off x86” is often really “should we leave Intel/AMD”.

Maybe if there was another competitor making x86 chips they discussion would sound different.

As it is, if you don’t like the offerings that you’re being given you simply have to switch architectures.


It’s not. There are a lot of ways it’s cleaner but x86 handles some things (debugging and handling of traps, for example) better.


To RISC-V, due to its licensing.

ARM is yet another dead end.


I think for most 'general' computing, yeah Arm is fine. It has been that way for a while with smart phones and tablets being the primary device many people use now. Either you can run it through a compatibility layer like Rosetta 2 or it shifts to native. The performance hit is unlikely to really be felt for something like Word.

But the traditional gaming market (not mobile, I am not dismissing mobile but it is not the traditional market that is relevant to this conversation) is likely not going to make that shift anytime soon.

To the best of my knowledge I have yet to see any ability for a consumer to build their own ARM pc (someone correct me if I am wrong here?) and there are many gamers that will fight tooth and nail to not give that up.

If consoles did it, it would most likely mean a break in backwards compatibility or a lot of investment in emulation.

With consoles often being the devices that set a performance standard for PC's, I doubt they would be moving to ARM in the next generation so would not happen until the 10th generation. We are likely 2-3 years away from hearing about gen 9, and then another ~8 years until ARM becomes a conversation for any serious game console. There just would not be any incentive for PC to make a serious switch until that point (or around that time) since it would also fruther complicate game development.

There just have not been much movement in this regard. We are seeing a few ports come to Mac (and iPhone) but those are the exceptions.

Not saying that companies are not trying to try to push Arm hardware for gaming, try to claim that their compatibility layer is just fine for playing games on Windows. I am sure some people will do it. But I just don't see any serious effort to push Arm into gaming outside of mobile devices.


> If consoles did it, it would most likely mean a break in backwards compatibility or a lot of investment in emulation.

Consoles tend to break compatibility every like couple of generations anyway. The PS5 is only compatible with PS4, for example, because the PS3 used the PowerPC-based Cell. Also, Nintendo has been using ARM since like, the Gameboy Advance (Fun fact is that in handhelds nintendo tended to use the previous generation's CPU as a sound chip, and would use it when running previous generation carts) (Nintendo home consoles before the switch used PowerPC. The Nintendo 64 used MIPS)

I agree with you on the custom PC market, but that has to be pretty small compared to consoles.


> Consoles tend to break compatibility every like couple of generations anyway.

True, generally with an architecture change. (Nintendo being the exception because... well Nintendo).

Recently though, especially with digital stores, companies have been getting more flack for it. There was a lot of concern over Sony being non-commital about the PS5 before release regarding PS4 compatibility.

Xbox was celebrated when they started their initiative last gen to add support for Xbox 360 and OG xbox games (while limited, it was something).

I am just not convinced that gamers are going to be as forgiving of it happening again in the digital age as they were before.

> I agree with you on the custom PC market, but that has to be pretty small compared to consoles.

Oh for sure, but I think it also tends to be a very vocal group. There is a reason `pcmr` is a thing.


This. I understand web devs can just use whatever runs Google Chrome but the real world is a bit more complex.

CS2 has over 900k online on Steam right now... Where people push the game to 200fps plus. A PC that can do that can also do anything else. Dev work, VMs, Docker, whatever. Why switch to ARM? Because their soy starbuxx latte workplace gets 2-3h more in battery life?

But I have to disagree on

>With consoles often being the devices that set a performance standard for PC's, I doubt they would be moving to ARM in the next generation so would not happen until the 10th generation. We are likely 2-3 years away from hearing about gen 9, and then another ~8 years until ARM becomes a conversation for any serious game console. There just would not be any incentive for PC to make a serious switch until that point (or around that time) since it would also fruther complicate game development.

Consoles used to be MIPS, POWERPC and stuff and PCs where x86 "back then".

XBOX is like the first x86 console. So I dunno your point here. Really man.

???

Switch is ARM right. Nintendo Switch.

Sony and MS went from POWERPC to x86 as IBM could not make a PPC CPU fast enough and ARM was not good in a big formfactor. Sony and MS use AMD hardware but in PCs Nvidia GPUS are still the best, yes they are my experiece personally and look at numbers. XBOX1 used to be nvidia gforce 3 but abd pricing. So all went AMD later. PS3 was CELL 8 core PPC and Nvidia 70xx GPU. 360 was PPC and AMD gpu. Wii was PPC and AMD gpu.

>There just have not been much movement in this regard. We are seeing a few ports come to Mac (and iPhone) but those are the exceptions.

Nobody on Mac is actually a gamer.

>(not mobile, I am not dismissing mobile but it is not the traditional market that is relevant to this conversation

I will btw. I do not understand why people here love mobile games. No wait I do. They are easy, quick and P2W. They are busy adults or kids or pajeets with no money.

In mobile, what sells? Gatcha games, pay to win trash. There are some gems but few and far between. They are built in a predatory way to take your money.


> Consoles used to be MIPS, POWERPC and stuff and PCs where x86 "back then".

True, but at those times it was far more common for games to ship on one console or skip PC entirely. Even during the Xbox 360 generation which was still powerpc based.

My point there is less that they won't move to ARM for consoles, just that at this point I would be shocked if they were moving to ARM for the 9th gen and we don't start hearing rumors about it now.

And that doing so would have an impact on developers.

> Nobody on Mac is actually a gamer.

I always hated this generalization, Mac is my preferred OS but because I can't really game on it (despite it being quite powerful hardware) I have my custom build desktop. I would much prefer to have just my MBP.

> I will btw. I do not understand why people here love mobile games. No wait I do. They are easy, quick and P2W. They are busy adults or kids or pajeets with no money.

I agree with you mostly here. But the reason I mention this is I have gotten in an argument about what is "real" gaming and people love to point out how much mobile games make as if that is the important metric.

I think there are just 2 different forms of gaming. Neither are necessarily wrong, but they are fundamentally different.


Although some companies are trying to promote ARM hardware for gaming, current efforts still seem to be focused on mobile devices. Overall, the transformation of the traditional gaming market will take time, and more obvious changes may be seen in the next few generations of consoles.


Why? AMDs new x86 is just as good as M3.

For gaming, emulation is shit.

I use a desktop gaming PC and I can do anything. Use it as a workstation too. Why should I switch to ARM.

Why should our enterprise laptops be ARM?

Just please, you are just spouting nonsense.


Even if Apple supports x86 emulation, they are doing a subpar job when it comes to actually running things. I got a Mac recently and I was very surprised to see Docker running as an underprivileged second class citizen, literally breaking a lot of flags and features in tools like docker-compose. Come to think of it, it's not even limited to x86 containers (which do run with rosetta) but Docker as a whole.

So far in emulation, trying to emulate a full blown x86 Linux distro was excruciatingly slow for me, not even remotely usable.

I don't know where this incredible x86 emulation people are talking about on Mac is hiding. Maybe it's some legacy apps I never used. Everything I did try so far was simply not good enough.


Docker on Mac is running a VM in a hypervisor to run Linux.


> I don't know where this incredible x86 emulation people are talking about on Mac is hiding.

It's in Rosetta, running x86 binaries compiled for older macOS versions.

The state of Docker in macOS has never been good, with Orbdev being the best Docker compatible container engine for desktop Macs.


What flags are you talking about? Everything here runs just fine out of the box. Just slow for x86 images and slow compared to running docker engine or podman on Linux.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: