Seeing as rumours point towards a largely unchanged chassis for the upcoming AS MacBook Pro, what can you foresee being potential early adopter issues? Software compatibility is the most obvious one, I suppose.
Rapid advancement in Apple Silicon in the first couple of years. Looking back at the Intel transition the first Core Duo machines were totally outclassed in a year but the Core2Duo machines which were again totally outclassed a year later before the rate of improvement stabilised and became more conservative. Those first adopter were left with very slow 32bit machines.
Obviously the 32->64 bit transition is not an issue but I can see the first Apple Silicon machines being somewhat conservative in terms of instruction set with perhaps some Apple proprietary SIMD instructions being added after 1-2 years which could leave the first machines without high performance capabilities that Apple ends up leaning heavily on
The other likely issue could be the GPU. These will be Apple’s first in-house desktop class GPUs. Will they be fast enough or will it take 1-2 generations to really get up to speed?
It’s impossible to say. Does your work use virtualized x86 environments? If so an Intel Mac might actually be the better bet in the short term. Does it rely heavily on third party software? Is that software performance sensitive. Again maybe being on Intel for a while would be a good idea until you see the transition timeline (and terms: some software will bump the version and may require a paid upgrade for ARM native). On the other hand if you are mostly, say, writing and browsing the web maybe battery life is a high priority: then I expect an Apple Silicon Mac would be betterInteresting points, cheers. The reason I ask is because I need a new MBP for work, and I was set on the 2020 13” Pro. However, seeing as AS Macs are around the corner, would it be worth waiting on them? Would I regret getting the Intel 13”?
Should we expect the A14 to use ARMv9?Adoption of ARMv8-A when v9 is just around the corner.
Should we expect the A14 to use ARMv9?
You can install new windows and linux on intel macs that apple stops giving os updates for. With apple Apple Silicon it's buy an new mac and you can't boot Linux DirectlyJust off the top of my head...
1. Compatibility: As you're already aware software compatibility is by far going to be the biggest issue. While Apple seems to have far more devs on board and ready to deliver on day one than they did with the PPC-> x86 transition i'd expect still expect this to be a point of friction for at least a year, especially for people who use software from smaller/independent developers. Rossetta 2 is looking pretty solid but there may be edge cases where it doesn't work well or at all.
2. Performance: I still think its too early/overly optimistic to expect a massive performance increase. Apple's silicon may be good, but it's not magic. Furthermore we have no idea what kind of architectural quirks it may have or whether it has SIMD extensions comparable to SSE and AVX. While Apple will certainly make sure there own applications perform well, expecting 3rd party developers to take code they've spent decades hand tuning for x86/SSE/AVX and optimize it for what is initially going to be a very small percentage of the already limited Mac user base is likely unrealistic. It will hopefully happen eventually, but I wouldn't count on it on day one. Factor in a lot of software running through Rosetta 2, and the performance picture just isn't going to be the home run it was when Apple transitioned to x86.
3. GPU issues: This will be the first time Apple produces GPU's for the Mac. There are likely to be some driver teething issues and while they're likely to be a good deal faster than even Ice Lake Intel Integrated, I wouldn't expect them to match a GPU with dedicated VRAM. Longer term this could be an issue as while Apple competes very well here in the mobile space, the laptop/desktop GPU market is a much more competitive space.
4. Lock in: With an Intel Mac, even if something goes catastrophically wrong for Apple (or they just stopped meeting your needs), you always have the option of installing Windows, Linux and a plethora of other OS's. With Apple Silicon your options will be much more limited, and even those that do work will take zero advantage of Apple's Silicon's strengths if they work at all.
5. Legacy Support: Complete inability to work with older versions of macOS or run 32 bit mac software. Peripherals requiring drivers, particularly older stuff may just cease to work and might not be updated.
6. Loss of Windows and x86 virtualization: Self explanatory
7. Design flaws and teething issues: Apple has been known to introduce radically new machines with... issues (see the butterfly keyboard). There are also likely to be unknown/unforeseen issues that don't impact Intel Macs.
I still think its too early/overly optimistic to expect a massive performance increase. Apple's silicon may be good, but it's not magic. Furthermore we have no idea what kind of architectural quirks it may have or whether it has SIMD extensions comparable to SSE and AVX. While Apple will certainly make sure there own applications perform well, expecting 3rd party developers to take code they've spent decades hand tuning for x86/SSE/AVX and optimize it for what is initially going to be a very small percentage of the already limited Mac user base is likely unrealistic. It will hopefully happen eventually, but I wouldn't count on it on day one. Factor in a lot of software running through Rosetta 2, and the performance picture just isn't going to be the home run it was when Apple transitioned to x86.
Rapid advancement in Apple Silicon in the first couple of years. Looking back at the Intel transition the first Core Duo machines were totally outclassed in a year but the Core2Duo machines which were again totally outclassed a year later before the rate of improvement stabilised and became more conservative. Those first adopter were left with very slow 32bit machines.
We do know quite a lot about Apple Silicon, based on how A13 behaves. We know it has very wide back end (up to 50% more execution units per core compared to Intel CPUs). We know it has a very large reorder buffer to efficiently feed that back end. We also know it has huge amounts of cache that exhibits state of the art memory parallelism. This is the reason why A13 is able to match some of the faster Intel and AMD CPUs in per-core performance, while running much lower clock and consuming 5 time less power.
At the SIMD side, we know that current Apple Silicon supports ARM advanced SIMD (Neon) instructions. They are roughly comparable to SSE in that they support 128bit vector instructions. But they also support more data types and more instruction types than SSE. Overall, I’d say they are better designed than Intel SIMD. Apple A13 can do 3 independent 128bit vector operations per clock, which makes it more efficient than Intel CPUs running SSE code, but less efficient than Intel SIMD code that uses 256 or 512 bit vector instructions. Then again, Intel CPUs do suffer from transition penalties and lower clocks when doing that, so... Furthermore, the new CPUs we will see this fall might support SVE, which is functionally similar to AVX512 while being vector width agnostic. If Apple adds another SIMD unit to their backend as I believe they will, Apple Silicon will be able to do 512 bit SIMD operations per clock, but schedule each 128-bit independently, which will make it strictly superior to AVX512.
You are completely right that hand-written code will need to be rewritten to use NEON. Most of the time, it’s not a big deal because Neon instructions are straightforward and symmetric (unlike Intel SIMD where you get multiple ways to do the same thing, not all equally well performing). Software using popular libraries will be compatible from day one as many of these already support Neon.
Based on what we know so far, the everyday performance of Apple a Silicon is fairly certain to exceed Intel and AMD offerings. What we don’t know is by how much. If they ship a quad core chip, we should expect an Ice Lake + 20%. If they ship an 8-core, it will most likely outperform the current i9 in the 16“ model.
As far as the rest of your post goes, I completely agree with all of your points.
I'm not trying to be rude but have you actually used a Zen based system? Outside of edge cases (ex first gen ThreadRipper), thread scheduler optimization for Zen has mostly been about squeezing out the last ~10% and making sure no performance is left on the table. It is not required for Zen based CPUs to perform well. For example I've run both a Ryzen 1700 and a Ryzen 3900X on macOS and they both run fine despite having ZERO thread scheduler optimization under macOS. They do they run a bit slower in certain workloads for example single/lightly threaded stuff on not using the fastest cores on Zen 2 or bouncing threads between CCXs on Zen 1 but it generally isn't a massive issue.Apple Silicon isn't about the CPU alone. It has several co-accelerators that Apple customized with their software such as neural engine, GPU, ISP, video en/decoders, memory/disk controllers, and many more.
It doesn't matter what Intel/AMD comes out in a few years with their arch because they're building them for general public. Apple is building exclusively for themselves and no-one else. They can build custom hardware specifically to accelerate common tasks among their platforms that Intel and AMD can't do effectively or as quickly since several OSes needs to implement it. Think AMD needing Windows to update their OS' thread scheduler to optimize for Zen after a few years.
.....
Saying Apple's just going to always be faster because... hardware built for software and custom parts is incredibly optimistic at best. Don't get me wrong Apple's certainly heavily invested in having the best mobile SOCs on the market as that's where they make the vast majority of their money. But whether or not they can truly keep the A series competitive in the long run outside of the low power space remains to be seen IMHO.
That's not what I'm talking about. I did not say that Apple is always going to be faster than AMD/Intel. My point is that Apple Silicon is always going to be customized and optimized for Apple platforms only and they're going to have custom stuff that Intel/AMD won't have (and they're going to be optimized since Apple owns the whole stack).
There's no point of comparing both because they're not in the same category anymore. Intel or AMD could come out with a 10x faster CPU next year and it still doesn't matter because they still need to do a better GPU, faster memory, disk, neural engine, secure enclave, etc. Apple cares about the entire platform at once, not the CPU. Not only that, they're working on a entire ecosystem of tvOS, macOS, iOS and watchOS.
I am not saying Apple Silicon will always be the best or the fastest or whatever, it doesn't simply matter. People who want the fastest don't go Macs.
You're telling me that you're okay with not having that last 10% if MS never did optimized it for AMD?
If you're running a compatible AMD GPU then yes, just like on Xeon based Macs that don't feature QuickSync, VideoToolBox can utilize the GPU's encode/decode blocks to accelerate video encoding/decoding in a similar manner. It would indeed be faster if Apple had released Ryzen based Macs and optimized the thread scheduler for AMD (that would've been my preferred transition), but the fact is it still kicks the crap out of most Intel based Macs that aren't a Mac Pro.Okay, and does it encode/decode as fast as Intel's QuickSync when exporting videos? You're telling me that if Apple took any time to optimize for AMD, it wouldn't be 10% or more faster?
CUDA is fast, and it certainly has niches where it dominates but at least in Premier, the gap is nowhere near that (10X) large and it is not generally THAT much better than a proper OpenCL or Metal interface.By the way, Adobe Premiere (I think) is like 10x faster on Windows now thanks to nVIDIA's GPU acceleration support. This is what I was talking about, just imagine Apple doing that kind of acceleration but not on GPU but across the entire SoC on a deeper level.
I don't disagree that Apple may find ways controlling the whole stack will benefit them and allow them to differentiate the mac from other computers. As someone who loves them Mac, I sincerely hope Apple is able to deliver on their promises with Apple Silicon. But given Apple's inconsistent track record with the Mac over the last half a decade or so, I'm just not sure a company that makes the majority of its money on smart phones is going to be willing to invest the kind of capital needed to keep the Mac's performance competitive...The last line was just an example of what I mean by software not catching up, it's not the only situation where Apple having the whole stack can help them.
I'm asking myself if it will be on the user side or more on the Apple's framework side. Accelerate framework will likely have to be reworked at Apple to benefit from these instructions. But on the programmer's side, I don't think we see these kind of optimization very often.You are completely right that hand-written code will need to be rewritten to use NEON
As someone who loves them Mac, I sincerely hope Apple is able to deliver on their promises with Apple Silicon. But given Apple's inconsistent track record with the Mac over the last half a decade or so, I'm just not sure a company that makes the majority of its money on smart phones is going to be willing to invest the kind of capital needed to keep the Mac's performance competitive...
I'm asking myself if it will be on the user side or more on the Apple's framework side. Accelerate framework will likely have to be reworked at Apple to benefit from these instructions. But on the programmer's side, I don't think we see these kind of optimization very often.
Thanks for answering !Accelerate framework has had native support for Apple ARM CPUs for years. Even more, it will utilize Apple's proprietary SIMD extensions for some major performance improvements on supported hardware (you don't have direct access to these extensions as a developer at all). If you do your SIMD processing using Apple's <simd.h>, you don't have to do anything.
The problem is people who heavily rely on platform-specific intrinsics. Which reminds me, I will need to rewrite most of my geometry code
Rapid advancement in Apple Silicon in the first couple of years. Looking back at the Intel transition the first Core Duo machines were totally outclassed in a year but the Core2Duo machines which were again totally outclassed a year later before the rate of improvement stabilised and became more conservative. Those first adopter were left with very slow 32bit machines.
and at same time AMD was all 64bit, more pci-e lanes workstations / server chips (intel mac pro had less then the g5), more chipset choice desktops / laptops, etcI think the Intel transition was always intended to start with the 64-bit C2D but Intel botched delivery. I could be wrong but there was all sorts of rumours of the last G5 being a stop gap and going from 64 down to 32 bit can't possibly have been what Steve Jobs had in mind.