Alternative(s) to run CUDA on non-Nvidia hardware (hpcwire.com)
115 points by alok-g 11 hours ago
woctordho 9 hours ago
There's nothing wrong to run CUDA on non-Nvidia hardware. CUDA has an interface that is reasonably well-designed, well-documented/reverse-engineered, and battle-tested for decades. What we need is not to invent another interface just under the name of 'open standard', but to implement the same interface. ROCm is exactly doing this, and so are other hardware SDKs such as MooreThread and Alibaba T-Head.
superkuh 4 hours ago
The difference between ROCm and CUDA is that when a consumer GPU is released by nvidia it's supported for CUDA for about a decade (1xxx series cards just dropped last year). When a consumer GPU is released by AMD it's not supported by ROCm till about a year after release and then it's supported for about 3-4 years. With the RX 580 there were only 3.7 years after release before ROCm support was pulled. I bought mine a couple years after release and so only had about a year and a half of ROCm. Never again.
Things might be different in enterprise but for consumer AMD GPU ROCm is a trap. It is a mayfly. Sure, you can try to run the cards unsupported but you're just multiplying the difficulty and maintainence burden. And nothing will just work.
LogicFailsMe 5 hours ago
Someone needs to stand up a benchmark suite for ROCM, this, and everyone else attempting it to really get the ball rolling here. SemiAnalysis could have a blast with this.
tekacs an hour ago
So is Spectral, which is mentioned in the headline of the article! As it says there:
> SCALE delivers nearly a 6x performance boost on AMD GPUs compared to using HIPIFY to convert CUDA code to AMD’s own ROCm environment
... whilst also running CUDA.
rfv6723 9 hours ago
That sounds nice on paper, but you’re assuming Nvidia wants to play fair. Nvidia is never going to share future microarchitecture secrets, so the moment they drop a new chip and update the compiler, everyone playing the compatibility game has to start from scratch.
HarHarVeryFunny 5 hours ago
These efforts to support CUDA on non-Nvidia hardware seem to me misguided. If all you want is to be able to easily use non-NVidia hardware then high level tools like PyTorch already let you do that (and torch.compile uses Triton for target-specific optimization). OTOH if you want to be programming close to the metal to achieve top performance then you are probably not using CUDA in the first place, and using some CUDA translation layer on non-NVidia hardware would be an even worse idea.
msond 3 hours ago
We actually support NVIDIA hardware, too.
In some benchmarks, SCALE beats nvcc, and we have compiler optimizations in the pipeline that will improve those numbers over time.
> If all you want is to be able to easily use non-NVidia hardware then high level tools like PyTorch already let you do that
Somewhat true, but, CUDA is significantly larger than PyTorch and there's more to Accelerated Computing than just those types of applications supported there.
> OTOH if you want to be programming close to the metal to achieve top performance then you are probably not using CUDA in the first place, and using some CUDA translation layer on non-NVidia hardware would be an even worse idea.
SOTA mlperf submissions use CUDA to achieve their high levels of performance.
It's not a "translation layer", it's a native, ahead-of-time compiler that makes full use of the native hardware features. Here's an example of a feature (Shuffles) being compiled to take advantage of native hardware instructions, resulting in speedups: https://scale-lang.com/posts/2026-01-19-optimizing-cuda-shuf...
mschuetz 3 hours ago
On the contrary, it's great. Cuda is the single sane compute API and system, so I'll use it even if it means being vendor-locked. If my CUDA programs start running elsewhere without much intervention, that'd be amazing
pjmlp 10 hours ago
Most of these "alternatives" focus on CUDA C++, and overlook what actually makes CUDA interesting.
Already in 2020,
https://developer.nvidia.com/blog/cuda-refresher-the-gpu-com...
mschuetz 9 hours ago
> Ease of programming and a giant leap in performance is one of the key reasons for the CUDA platform’s widespread adoption
This, so much. Other platforms continue to ignore developer UX, but it's one of the main things that get's new users onboard and keeps old users around.
msond 10 hours ago
We're actually targeting all of it, and not just CUDA C++.
pjmlp 10 hours ago
Including stuff like Fortran, Haskell, Java, .NET via PTX, Python JIT, IDE tooling integration with major IDEs, graphical GPU debugging and profiling, libraries and co?
Then I guess all the best.
zorked 9 hours ago
ychen306 3 hours ago
How do you deal with target-specific inline asm like tcgen05.mma?
msond 2 hours ago
embedding-shape 10 hours ago
Ambitious but neat, good luck if nothing else :)
If you were to guess, when do you think your Nsight Compute alternative might be ready with your own toolchain?
msond 9 hours ago
puschkinfr 9 hours ago
In this context AdaptiveCpp should also be mentioned. Started as a SYCL implementation, but recently-ish added a compiler for compiling a CUDA dialect to GPUs and CPUs from basically all vendors
lumrn 7 hours ago
SYCL is probably the most up-to-date CUDA alternative for all intents and purposes, at least if one likes modern C++ style (and lambdas inside lambdas). Expose it as C and get bindings to any other language for relatively little effort as well since it’s just C++. With AdaptiveCpp you can also compile SYCL to CUDA so both ways work with the CUDA dialect (PCUDA).
SYCL, as well as AdaptiveCpp, is a relatively active project though and has been for several years, feeding into the C++ standards committee work and is supported by several large organisations, including US national labs and several European universities. I suppose it’s worth keeping track of for people in related fields.
I suppose it’s just really hard to beat the head start and ecosystem integration NVIDIA has with CUDA.
luciana1u 9 hours ago
every CUDA alternative follows the same arc: bold launch, works for 3 operations, then a Discord server where the last message is 'any updates?' from 2024
msond 9 hours ago
Actually we launched in 2024 and the last message in our discord is definitely not that: https://discord.gg/KNpgGbTc38
alightsoul 2 hours ago
I fail to see how scale is not just another form of vendor lock in, given that their compiler is not open source. Every compiler used today except cuda's is open source. And Nvidia can get away with it because no one else cares about development experience
u1hcw9nx 8 hours ago
Alternatives exist, but little demand outside hyperscalers and special uses.
Neocloud customers just want plug-and-play CUDA. It works, it's tested, it adapts faster, and has known performance. Alternatives give no significant benefits.
Things can change, but they are not changing now.
maxloh 10 hours ago
There is also ZLUDA, which is open source and works on pre-compiled binaries.
tuananh 9 hours ago
this is closest thing we have to "cuda on non-nvidia" hardware
msond 8 hours ago
We have a comparison page: https://docs.scale-lang.com/stable/manual/comparison/#zluda
lulzx 9 hours ago
I have been trying for cuda -> metal, to run it on mac, https://github.com/lulzx/cuda-metal
woodrowbarlow 7 hours ago
i'm also interested in tenstorrent. they're building GPUs with cheap GDDR6 using a fast SRAM cache, and writing their own compiler stack (used instead of CUDA) that pipelines data to the SRAM ahead-of-time so you (in theory) never need to suffer the slow speed of GDDR6 for AI workloads. also they've got built-in SFP cages where the video ports would normally be.
inigyou 5 hours ago
Is tenstorrent building GPUs now, not just tensor processors?
dachworker 8 hours ago
Why should I not just port my kernel to Triton? What's the appeal of Scale?
noselasd 7 hours ago
You can skip the porting part.
asdaqopqkq 8 hours ago
aren't llms smart enough to directly write custom kernels for custom hardware from cuda code?
cactusplant7374 7 hours ago
Isn't the future of the industry specialized chips like those that Broadcom and Cerebras are making? I don't know how much longer I can tolerate 50 tokens per second. It feels like the dial-up era.
villgax 6 hours ago
@claude add this to the graveyard of wannabees
DiabloD3 9 hours ago
Its easier to just get rid of your legacy code entirely and use Vulkan for compute, or have your compiler emit SPIR-V directly.
No reason to tie yourself to Nvidia's moat.
mschuetz 9 hours ago
A couple of years ago I evaluated both Vulkan and Cuda as a choice for future projects. I couldnt get anything done after a week in Vulkan, but had the test prototype project working after just a day in Cuda.
Needless to say, I'd never ever pick Vulkan for any project after that experience. It's just way to needlessly overengineered and bloated.
pjmlp 8 hours ago
I used to be big into Khronos API camp, even did my project thesis in OpenGL, up to the famous Long Peaks fail.
Vulkan ended up being the same extension spaghetti as its predecessor, and Khronos was only able to come up with something thanks to AMD offering Mantle, C++ bindings and a GLSL successor only came to be thanks to NVidia (Vulkan-hpp and Slang started at NVidia).
The "we build the specification", and then "the community builds the tools", leads to very poor experiences, and if it wasn't for LunarG own interests, there wouldn't even exist any kind of Vulkan SDK.
What they have going is naturally the vendor independence, however we can achieve the same with middleware with the benefit of much better developer experience.
DiabloD3 8 hours ago
xyzsparetimexyz 4 hours ago
DiabloD3 8 hours ago
Weird, most people have the exact opposite experience.
Having to deal with closed source opaque poorly documented stacks sucks.
mschuetz 8 hours ago
swerner 9 hours ago
Unfortunately, Vulkan Compute doesn’t to all the things that OpenCL, SYCL, HIP or CUDA do.
binsquare 9 hours ago
Yep, there are inference stacks where it just does not work without cuda in any meaningful performance
DiabloD3 8 hours ago
pjmlp 8 hours ago
Vulkan tooling is light years behind what CUDA offers in 2026, across programming languages, IDE tooling, graphical debuggers and libraries.
sollycb 8 hours ago
Ports are very often incredibly difficult and very time consuming.
One of the biggest complaints we hear from the industry is "we tried to port to X and we could never complete it".
An established codebase can have years of refinement. It will take time to achieve the same with the port.
And with our compiler, just using cuda is no longer putting urself inside the moat :)
DiabloD3 8 hours ago
Ironically, this is what people claim AI can do with a snap of the fingers.
Should be real simple if the HN AI echochamber is right, right?