Give me something like Talos2 with a full OSS firmware and a performant CPU… and hell, a half-competitive open source graphics core too. It doesn’t need to be peak performance, it needs to be good enough.
I’ve been trying to work with SBC’s for a while for video decoding platforms and just wound up getting stuck on x86 because the ARM situation with weirdo custom kernels for anything useful is just… annoying.
so, I don’t know if the shit hole made anything WORTH copying, but why respect american intellectual property? you know americans don’t respect yours. copy NVIDIA’s CUDA shit, if that’s efficient. fuck em.
There’s also a lot of efficiency in hardware-specific kernels. A generic rocm build vs. one with hand-written kernels (not even for the proper card just a close enough one to have the same instructions) is like a 10x performance drop. That’s on the matrix multiply up to convolve these tensors level, on the layer above that you then have things like smart memory management and scheduling as well as minimising how much work needs to be done in the first place (re-ordering operations so tensors stay small) and stuff.
You can port cuda code to vulkan or opencl – but you’re going to have to reimplement all of that. Just getting the BLAS layer to not suck is a challenge.
Give me something like Talos2 with a full OSS firmware and a performant CPU… and hell, a half-competitive open source graphics core too. It doesn’t need to be peak performance, it needs to be good enough.
I’ve been trying to work with SBC’s for a while for video decoding platforms and just wound up getting stuck on x86 because the ARM situation with weirdo custom kernels for anything useful is just… annoying.
so, I don’t know if the shit hole made anything WORTH copying, but why respect american intellectual property? you know americans don’t respect yours. copy NVIDIA’s CUDA shit, if that’s efficient. fuck em.
The efficiency is not on the API it is on the microarchitecture. The value of copying the API is just to run unmodified software made for CUDA.
There’s also a lot of efficiency in hardware-specific kernels. A generic rocm build vs. one with hand-written kernels (not even for the proper card just a close enough one to have the same instructions) is like a 10x performance drop. That’s on the matrix multiply up to convolve these tensors level, on the layer above that you then have things like smart memory management and scheduling as well as minimising how much work needs to be done in the first place (re-ordering operations so tensors stay small) and stuff.
You can port cuda code to vulkan or opencl – but you’re going to have to reimplement all of that. Just getting the BLAS layer to not suck is a challenge.