Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

crevalic

Suspended
May 17, 2011
83
98
That's true, but I was speaking more on Rosetta and translation, rather than emulation. It doesn't work on everything, but tranlation works really well when it does work. WOA doesn't do translation. (it does do some library based stuff, but it's a pale comparison to what Rosetta does. Not to mention that there's hardware there to support rosetta..
You have no idea what you are talking about, Rosetta 2 and WoA are technically very similar and they both do translation. How long until you bring up more false trash like "M1 8GB = Intel 16GB"?
And there is no evidence that there are any hardware optimizations for Rosetta on M1, the only thing I'm aware of is support for an alternate memory mode.
 
Last edited by a moderator:

Applefan2015

Cancelled
Feb 22, 2015
349
233
I’ll just get my popcorn.....
 

Attachments

  • A616C047-A763-4FE6-A3C1-B4F99CD7D365.gif
    A616C047-A763-4FE6-A3C1-B4F99CD7D365.gif
    114.4 KB · Views: 45
Last edited:

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
You have no idea what you are talking about, Rosetta 2 and WoA are technically very similar and they both do translation. How long until you bring up more false trash like "M1 8GB = Intel 16GB"?
And there is no evidence that there are any hardware optimizations for Rosetta on M1, the only thing I'm aware of is support for an alternate memory mode.
I see no evidence for WOA using translation, got any references for that?

As for the second, You say it yourself, the alternate memory mode. Rosetta wouldn't be as good without it.

From: https://www.infoq.com/news/2020/11/rosetta-2-translation/

"One major concern with Rosetta is performance. With the transition from PPC to x86, one factor slowing down Rosetta was the different byte ordering used by the two platforms, with PowerPC being a big-endian architecture, and x86 little-endian. While byte ordering is not a problem for the transition from x86 to ARM, another issue related to memory, namely the memory consistency model total store ordering (TSO), could hamper performance in this case. To prevent this from happening, Apple added support for x86 memory ordering to the M1 CPU, as Robert Graham noted on Twitter."

As for the 8G=16G, don't be daft.
 
Last edited by a moderator:

cmaier

Suspended
Jul 25, 2007
25,405
33,474
California
I see no evidence for WOA using translation, got any references for that?

As for the second, You say it yourself, the alternate memory mode. Rosetta wouldn't be as good without it.

From: https://www.infoq.com/news/2020/11/rosetta-2-translation/

"One major concern with Rosetta is performance. With the transition from PPC to x86, one factor slowing down Rosetta was the different byte ordering used by the two platforms, with PowerPC being a big-endian architecture, and x86 little-endian. While byte ordering is not a problem for the transition from x86 to ARM, another issue related to memory, namely the memory consistency model total store ordering (TSO), could hamper performance in this case. To prevent this from happening, Apple added support for x86 memory ordering to the M1 CPU, as Robert Graham noted on Twitter."

As for the 8G=16G, don't be daft.

WOA seems to use translation. https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation

“A service caches these translated blocks of code to reduce the overhead of instruction translation and allow for optimization when the code runs again. The caches are produced for each module so that other apps can make use of them on first launch.”

TSO is, in a sense, actually merely turning off a feature (memory access reordering), and while it certainly speeds up some apps in some situations, it‘s not a universal win (sometimes it speeds things up, and sometimes it could slow things down). It certainly makes emulation simpler, by preventing the need for memory blocks.
 

leman

macrumors Core
Oct 14, 2008
19,522
19,679
I see no evidence for WOA using translation, got any references for that?

WOA uses x86 to ARM transpilation, same as Rosetta 2. This is a well known fact.


As for the second, You say it yourself, the alternate memory mode. Rosetta wouldn't be as good without it.

That is correct. Windows has a lot of issues with memory ordering here. Their default strategy boils down to “let’s just hopes that it does not crash”. They have multiple transpilation modes, the most conservative of which seems to insert memory barriers everywhere.
 

crevalic

Suspended
May 17, 2011
83
98
I see no evidence for WOA using translation, got any references for that?

As for the second, You say it yourself, the alternate memory mode. Rosetta wouldn't be as good without it.

From: https://www.infoq.com/news/2020/11/rosetta-2-translation/

"One major concern with Rosetta is performance. With the transition from PPC to x86, one factor slowing down Rosetta was the different byte ordering used by the two platforms, with PowerPC being a big-endian architecture, and x86 little-endian. While byte ordering is not a problem for the transition from x86 to ARM, another issue related to memory, namely the memory consistency model total store ordering (TSO), could hamper performance in this case. To prevent this from happening, Apple added support for x86 memory ordering to the M1 CPU, as Robert Graham noted on Twitter."

As for the 8G=16G, don't be daft.
?

Hmm, what would you call a person trying to evaluate the performance of (pre-release) WoA x86(-64) emulation by running it in a limited virtual machine and then comparing it to Rosetta 2 running on bare metal? Daft?

?
 

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
WOA seems to use translation. https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-x86-emulation

“A service caches these translated blocks of code to reduce the overhead of instruction translation and allow for optimization when the code runs again. The caches are produced for each module so that other apps can make use of them on first launch.”

TSO is, in a sense, actually merely turning off a feature (memory access reordering), and while it certainly speeds up some apps in some situations, it‘s not a universal win (sometimes it speeds things up, and sometimes it could slow things down). It certainly makes emulation simpler, by preventing the need for memory blocks.
Interesting, thanks for the information.
 

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
WOA uses x86 to ARM transpilation, same as Rosetta 2. This is a well known fact.
I stand corrected. That particular reference is a bit odd though. WOW64 is to run x86 apps on x64 systems seamlessly, and even my Windows machine has SYSWOW64. Perhaps it does both on an Arm machine.
 

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
?

Hmm, what would you call a person trying to evaluate the performance of (pre-release) WoA x86(-64) emulation by running it in a limited virtual machine and then comparing it to Rosetta 2 running on bare metal? Daft?

?
I agree WOA runs better than a pure emulator, I have no argument with that, but it doesn't seem to have some of the benefits of rosetta in my own usage. Live and learn.
 

crazy dave

macrumors 65816
Sep 9, 2010
1,454
1,230
That is correct. Windows has a lot of issues with memory ordering here. Their default strategy boils down to “let’s just hopes that it does not crash”. They have multiple transpilation modes, the most conservative of which seems to insert memory barriers everywhere.

I wonder if Qualcomm chips will also come with a TSO mode in future designs to streamline this. There’s a new snapdragon WoA laptop chip this year (not competitive with the M1 but should be much better than previous offerings), but who knows if that will have it given that x64 emulation is still in beta. Design timetables and all that.
 

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
?

Hmm, what would you call a person trying to evaluate the performance of (pre-release) WoA x86(-64) emulation by running it in a limited virtual machine and then comparing it to Rosetta 2 running on bare metal? Daft?

?
One additional comment here, I've been running VM's for a VERY long time, esceciually Windows VM's, and WOA on my MBA is not as fast as even my lower end Windows PC's running VM's, even beta level OS's -- hence why I thought it was different than rosetta, as that runs really well on my MBA. So I really wouldn't call it daft as I was comparing VM performance to VM performance.
 

Gerdi

macrumors 6502
Apr 25, 2020
449
301
That is correct. Windows has a lot of issues with memory ordering here.

This is an assumption not a fact. And it is not even true either.
The short answer as to why this is the case is, that a user mode multi-threaded application typically does not have any particular requirements on memory ordering outside of synchronization.
 
Last edited:

Gerdi

macrumors 6502
Apr 25, 2020
449
301
One additional comment here, I've been running VM's for a VERY long time, esceciually Windows VM's, and WOA on my MBA is not as fast as even my lower end Windows PC's running VM's, even beta level OS's -- hence why I thought it was different than rosetta, as that runs really well on my MBA. So I really wouldn't call it daft as I was comparing VM performance to VM performance.

You also need to distinguish x64 and x86 emulation. Since x86 emulation being inherently harder than x64 emulation, the emulation performance of x64 hence is significantly faster. In addition x64 emulation does not go through a WoW64 layer. WoA only has 2 WoW instances one for x86 the other for ARM32.

Point in case, when running Mixcraft 9 Pro Studio (similar to Logic Pro) on my Surface Pro X, the x86 variant already starts choking when only having a few tracks, VST intruments and multi-effects - the x64 version is much faster.
 
Last edited:

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
You also need to distinguish x64 and x86 emulation. Since x86 emulation being inherently harder than x64 emulation, the emulation performance of x64 hence is significantly faster. In addition x64 emulation does not go through a WoW64 layer. WoA only has 2 WoW instances one for x86 the other for ARM32.
Almost everything I run these days is x64..
 

Gerdi

macrumors 6502
Apr 25, 2020
449
301
It's not as compatible or as fast as I would expect, that's all.

Are you expecting native speed then? For x64 emulation we are looking around 60%-75% native or so - for x86 apparently less. And as i said earlier limitations and speed are very comparable to Rosetta 2 if we look at x64 emulation.

When we are looking at QEMU however, we are talking at orders of magnitude slower here.
 
Last edited:

cmaier

Suspended
Jul 25, 2007
25,405
33,474
California
Are you expecting native speed then? For x64 emulation we are looking around 60%-75% native or so - for x86 apparently less. And as i said earlier limitations and speed are very comparable to Rosetta 2 if we look at x64 emulation.

One other issue that differentiates is that old Windows apps have a smaller percentage of code that is OS sdk than more modern Windows apps and Mac apps. In other words, as you go back and time, more of the functionality of windows apps is custom-written by the app developer as opposed to calling microsoft’s sdks to provide functionality.

It’s obviously more performant, during translation, the more you rely on SDK calls, because those don’t need to be translated - the translator can just call the natively compiled routines.
 
  • Like
Reactions: thedocbwarren

Gerdi

macrumors 6502
Apr 25, 2020
449
301
It’s obviously more performant, during translation, the more you rely on SDK calls, because those don’t need to be translated - the translator can just call the natively compiled routines.

For Windows that is only true for x64 - not for x86 applications. For x86 only the kernel components are native - while for x64 the user level dlls, where much of the SDK is implemented, are native in addition.
You can see this clearly, WoW ships with 3 sets of dlls: ARM32, x86 and ARM64 - x64 dlls are notably absent :)

But otherwise you are right of course, having kernel plus all SDK native is a big advantage.
 
Last edited:

Joelist

macrumors 6502
Jan 28, 2014
463
373
Illinois
But Rosetta 2 isn't actually an emulator is it? My understanding is the first time you launch the program Rosetta 2 does an analyze and recompile into native code and stores that code, then runs that native bundle thereafter.
 

Gerdi

macrumors 6502
Apr 25, 2020
449
301
But Rosetta 2 isn't actually an emulator is it? My understanding is the first time you launch the program Rosetta 2 does an analyze and recompile into native code and stores that code, then runs that native bundle thereafter.

That would be static (AOT) translation. AOT is only possible if the application does not generate code at runtime. So Rosetta must at least have a JIT mode too.
Microsoft is always doing JIT with caching on mass storage.
 
  • Like
Reactions: jdb8167

bobcomer

macrumors 601
May 18, 2015
4,949
3,699
Are you expecting native speed then?
No.

or x64 emulation we are looking around 60%-75% native or so - for x86 apparently less.
That's really low balling it compared to my experience with Windows VM's on Windows, more like 80-90%. And maybe higher on some things. As long as you allocate enough RAM and have enough cores. I really don't see any difference on x86 vs x64 on Windows. Note that my experience is on x86/64 and Windows, so I agree my standards for VM's are high. They've been doing it a long time, and their Hypervisor is still the best one I've seen for PC level stuff.

When we are looking at QEMU however, we are talking at orders of magnitude slower here.
Very true. The "Force Multicore" does make it a bit more tolerable, but it really isn't a final solution at all.
 

Ratsaremyfreinds

macrumors regular
Original poster
May 12, 2019
215
108
i dont understand why anyone would not want intel to compete with apple. well if you had applle stock id understand. but other wise i want intel and amd to keeep apple on there toes
 
  • Haha
Reactions: Maconplasma
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.