4 ms·
I thought this was the most interesting paragraph. > What Can't Be Translated? > Rosetta can translate most Intel-based apps, including apps that contain just
by nickcw 6y ago
I thought this was the most interesting paragraph.
> What Can't Be Translated?
> Rosetta can translate most Intel-based apps, including apps that contain just-in-time (JIT) compilers.
I guess translation of JIT compiled stuff implies this isn't a once of translation. I guess translating plugins implies that too.
It sounds like very clever stuff to me!
> However, Rosetta doesn’t translate the following executables:
>
> Kernel extensions
Fair enough
> Virtual Machine apps that virtualize x86_64 computer platforms
I guess most VMs rely on hardware virtualization which would be tricky to translate well.
> Rosetta translates all x86_64 instructions, but it doesn’t support the execution of some newer instruction sets and processor features, such as AVX, AVX2, and AVX512 vector instructions. If you include these newer instructions in your code, execute them only after verifying that they are available. For example, to determine if AVX512 vector instructions are available, use the sysctlbyname function to check the hw.optional.avx512f attribute.
These sound like they should be relatively straight forward to translate. I wonder why they didn't? Lack of time? Or perhaps because translating them means that they don't run fast enough to be useful and the fallback paths are likely to run quicker.
- leeter 6y agoRE AVX and above: My guess is that they are licensing the Transmeta IP which doesn't include those licenses IIRC. So unless they wanted to get sued they'd have to be careful. I suspect some SSE instructions may also not be supported as I don't recall if Transmeta had a license up to SSE4.
- monocasa 6y agoI doubt they're licencing Transmeta. Transmeta never had an x86_64 processor.
- leeter 6y agoTrue, but they did have the license IIRC. Otherwise they'd be licensing from VIA or whomever owns that license now. That license AFAIK would include up to SSE4. It's not like Apple is going to tell us. But the JIT nature makes me think it's Transmeta as the company currently holding that IP is a "Patent enforcement entity".
- monocasa 6y agoOr they're just giving Intel the finger, banking on having a warchest of defensive patents from acquiring nearly every promising fabless CPU startup of the past 15 years. Edit: Also, I don't think Transmeta's license would include SSE4. They were defunct at that point.
- leeter 6y agoPossible, I kinda doubt they would as Intel could just cut them off at the knees as they threatened MS with for the Surface Pro X. There is the remote possibility they are licensing from Intel too. At the end of the day I doubt they are going to tell us. Once people start getting the dev machines they can find the edges of the implementation. I suspect it has some quirks we'll discover over time. Regardless this is speculation.
- monocasa 6y ago> I kinda doubt they would as Intel could just cut them off at the knees And then Apple would cut Intel off at the knees in return. Microsoft doesn't really have any CPU design patents, Apple has thousands, so they'd be treated differently.
- ghaff 6y agoThe original Rosetta was based on technology from a company called Transitive which was acquired by IBM a couple years after Apple's PowerPC to Intel transition. [1] It's not immediately obvious what technology licenses are involved with this new incarnation of Rosetta. [1] https://en.wikipedia.org/wiki/QuickTransit https://en.wikipedia.org/wiki/QuickTransit
- himinlomax 6y agoTransmeta died what, 20 years ago? All their patents have now expired.
- ac29 6y agoWikipedia says defunct in 2009, though the decline started earlier.
- monocasa 6y ago> These sound like they should be relatively straight forward to translate. I wonder why they didn't? Lack of time? Or perhaps because translating them means that they don't run fast enough to be useful and the fallback paths are likely to run quicker. Probably because ARM's NEON doesn't have 256bit registers, greatly complicating the implementation.
- NovemberWhiskey 6y agoI would guess that's right - AVX only came onto the scene in 2011 so most code will be able to fall back on an SSE implementation if AVX is unavailable, and presumably an AVX emulation which is a bad fit versus the hardware is actually slower than the SSE emulation. A quick search suggests a couple of people already running into this issue with the older generation Mac Pros that also don't support AVX but it doesn't seem that widespread.
- ac29 6y agoNEON doesn't, but SVE/SVE2 does: https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-instruction-emulator/resources/tutorials/sve https://developer.arm.com/tools-and-software/server-and-hpc/... Apple might not be using this in their first ARM Mac chips, but I wouldn't be surprised to see them use it in future chips.
- jsjohnst 6y ago> I wonder why they didn't? It could come down to licensing issues. The ISA extensions for AVX/AVX2/AVX512 are under different licensing and to my knowledge, Intel/AMD are the only legal license holders (and Intel would be the only holder were it not for the arrangement between Intel and AMD formed due to x86_64)