i imagine if i tried to explain to someone the state of modern GPU computing i'd sound like an insane person, why is it so complicated, ugh :(
so there's openGL and openCL, which are specifications with various implementations, both widely supported, but not as performant/modern
there are vulkan/metal/dx, which are all modern with good driver support (metal limited driver support) graphics-first APIs, with compute shaders (vulkan kompute, metal performance shaders and whatever dx has?), all three have excellent performance
then there is cuda/hip, both of which are proprietary, cuda w/ excellent driver support, and hip w/ reportedly awful driver support, cuda can only target nvidia gpus, and hip can target both cuda and amd gpus (though very few amd gpus), both have very good performance
then there is SYCL, which is by khronos, and it's what intel uses w/ openAPI, which is a heterogenous computing framework that can produce openCL/vulkan and in the future other api's code
then there's webgpu, which is a spec, that has two C and one rust implementations, that can target all of the above (except SYCL obv, bc it's not a graphics api)
did i get that right?