I'm not sure they have to explain. By nature of the M1 architecture (Neural Engine, etc), the M1 chips have a more optimized architecture than x86, for how Apple writes these particular programs/features.
You can't possibly tell me that neither the CPU nor GPU in Intel Macs is capable of handling these features. That's just silly. The problem is that Apple implemented them
wrong, and in so doing, made the functionality useless except on specific hardware.
Let's take a look at the list more carefully:
- Portrait Mode blurred backgrounds in FaceTime videos
Nobody else has trouble doing this (Zoom, Google, etc.) on the crappiest low-end devices from ten years ago. In JavaScript. It can also be done on the server side, if you prefer. This one is a laughable level of incompetence, IMO.
- Live Text for copying and pasting, looking up, or translating text within photos
My lowly iPhone 6S has no trouble doing this. Then again, how would you even do that usefully with a laptop!?!
- An interactive 3D globe of Earth in the Maps app
Google Earth did this fifteen years ago.
- More detailed maps in cities like San Francisco, Los Angeles, New York, and London in the Maps app
This *might* have hardware performance reasons, but that seems unlikely.
- Text-to-speech in more languages, including Swedish, Danish, Norwegian, and Finnish
This has nothing to do with hardware. You either have a model for a language or you don't.
- On-device keyboard dictation that performs all processing completely offline
- Unlimited keyboard dictation (previously limited to 60 seconds per instance)
Ewww. This is the moment when I realized that dictation is sending audio out over the Internet.... What privacy?
Everything on this list screams "failure to abstract properly".
The fact of the matter is that Apple
shouldn't be programming to the neural engine. They should be programming to a standard API like OpenCL, OpenGL, or TensorFlow, and their
implementation of that standard API should implement the functionality in the most efficient way possible on any given device,
including using the neural engine, if available.
By using a high-level API, you can write the code once and deploy it on everything from the iPhone 6S up through current hardware, plus every currently supported Mac, rather than being able to run it only on the very latest Mac hardware (and no iOS hardware).
And using the right level of abstraction isn't just about compatibility, either. Using the neural engine is not necessarily the best choice for power management. It could easily be more efficient to run a simple model a few times on the CPU or GPU if its cores are already in a high power state, rather than bringing up the neural engine. That sort of optimization is impossible unless you use a high-level API that is not hardware-specific.
Of course, if Apple used proper abstraction layers, that would probably force them to upgrade the ancient,
decade-old versions of OpenCL and OpenGL that they currently ship in macOS, which would mean that they couldn't use the missing features as a way to strong-arm developers into using their proprietary Metal API to discourage cross-platform development.... But I digress.