CUDA for AMD on Windows

(github.com)

69 points | by chiassedu80 3 hours ago ago

21 comments

  • linuxhansl an hour ago

    Off-topic and somewhat of a rant, but I'd far prefer us all focusing on open standards like HIP, SYCL, OpenCL, etc.

    It's unbearable that most LLM inference happens on closed H/W, closed drivers, and closed SDKs.

    • mistercow 28 minutes ago

      On the SDK front, you tried just having an agent reimplement the model you're interested in and just use the weights? I've taken to treating off the shelf implementations as reference implementations anyway, because I can often squeeze out significantly better performance for my configuration and use case by having Codex hammer at it for a few hours.

      • sroussey 13 minutes ago

        Hugging face is working on something like this where well known models get fused into a single implementation.

      • drivebyhooting 17 minutes ago

        Could you share the prompts and workflow? I’ve tried this too, but with mixed success when it comes to creating custom tile kernels.

        I would really appreciate your input!

    • bigyabai an hour ago

      I would too, but sadly that's Khronos' job to organize, and they've had trouble getting American vendors to work together.

      It's likely that CUDA will continue dominating until they put aside their differences. The current MLX/MPS/ROCm ecosystems are too fractured to threaten Nvidia.

      • boredatoms 28 minutes ago

        Maybe a not-Khronos org should try

      • high_na_euv an hour ago

        Wdym American Vendors?

        Intel uses SPIRV iirc

        • bigyabai an hour ago

          I'm talking about holistic efforts like OpenCL, and standards that would be equivalent to Nvidia's "Compute Capability" versioning.

          The basic underlying tech can be agreed on, but Apple/AMD/Intel all have different GPU priorities that limit their ability to agree on a CUDA-adjacent hardware platform.

          • swerner 18 minutes ago

            What do you mean by holistic? SYCL is an open versioned standard that allows for vendor specific extensions. The problem is not that there isn’t a proper standard, the problem is that many hardware vendors - or software developers simply don’t want to adopt it.

            Intel (via Codeplay) was handing it out on a silver platter - Nvidia on SYCL, full top chain, and people still wouldn’t want it.

            • bigyabai 9 minutes ago

              Isn't OneAPI a good example of the problem, alongside Mojo/ONNX/TensorRT? The industry doesn't need a fifteenth competing standard. They need hardware buy-in.

              By holistic, I mean hardware architecture cooperation. Nvidia can hold onto their lead forever if GPU designers fight over what a GPGPU hardware baseline looks like. The current ecosystem fragmentation is not competitive, and future fragmentation probably wouldn't work either. I think the fastest way to kill Nvidia would be a hardware consortium.

  • swerner 26 minutes ago

    AI will take down Nvidia’s moat. When it becomes trivial to translate CUDA/PTX to HIP, SYCL or Metal, CUDA is no longer the moat, it becomes the intermediate representation.

    • bayindirh 14 minutes ago

      > When it becomes trivial to translate CUDA/PTX to HIP,...

      ZLUDA is already doing that, no?

    • Keyframe a minute ago

      yeah yeah, "when" an often keyword with AI it seems. As Mr. E. Nigma put it - what always comes but never arrives? Meanwhile the moat deepens and it's build on inertia and laziness and Nvidia knows this really REALLY well.

    • mathisfun123 9 minutes ago

      i swear people who are outsiders here have only clickbait takes; if you've never had to ship GPU code professionally you should just not comment on these things.

      the source language has never been the moat. Nvidia sells to hyperscalers. Hyperscalers have armies of kernel authors who have no issue translating shaders by hand (or now with claude). Nvidia's moat is (and will remain for the foreseeable future) the entire stack. you cannot fathom the pain and misery of working on literally any other stack. if you've never debugged a GPU synchronization error or kernel panic due to some GPU firmware bug or fought absolute shit profilers hunting for perf you really have no idea what you're talking about.

  • lulzx an hour ago

    I made cuda-metal btw (for mac kek), https://github.com/lulzx/cuda-metal

    • sroussey 11 minutes ago

      What models can it run?

  • system2 2 hours ago

    I wish there were a way to use RDNA1 cards with CUDA for AMD. My 5700XTs are sitting in a drawer.

    • monster_truck an hour ago

      RDNA1 isn't good for a whole lot, even flagship RDNA2 cards are a stretch for many things. The lack of WMMA/matrix multiply/BF16 is too severe of a penalty.

      The FP16 throughput on RDNA1 is both shader reliant and requires everything to be packed first. Even with 2 or 4 or 1000 cards, you would be consuming all of the available memory and memory bandwidth just packing and unpacking values, and if you really want to dump a hundred billion tokens into making it work anyways, you're only going to find out that even if you bother to sit there ferrying packed values to ram or disk before then issuing the instructions, paying that already severe penalty again when the values then have to be unpacked is so steep of a cost that the 256 BF16 flops/cu/clock's effective throughput is outright lower than simply doing it on a Zen 2 processor. You also don't have INT8 (or really INT4) on RDNA1 so the other RNS/CRT tricks aren't viable.

      Sadly RDNA1's VCN2 also lacks actually good x264 bframe encoding support, or even P010 for 10 bit color, so what I'm saying is you should sell them. Used Radeon VII's are like $260, you'll go a lot further with those especially if you throw in a 7900XTX, and then augment that further with a 9070 CRE (you only want it for its int8 cores), and of course 128GB of ram.

      E: And sure, that's 3, or ideally 4 GPUs, and a good bit of extra work. But that gets you up to more than halfway to the naive performance of a $15,000 MI300x in a surprising amount of cases, with additional strengths that it lacks. For far less than half of the cost

      • system2 41 minutes ago

        I agree, I should've sold them last year when they hit $500 each. I have like 8 of them from my mining days. What a silly mistake I made.

  • chiassedu80 3 hours ago

    CUDA for AMD on Windows

    I’ve been working on a Windows setup that lets CUDA-targeted applications run on AMD GPUs using ZLUDA + ROCm/HIP.

    Repo: https://github.com/Speedstu/CUDA-for-AMD-Windows

    So far, it has only been tested on my RX 9060 XT (gfx1200), where I’ve used it with CUDA-enabled LibTorch workloads, including long ai training and use.

    I also added a GPU scanner / auto-detection system that detects:

    AMD GPU model

    gfxXXXX architecture

    ROCm/HIP installation

    driver info

    whether the GPU has already been validated by the project

    Example:

    RX 9060 XT → gfx1200 → RDNA4 → HIP detected → validated

    The goal now is to test it on more hardware, especially RX 6000 / 7000 / 9000 cards.

    If you have an AMD GPU on Windows and want to try it, I’d really appreciate compatibility reports working or broken. There’s a dedicated GPU compatibility issue template in the repo.

    If this is useful to you, a star would also help the project get more testers.

    • nine_k an hour ago

      (As a side note, I love the name ZLUDA; it very aptly means "delusion" or "deception" in Polish.)