Hi, this is actually pretty important for my business. I've been waiting for the driver to be released for a year now. We got the binary a few months ago under NDA, but open sourcing it, is next level for us.
It blows my mind how reliably AMD shoots itself in the foot. What we want isn’t that hard:
1) Support your graphics cards on linux using kernel drivers that you upstream. All of them. Not just a handful - all the ones you sell from say 18 months ago till today.
2) Make GPU acceleration actually work out of the box for pytorch and tensorflow. Not some special fork, patched version that you “maintain” on your website, the tip of the main branch for both of those libraries should just compile out of the box and give people gpu-accelerated ML.
This is table stakes but it blows my mind that they keep making press releases and promises like this that things are on the roadmap without doing thing one and unfucking the basic dev experience so people can actually use their GPUs for real work.
How it actually is:
1) Some cards work with rocm, some cards work with one of the other variations of BS libraries they have come up with over the years. Some cards work with amdgpu but many only work with proprietary kernel drivers which means if you don’t use precisely one of the distributions and kernel versions that they maintain you are sool.
2) Nothing whatsoever builds out of the box and when you get it to build almost nothing runs gpu accelerated. For me, pytorch requires a special downgrade, a python downgrade and a switch to a fork that AMD supposedly maintain although it doesn’t compile for me and when I managed to beat it into a shape where it compiled it wouldn’t run GPU accelerated even though games use the GPU just fine. I have a GPU that is supposedly current, so they are actively selling it, but can I use it? Can I bollocks. Ollama won’t talk to my GPU even though it supposedly works with ROCm. It only works with ROCm with some graphics cards. Tensorflow similar story when I last tried it although admittedly I didn’t try as hard as pytorch.
Just make your shit work so that people can use it. It really shouldn’t be that hard. The dev experience with NVidia is a million times better.
It doesn't diminish most of your points, but getting PyTorch to work on Arch Linux is as easy as installing the `python-pytorch-opt-rocm` package. Similar with Ollama: `ollama-rocm`. So if you just want to use PyTorch, and don't need the very latest version, I wouldn't say the dev experience with Nvidia is much better.
Sucks that you've had so much trouble... My experience with my cheap 6750XT is that it just works OOTB on Arch with rocm, llama.cpp, ollama, whisper, etc by setting an envvar.
SemiAnalysis had a good article on this recently, basically the reason AMD still sucks on the ML software side is that their compensation for devs is significantly worse than competitors like NVidia, Google and OpenAI, so most of the most competent devs go elsewhere.
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.
Meanwhile NVidia has embraced Python as first class programming language on CUDA, with the new cuTile format, as companion to PTX.
And given the tooling they are adding full steam ahead for Python, I even wonder if Mojo will manage to get enough mindshare, let alone what AMD and Intel are not doing.
IIRC there was only one AMD employee that was working to integrate linux based things. Often, the response was - things are stuck in Intellectual property, or project managers etc. So even specs were not available.
> Support your graphics cards on linux using kernel drivers that you upstream. All of them. Not just a handful - all the ones you sell from say 18 months ago till today.
All the stuff works even if it's not officially supported. It's not that hard to set a single environment variable (HSA_OVERRIDE_GFX_VERSION).
Like literally, everything works, from Vega 56/64 to ryzen 99xx iGPUs.
Also, try nixos. Everything literally works with a single config entry after recent merge of rocm 6.3. I successfully run a zoo of various radeons of different generations.
Adding to the list above. Please, PLEASE, give me a single place I can look to see what pytorch will actually support. I would probably buy something if I could get a straight answer on what will/won't actually work.
Anyone else find it funny that AMD releases new GPU features while people still can't get basic ML stuff working? It's like building a fancy garage before fixing the broken car.
Maybe ROCm is a bit of a mess, but AMD makes amazing graphics cards.
And they open sourced their GPU driver, which is a massive plus in my book.
If Radeon got virtualization support, it would make it the perfect GPU for running video games (or other GPU applications) in virtual machines - you wouldn't need to mess with PCIe passthrough anymore.
latchkey|10 months ago
What I wrote about this on twitter: https://x.com/HotAisle/status/1914549886185611627
throwaway48476|10 months ago
transpute|10 months ago
https://open-iov.org/index.php/GPU_Support#AMD
https://github.com/GPUOpen-LibrariesAndSDKs/MxGPU-Virtualiza...
As "AI" use cases mature, NPU/AIE-ML virtualization will also be needed.
AbuAssar|10 months ago
https://news.ycombinator.com/item?id=43780972
bryanlarsen|10 months ago
okucu|10 months ago
[deleted]
unknown|10 months ago
[deleted]
proxysna|10 months ago
seanhunter|10 months ago
1) Support your graphics cards on linux using kernel drivers that you upstream. All of them. Not just a handful - all the ones you sell from say 18 months ago till today.
2) Make GPU acceleration actually work out of the box for pytorch and tensorflow. Not some special fork, patched version that you “maintain” on your website, the tip of the main branch for both of those libraries should just compile out of the box and give people gpu-accelerated ML.
This is table stakes but it blows my mind that they keep making press releases and promises like this that things are on the roadmap without doing thing one and unfucking the basic dev experience so people can actually use their GPUs for real work.
How it actually is: 1) Some cards work with rocm, some cards work with one of the other variations of BS libraries they have come up with over the years. Some cards work with amdgpu but many only work with proprietary kernel drivers which means if you don’t use precisely one of the distributions and kernel versions that they maintain you are sool.
2) Nothing whatsoever builds out of the box and when you get it to build almost nothing runs gpu accelerated. For me, pytorch requires a special downgrade, a python downgrade and a switch to a fork that AMD supposedly maintain although it doesn’t compile for me and when I managed to beat it into a shape where it compiled it wouldn’t run GPU accelerated even though games use the GPU just fine. I have a GPU that is supposedly current, so they are actively selling it, but can I use it? Can I bollocks. Ollama won’t talk to my GPU even though it supposedly works with ROCm. It only works with ROCm with some graphics cards. Tensorflow similar story when I last tried it although admittedly I didn’t try as hard as pytorch.
Just make your shit work so that people can use it. It really shouldn’t be that hard. The dev experience with NVidia is a million times better.
creata|10 months ago
bavell|10 months ago
logicchains|10 months ago
bayindirh|10 months ago
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.
nimish|10 months ago
pjmlp|10 months ago
And given the tooling they are adding full steam ahead for Python, I even wonder if Mojo will manage to get enough mindshare, let alone what AMD and Intel are not doing.
faust201|10 months ago
pshirshov|10 months ago
All the stuff works even if it's not officially supported. It's not that hard to set a single environment variable (HSA_OVERRIDE_GFX_VERSION).
Like literally, everything works, from Vega 56/64 to ryzen 99xx iGPUs.
Also, try nixos. Everything literally works with a single config entry after recent merge of rocm 6.3. I successfully run a zoo of various radeons of different generations.
jmward01|10 months ago
latchkey|10 months ago
curtisszmania|10 months ago
[deleted]
janpmz|10 months ago
Mountain_Skies|10 months ago
DistractionRect|10 months ago
404human|10 months ago
creata|10 months ago
And they open sourced their GPU driver, which is a massive plus in my book.
If Radeon got virtualization support, it would make it the perfect GPU for running video games (or other GPU applications) in virtual machines - you wouldn't need to mess with PCIe passthrough anymore.
Nullabillity|10 months ago