What's up with the dominance of nvidia GPUs here on pixls.us?

Unsurprisingly every now and then there’s discussions on computer hardware for image processing here, like Batch Process Hardware. And GPUs factor heavily in there mainly because of darktable’s use of OpenCL (and maybe soon because of vkdt’s crazy fast processing fully on GPU :slight_smile: ). More surprisingly to me, in that thread AMD radeon cards aren’t even mentioned. Doing some digging turns up a few cases where AMD comes up, but they are rare. I recently talked to a friend working for nvidia, but on machine learning, and talking about consumer GPUs he was of the opinion (!), that nvidia has a huge problem there. Apparently they still produce the fastest GPUs, but are consistently behind AMD when it comes to performance per price. A quick google search corroborates that. I am not at all up-to-date on hardware anymore, and from earlier times I know the questionable quality of the average hardware review, so that doesn’t say much. And they are most likely addressed at gamers, not photo processing. So I thought I’d ask in a place where I’ll definitely get info related to image processing, and where linux isn’t ignored either: here :slight_smile:

What are the relative advantages and disadvantages nvidia and amd gpus have over each other?
I am looking at performance for image processing, and also compatibility and easy of use on linux. And while that might sound somewhat objective (and I love to read objective arguments), this will inevitably involve a good degree of opinion - which is totally fine, I think there’s a lot of value in the opinion of the crowds here :wink:

It’s an 8GB AMD RX580 GPU I have, (which was an upgrade from a 2GB NVIDIA 1030GT). Seemed to be more value for money with AMD.

1 Like

On Linux, AMD has slowly folded their graphics driver into the kernel. For several years, this left us with somewhat half-baked drivers, where NVidia was proprietary but stable.

This has changed however, and the in-kernel AMD driver is now more stable, more modern, and easier to install (already part of Linux) than the NVidia driver.

Much of the machine learning world is still reliant on CUDA, a proprietary NVidia technology. This, too, is changing, but slowly.

When it comes to image processing, we need OpenCL, which was for the longest time only available with the (old, neglected) closed-source AMD drivers, or NVidia. But this has changed very recently with ROCm, an open-source, AMD implementation of OpenCL. ROCm has improved leaps and bounds in the last year or so, to the point where I would now judge it easier to deal with than the NVidia driver.

So the path from closed-source, proprietary drivers only, towards a fully-open, AMD-centric world is a bright one. It feels the hardest parts are done now, and AMD is now the clearly better choice for graphics processing on Linux. But as I outlined, this is a rather recent development, and probably has not caught on with many forum members yet.

For what it’s worth, I have been rolling an AMD-based system for the last two years, and in that time it went from no-OpenCL to a massive PITA, to smooth sailing. The future’s looking bright for AMD on Linux.

7 Likes

I preferred Nvidia because I read (I believe on these forums somewhere) that it works better with both darktable (probably due to OpenCL implementation?) and linux (due to driver issues). @bastibe’s comment about AMD and ROCm is interesting though, suggesting the problems may be solved.

What is the equivalent AMD gpu to Nvidia’s RTX 2000 series - performance wise?

OpenCL and CUDA are the short answer. I’ve got a Vega 56 in my most recent build and the open source amdgpu drivers are nice for the video, OpenGL and Vulkan part of things dealing with getting ROCm or the amdgpu-pro OpenCL drivers is always more work on my distros of choice than nVidia.

I’ve had mixed results getting ROCm to work at all on Fedora or Debian so I’m still sticking with the OpenCL drivers from amdgpu-pro for now with the kernel amdgpu drivers for video. AMD has the better path forward I think but for GPGPU tasks it’s still an nVidia dominated world.

2 Likes

Cuda is really important for several finite-element analysis programs used in engineering/R&D. Nvidia did an amazing job becoming the de facto standard in simulation.

I’ve found using an older version of ROCm much less trouble than the latest version. When Ubuntu 20.04 hit, I couldn’t get ROCm 3.6 to run (then recent, IIRC), but 2.9 worked just fine. Still rolling 2.9 now on 20.10. Works great for darktable.

I’m afraid I can’t speak to the performance of the AMD drivers for Linux, but in a more general sense, both companies make very good products and either are fine for image processing. AMD has in recent years offered better value while nvidia has held the raw performance crown. nvidia also has CUDA and other proprietary technologies like DLSS that have made their products the perceived premium pick, especially for gamers.

But we’ll find out in the next few weeks if nvidia still holds the performance crown and what AMD has up its sleeve because they are about to release their latest GPUs. Early leaks seem to suggest they have closed the gap on nvidia. But that might mean higher prices of course.

I’m a happy AMD RX580 user and it works flawlessly with darktable, RT, ART, etc. But, I am on Windows…

I’ve had no issues with my RX 480 8 gig, though it struggles to run 3x 4k displays so I run my TV at 1080p.

Yeah there’s always some mix of ROCm, application and OS version that you have to maintain. Got to be too much so I just stick with the amdgpu-pro OpenCL. You can use the kernel amdgpu drivers for graphics and just install the three or four packages needed for OpenCL from AMD’s driver bundle. Works good enough for me!

I like AMD’s driver model it’s just not fully baked for GPGPU yet, everyday desktop stuff though AMD on Linux is great. Unless you want or need to do OpenCL or specific CUDA things I wouldn’t recommend nVidia’s hardware on Linux anymore. Darktable seems like a mixed bag with OpenCL, it’s not the magic bullet some think IMO. Really at this stage if your primary use is Darktable, GIMP and Krita I’d get a mid-range AMD graphics card, not worry about OpenCL at the moment and invest the savings from not buying an inflated in value nVidia card into a stronger CPU.

1 Like

I bought a PC with nVidia RTX because it was almost impossible to find what I wanted with an AMD GPU. So far, I have been happy with the nVidia, until they pulled this trick of not getting their driver ready in time for kernel 5.9.

hah, of course i fell into the same trap, even after reading your warning :slight_smile:

i’m mostly interested in high performance, and if i’m not doing image processing also in ray tracing. both kind of meant AMD couldn’t do much for me in the last couple of years. in fact my last AMD card is so far back that the drivers were still a lot harder to install than the NVIDIA ones. now i just don’t have any AMD GPU in my reach, so i can’t even test.

indeed. i did some very cursory tests comparing quite similar pipelines implemented in dt/opencl and vkdt/glsl and it seems darktable’s pipeline loses a lot of performance (giving a number at this point would not be very meaningful, but i was impressed) between the opencl kernel calls. streamlining this will make a lot better use of the power of these GPU devices.

Nicely timed thread. Been wondering the same recently. Running Debian sid with nvidia drivers has worked very well but ocasionall, I get to spend an hour or two sorting out the mess. In addition to photo stuff I need Blender/cycles to run well and nvidia had done better so far. Would like my next card to be amd.

People who are using also windows may prefer nvidia, because amd unlike nvidia doesn’t allow 10bit surfaces rendering on their consumer cards.