3 ms·
The issue is that hardware systems have evolved in a very dynamic way over the years. Initially GPUs were mostly fixed function hardware with proprietary APIs f
by enos_feedler 5y ago
The issue is that hardware systems have evolved in a very dynamic way over the years. Initially GPUs were mostly fixed function hardware with proprietary APIs for each driver. Then we had Microsoft that was able to flex its platform power to build a vendor interface in Direct3D. Now we have Apple doing the same thing with Metal. The issue is going to be the ever increasing integration of heterogenous compute engines in unique ways. Google Tensor SoC, Apple A/M chips, etc. AMD is going to increasingly license their IP to build out custom SoC for companies like Samsung.
The best chance to build a standard on top of all this change is to not view this as a "GPU abstraction" but rather a collection of compute engines. At this layer, the place where this happens will be compiler toolchain. IMO (as ex-NVIDIA compiler guy) the best effort happening right now is MLIR [1]. I don't know if dialec is the right abstraction but thats where things are at right now. The best example is is IREE [2] which is written at Google for mapping a lot of of the sophisticated translation inference on mobile for acceleration across GPU, neural engines, etc.
[1] https://mlir.llvm.org https://mlir.llvm.org
[2] https://google.github.io/iree/ https://google.github.io/iree/
- ArtWomb 5y ago>>> https://google.github.io/iree/ https://google.github.io/iree/ Ambitious project ;)
- enos_feedler 5y agoYes it is. But if it doesn't work it probably never will. This is the best chance we have.
- dig1 5y agoThere is also Harlan [1], which created a bit of buzz a couple of years ago. Sadly it is not maintained anymore... [1] https://github.com/eholk/harlan https://github.com/eholk/harlan
- pjmlp 5y agoNintendo, Sony and Sega were there first.
- monocasa 5y agoArguably SGI with IRIS GL. PS1 and N64 graphics APIs were both heavily inspired by IRIS GL (N64 pretty much directly inspired being a sawed down ultra budget SGI workstation). And earlier consoles and Sega through the Saturn were more "here's docs on the hardware registers and command lists" rather than "here's an API to use".