It's better to create a better thing first, even unfairly, and let it outcompete the incumbent.
Laptops were all x86-32/64. There has been an UltraSPARC laptop (one AFAIK), and Apple switched away from POWER because of power inefficiency. Also before the smartphone revolution.
Intel was busy with Moblin and PowerTOP back in the 00s. This before iPhone.
MIPS and RISC-V also exist. Without ARM it would've happened but slower/later.
The only competition was from Motorola/IBM POWER (and MIPS in some niche products), but neither Motorola nor IBM ever tried to offer low cost products.
During 2000 to 2005, I have ported some products with embedded computers from POWER to ARM.
The porting was not very easy, because the ARM CPUs had much lower performance, but they were much cheaper, so the conversion was done anyway.
The ARM advantage has always been in its business model, which created a lot of competing CPU vendors, willing to give you the best price, not in any technical advantages of its CPU architecture.
The NVIDIA acquisition certainly threatens this business model, despite all contrary claims of the NVIDIA management.
Today MIPS is still used in network devices, SH is still used in things like optical drives, SPARC is still used on some servers, x86 is still used on many servers and desktops and mobile devices, and so on and so forth. Do you think that there is something technical that warrants the choice of these architectures for their usecases ? Do you think that there is something in SH that makes it a better ISA particularly for CD-ROM drives ? Or that there is something in SH that made it a better ISA for some videogame console generations, then something changed and the better ISA was PPC, then ARM, then x86 again ?
It's mostly arbitrary marketing decisions, which manufacturer happened to be doing well that day, and some "historical reasons"/network effects which define these choices. There's very little difference at this ISA/architectural level, and a lot in the actual design and manufacturing level, where ARM is not doing poorly but hardly shines. Apple, Intel, AMD, Qualcomm, even nVidia all do better than ARM there.
If we the wind had blown even slightly differently some day 20 years ago, we may very well be using anything else, even say Itanium in our smartphones. And before you complain that Itanium/EPIC are hardly suited for low power, remember that Transmeta made their money selling _low-power_ VLIW processors emulating x86 instructions. And actually they were lower power than their x86 competition those days. Perhaps Torvalds would still be there rather than making Linux...
Qualcomm makes ARM chips for phones.
No, you can't buy either such device today, but reason they lost out had nothing to do with them being inappropriate for such use.
The advantage of ARM has always been the cost. For given requirements of performance and power draw, you could find much cheaper ARM CPUs than the existing alternatives.
This happened because there were many competing ARM CPU vendors.
Motorola could give you a PowerPC CPU with the same or better performance and power draw, but they were not willing to lower their prices, falsely believing that there are no alternatives.
Therefore everybody abandoned the other CPU architectures and switched to the cheaper ARM solutions.
The thing is only Arm did actually designed appropriate chips at the right time and licensed those designs in the best way possible. Arm was IBM PC of the smartphone era and I don't understand how people might not appreciate that.
When Nokia and Ericsson switched to ARM the company was probably saved from bankruptcy.
It's taken the better part of a decade for workable alternatives to CUDA to emerge.
it’s really not close. I love that they are trying, I just honestly feel they need to be trying with 10 times as much funding/resources behind them.
Or do you mean Apple’s Metal Compute? useful only with inconvenient (at scale) Apple hardware.
If workable CUDA alternatives were really here, I feel people would be talking about them more given how large the hate is for Nvidia on multi fronts from multiple different user groups.
As for Vulkan, I tend to think of CUDA at the driver level given how closely coupled it is to Nvidia’s hardware. So I wasn’t really thinking about broader cross compatible APIs like Vulkan which tend to get implemented on top of the drivers providing low level access like CUDA gives… but with the exception of Apple (because we know they will never change their mind) I’m hoping the broader industry gets behind Vulkan compute shaders enough we finally get something that delivers on the promises made when the OpenCL effort began. I want clean understandable abstractions over the top of all the different SIMD and MIMD capabilities we have these days it doesn’t have to magically compile my code down to FPGA hardware but how about actually being able to get the best matrix multiplication performance out of both my CPU or GPU or both if I have a CPU with the right kind of integrated GPU that they can efficiently enough share memory and both work together without slowing each other down when working on an embarrassingly parallel matrix multiplication task. Is this really too much to ask of software in an an era that gives us near magical JIT performance in multiple languages, and manages to build cross compile/transpilation tools that can convert entire assembly code bases into JavaScript and all the other nice things we have as software developers… it never felt like too much to me but the fate of OpenCL appears to disagree.
nvidia decided they wanted to be the market leader, and spent $$$$ developing tools, training materials, and libraries (like cuDNN) which they gave away for free.
Other GPU vendors chose not to outspend them.
Tensorflow lets you deploy to quite a few backends.
oneAPI support in GPUArrays.jl seems to be coming along.
That said, the replacement ISA already exists IMO: RISC-V