Comment by bayindirh

Comment by bayindirh 20 hours ago

21 replies

AMD has two driver teams at this point. One of Linux/Open Source, one for Catalyst/Closed source, and they are not allowed to interact.

Because, there are tons of IP and trade secrets involved in driver development and optimization. Sometimes game related, sometimes for patching a rogue application which developers can't or don't fix, etc. etc.

GPU drivers are ought to be easy, but in reality, they are not. The open source drivers are "vanilla" drivers without all these case-dependent patching and optimization. Actually, they really work well out of the box for normal desktop applications. I don't think there are any cards which do (or will) not work with the open source kernel drivers as long as you use a sufficiently recent version.

...and you mention ROCm.

I'm not sure how ROCm's intellectual underpinnings are but, claiming lack of effort is a bit unfair to AMD. Yes, software was never their strong suit, but they're way better when compared to 20 years earlier. They have a proper open source driver which works, and a whole fleet of open source ROCm packages, which is very rigorously CI/CD tested by their maintainers now.

Do not forget that some of the world's most powerful supercomputers run on Instinct cards, and AMD is getting tons of experience from these big players. If you think the underpinnings of GPGPU libraries are easy, I can only say that the reality is very different. The simple things people do with PyTorch and other very high level libraries pull enormous tricks under the hood, and you're really pushing the boundaries of the hardware performance and capability-wise.

NVIDIA is not selling a tray full of switches and GPUs and require OEMs to integrate it as-is for no reason. On the other hand, the same NVIDIA acts very slowly to enable an open source ecosystem.

So, yes, AMD is not in an ideal position right now, but calling them incompetent doesn't help either.

P.S.: The company which fought for a completely open source HDMI 2.1 capable display driver is AMD, not NVIDIA.

spockz 19 hours ago

I accept that there are two teams for reasons that include IP. However, Nvidia must have the same problem and they appear not to be hamstrung by it. So what is the difference?

  • bayindirh 18 hours ago

    NVIDIA and AMD, from my experience, have completely different cultures.

    ATI started as a much more closed company. Then, they pivoted and started to open their parts. They were hamstrung at the HDCP at one point, and they decided to decouple HDCP block from video accelerators at silicon level to allow open source drivers to access video hardware without leaking/disabling HDCP support. So, they devoted to open what they have, but when you have tons of legacy IP, things doesn't go from 0 to 100 in a day. I want to remind that "game dependent driver optimization" started pre 2000s. This is how rooted these codebases are.

    NVIDIA took a different approach, which was being indifferent on the surface, but their hardware became a bit more hostile at every turn towards nouveau. Then they released some specs to allow "hardware enablement" by nouveau, so closed source drivers can be installed, and the card didn't blank-screened at boot.

    Then, as they fought with kernel developers, with some hard prodding by Kernel guys and some coercing by RedHat, NVIDIA accepted to completely remove "shim" shenanigans, and moved closed bits of the kernel module to card firmware by revising card architecture. It's important to keep in mind that NVIDIA's open drivers means "an open, bare bones kernel module, a full fledged and signed proprietary firmware which can be used by closed source drivers only and a closed source GLX stack", where in AMD this means "An open source kernel module, standard MESA libraries, and a closed source firmware available to all drivers".

    It was in talks with nouveau guys to allow them to use the full powered firmware with clock and power management support, but I don't know where it went.

    The CUDA environment is also the same. Yes it works very well, and it's a vast garden, but it's walled and protected by electrified fence and turrets. You're all in, or all out.

    • markus_zhang 18 hours ago

      I'm wondering how much effort went into RE Nvidia cards and drivers. Graphics card drivers are completely a mythical beast to me, and I guess it's one of the most complicated drivers in the hardware world.

  • mariusor 17 hours ago

    > Nvidia must have the same problem and they appear not to be hamstrung by it

    Probably because they don't have an open-source driver for linux and they can focus on the proprietary one.

onli 18 hours ago

Fact of the matter is that I have a Radeon RX 6600, which I can't use with ollama. First, there is no ROCm at all in my distros repository - it doesn't compile reliably and needs too many ressources. Then, when compiling it manually, it turns out that ROCm doesn't even support the card in the first place.

I'm aware that 8GB Vram are not enough for most such workloads. But no support at all? That's ridiculous. Let me use the card and fall back to system memory for all I care.

Nvidia, as much as I hate their usually awfully insufficient linux support, has no such restrictions for any of their modern cards, as far as I'm aware.

  • JonChesterfield 9 hours ago

    I know it's in Debian (and thus Ubuntu), Arch, Gentoo. Pretty sure RedHat, Suse, Nix have it. What distro are you using?

    ROCm is a train wreck to compile from source but can be done with sufficient bloodymindedness.

    The RX6600 is a gfx1032. I used a gfx1010 for ages with this stuff. Seems likely it'll run for you if you ignore the "supported cards" list, which really should be renamed to something that antagonises people less.

    • onli 8 hours ago

      I'm using void. https://github.com/void-linux/void-packages/issues/26415 gives an insight, though it doesn't explain the whole problem, if I remember correctly what maintainers wrote elsewhere.

      > ROCm is a train wreck to compile from source but can be done with sufficient bloodymindedness.

      Yeah, I did that myself. Not impossible, just a bit annoying and time consuming. The issue I ran into then was exactly picking the gpu model (incredible that this is even necessary) and not having the gfx1032 available, see https://github.com/void-linux/void-packages/issues/26415#iss... for what I was following back then. I tried to edit the configuration for the gfx1032 anyway, but it did not succeed.

      Side note: Already having to know which card corresponds to which code is annoying, and completely unnecessary. They could also just map the consumer facing name. But that would be too easy I assume.

  • smerrill 17 hours ago

    You should be able to use ollama’s Vulkan backend and in my experience the speed will be the same. (I just spent a bunch of time putting Linux on my 2025 ASUS ROG Flow Z13 to use ROCm, only to see the exact same performance as Vulkan.)

  • pja 13 hours ago

    My recent experience has been that the Vulkan support in llama.cpp is pretty good. It may lag behind Cuda / Metal for the bleeding edge models if they need a new operator.

    Try it out! Benchmarks here: https://github.com/ggml-org/llama.cpp/discussions/10879

    (ollama doesn’t support vulkan for some weird reason. I guess they never pulled the code from llama.cpp)

    • onli 13 hours ago

      Thanks, I might indeed give this a test!

  • yjftsjthsd-h 14 hours ago

    > I'm aware that 8GB Vram are not enough for most such workloads. But no support at all? That's ridiculous. Let me use the card and fall back to system memory for all I care.

    > Nvidia, as much as I hate their usually awfully insufficient linux support, has no such restrictions for any of their modern cards, as far as I'm aware.

    In fact, I regularly run llamafile (and sometimes ollama) on an nvidia dGPU in a laptop, with 4GB of VRAM, and it works fine (ish... I mostly do the thing where some layers are on the GPU and some are CPU; it's still faster than pure CPU so whatever).

rwmj 19 hours ago

A laundry list of excuses ... or a list of things to work on. ("Why the hell do we have two driver teams?" - would be my #1 thing to fix if I was at AMD.)

  • jeroenhd 16 hours ago

    The "fix" would be to make games perform like shit on Windows and disable HDR and other proprietary features, or to abolish the open Linux drivers. You can't have both, unless you do what Nvidia does and move all of the proprietary stuff to the GPU firmware and write a minimal driver to control that massive firmware blob. Which, obviously, would require reengineering the GPU hardware, which is expensive and of questionable value.

    They can't open source their proprietary drivers even if they wanted to because they don't own all of the IP and their code is full of NDA'd trade secrets. AMD isn't paying two different teams to do the same work because they like wasting money.

    • wirybeige 15 hours ago

      AMD already has large firmware blobs. Both intel and nvidia have the software side of GPUs figured out.

      • bayindirh 14 hours ago

        NVIDIA's blobs are different when compared to others. They do not want to give away how their GPU clocking and enablement works. As a result, NVIDIA's blobs are both signed and picky about "who" they communicate with. You can't use the NVIDIA's full fledged firmware with nouveau for example.

        On the other hand, the card enablement sequences are open for AMD and Intel. AMD only protects card's thermal and fan configuration data to preventing card damage, AFAIK. You can clock the card and use its power management features the way you like. For NVIDIA, even they are out of reach.

        AMD's open drivers work way better than NVIDIA's closed ones, too. I have never seen how a single application refused to launch until I used NVIDIA closed drivers.

    • detaro 8 hours ago

      AMDs open driver runs games with HDR quite well on Linux, so that specific thing is not preventing it.

  • bayindirh 18 hours ago

    I guess that you don't understand that how silicon and 3rd party IP works. It took Intel a completely new GPU from scratch to be able to open drivers. AMD did at least one revision to their silicon to enable that kind of openness.

    Yet, HDMI forum said that they can't implement an HDMI2.1 capable driver in the open, with some nasty legal letters.

    I have a couple of friends who wrote 3D engines from scratch and debugged graphics drivers for their engines for a living. It's a completely different jungle filled with completely different beasts.

    I think being able to call glxinfo on an AMD card running with completely open drivers and being able to see extensions from NVIDIA, AMD, SGI, IBM and others is a big win already.

    • gessha 17 hours ago

      But who holds these patents? And what are they about?

    • markus_zhang 18 hours ago

      Thanks. All these sound interesting.

      What does the 3d engine look like? Custom made AAA in companies such as EA or Ubisoft?