Qualcomm talked about its new Zeroth platform at MWC and most people didn’t understand the full significance. It wasn’t a demo, it wasn’t a tool, it was an API that others will use for, well, for anything they want.
Initially Zeroth was put forward as an AI demo or two, it could recognize handwriting, pictures, and other tried and true machine learning tricks. Most people walked away thinking that Zeroth was just another set of functions for gimmicky tricks that now could be run on a smartphone instead of a rack of servers. That is true but also misses the point.
Handwriting demo with a slick UI
The first Zeroth demo was handwriting, you wrote on a tablet screen, swiped down, and as you passed words it replaced them with type. It had decent accuracy and picked up quite a bit of messy lettering and script worthy of a hurried doctor. It worked but it wasn’t anything that hadn’t been done before, form factor and slick UI aside.
Image recognition has lots of uses
Next up was an image recognition demo, you put a picture in view of the tablet camera and it categorizes it, you can see the categories on the upper left. Again it worked decently well and is a tried and true parlor trick for AI/machine learning. You could also point it at a folder of pictures and have it sort them by these categories, again nothing new but useful and now in a smart phone form factor. This will be really handy in a generation or three when cameras can auto-set their modes like landscape, food, or person without user fiddling and 17 tiny buttons to figure out.
That all said such AI demos are old hat in most PC circles, moving them onto a smartphone was only a matter of time. If Zeroth was like every other “AI on platform XYZ” demo out there, it would be just that, a demo that was never to be seen again when the next generation platform arrives. That is why SemiAccurate thinks Zeroth is different, it isn’t a demo, it is a real API with real uses.
To start out with, think of the demos show at MWC not as Zeroth but built using what Zeroth offers. Zeroth is a machine learning API that now has the speed and more importantly power efficiency to run on a smartphone or tablet form factor. As we said this was almost inevitable but how Qualcomm did it was not.
The idea is not to have pre-rolled trinkets and amusing demos, but to add features useful in the real world to existing programs. At MWC, Zeroth wasn’t even a beta, it was barely out of lab experiment phase but it worked. It only ran on the CPU but will be ported to the GPU and more importantly the DSP, you know the Hexagon that Qualcomm never talks about. It will be vastly faster then. This isn’t to say it was slow, it was realtime for the two demos above, but when optimized for the hardware available, it will be much more energy-efficient, and likely much faster too. Put the functions that map well to hardware on that hardware, you can’t lose.
So after all this, what is Zeroth? It is a set of machine learning primitives and widely used algorithms that are both generic and useful. You don’t write in Zeroth, you call Zeroth functions and you don’t have to write your own basic machine learning functions, and better yet you don’t have to optimize these compute hogs for every SoC out there, Qualcomm does it for you. For their own SoCs of course, the rest aren’t their problem.
When Zeroth is fully baked, it won’t be too much longer now before it is in the hands of developers, they will mainly get as set of calls. When they make an app like the ultimate Internet cat recognition program, the learning doesn’t have to take place on the phone. It also doesn’t have to be shipped off device to a bank of heavy-duty servers adding latency and comms power use. The learning should already be done and sent as a data file along with the program when it is installed. All the learning data will be on the phone, all the program needs to do is make the right call to parse the given image and compare the result to the learning database.
This is because Zeroth allows the programmer to package up a set of machine learning data along with their algorithms and user software. The calls to Zeroth are there, optimized for the hardware, and generic enough to be actually useful. In essence it allows programmers to deliver “pre-learned” software in a generic way, and that part hasn’t really been done before. It is also a very powerful tool in the right hands, the idea being every programmer could be the right hands with Zeroth.
All this happy talk aside, there is still a long way to go. At MWC a few months ago, Zeroth was in quite raw shape, it wasn’t optimized, didn’t take advantage of most of the available hardware, and only had a small handful of demos to show it off. That said it worked and worked at decent speeds, more than fast enough to make the user the slow point of the job.
I have no doubt that Qualcomm will have Zeroth optimized for the GPU and DSP in short order, this part isn’t rocket science. At that point it will be a very useful tool for a large number of developers, machine learning is hard to implement but has a lot of upsides when you do. Qualcomm has implemented it, now things are being turned over to the mad scientists out there to make use of. Given the ubiquity of Qualcomm’s SoC, I can see a lot of potential uses for Zeroth. Time will tell how it turns out but they definitely have the right idea.S|A