LibreCUDA is a project aimed at replacing the CUDA driver API to enable launching CUDA code on Nvidia GPUs without relying on the proprietary CUDA runtime. It achieves this by communicating directly with the hardware via ioctls, (specifically what Nvidia’s open-gpu-kernel-modules refer to as the rmapi), as well as QMD, Nvidia’s MMIO command queue structure. LibreCUDA is capable of uploading CUDA ELF binaries onto the GPU and launching them via the command queue.
Not going to get excited about it until it had time to mature and actually used in production.
At which point, I am all for it. I remember being hyped for GNUStep years ago and I still can’t just recompile my old Cocoa applications.
I’m going to get excited about it now, and report bugs for it, because I actually want it to be production ready without pretending the few maintainers this has are gods.
Yeah any reverse engineering of closed source code takes time. It’s a huge job on its own. Adding the need to avoid actions that may lead to legal issues.
Well yep, It’s very likely this may never round to a perfect replacement product.
But it still has value. For starters, it will encourage new open source projects to use it rather than the propria try version, long before it’s a direct replacement capable product.
So the effort is worth some excitement. At least a pack on the baxck and free beer for some of the guys trying.
Hopefully they have better defenses against legal action from Nvidia than ZLUDA did.
In the past, re-implementing APIs has been deemed fair use in court (for example, Oracle v Google a few years back). I’m not entirely sure why ZLUDA was taken down; maybe just to avoid the trouble of a legal battle, even if they could win. I’m not a lawyer so I can only guess.
Validity aside, I expect Nvidia will try to throw their weight around.
IIRC it wasn’t legal action from Nvidia, but rather AMD pulling the funding that killed ZLUDA.
Yeah that is often the issue.
It is rare a single company owns all the IP on code. So its common that companies are not releasing code because they cannot.