Cycles AMD HIP device feedback

Yeah, for me it looks like that I need to get some nvidia card if I want to have gpu rendering. That crash with closed amd drivers and thing that Vega has been long disabled gives feeling these problems aren’t going to get fixed. Time to sell my Vega :frowning_face:

1 Like

Get a NVIDIA GPU if you prioritize reliability and stability in Cycles. (There can be issues when rendering on NVIDIA GPUs, but they typically appear less often than other vendors).

If you want to go with an AMD GPU, then you’ll get the best experience by getting a RX 6000 or newer GPU and run it on Windows. Older GPUs like the RX 5000 and Vega series are not properly supported (Cycles supports them, but AMD seems to give them low priority when fixing issues in HIP/ROCm). Linux support also appears to be a lower priority for AMD at the moment when compared to Windows.

If you want to go with a Intel GPU, your only true option is the Intel Arc AXXX or newer (when they come out) discrete GPUs. Windows and Linux support for Intel GPUs in Cycles appears to be good, but there have been some quirks during it’s development (similar to AMD HIP and Apples Metal having quirks during development).

If you wish to switch to a Mac, make sure you get a “Apple Silicon” Mac, preferably M2 or newer.
Non-Apple Silicon Macs are low priority for Apple, and so they regularly experience bugs and performance regressions that Apple doesn’t fix.

2 Likes

This topic is about AMD HIP Feedback. Please stay on topic and discuss GPU purchases etc in private.

3 Likes

Returning to this, things aren’t that bad. With Blender 3.6 rendering with Linux Vega works in Ubuntu + closed drivers!

Edit: for some material, 20th frame in my animation and got crash. Another animation, crash immediately

More testing, it works also in Blender 4, and the crashing happens when there is material with emission.

There’s a kind of a similar bug report from a user on Linux with a RX 5600XT. They claim that in Blender 4.0, any material that contains a specular or subsurface scattering component does not render correctly. Windows renders fine. Blender 3.6 renders fine. #116864 - 4.0 Cycles Hip not rendering correct - blender - Blender Projects

This is obviously different from the issue you’re having, but it is somewhat related due to the issue being caused by specific materials.

Might be related, but sure not the same, because I hit the problem also in 3.6, and my problem is crash, not incorrect results.

I have questions for AMD and/or developers at the Blender foundation.

  1. What software and hardware combinations are officially supported?

    • According to the ROCm docs, select RDNA2 and RDNA3 GPUs are supported on Windows, while Linux support is mostly limited to CDNA, and the occasional consumer GPU (Vega VII, a single RDNA2 GPU, and some RDNA3 GPUs). What does this mean? For example:
      • RDNA1 and first generation Vega are not listed as supported on Windows or Linux, but at least RDNA1 seems to work with Cycles HIP on Windows. So how does AMD view RDNA1 if it experiences a bug specific to this generation of GPU? Since it’s not officially supported will AMD refuse to fix it? Or will AMD give it a low priority? Or does AMD treat it with the same level of priority as supported GPUs?
      • On Linux, the only consumer RDNA3 GPUs that are listed as supported are the RX 7900XT and RX 7900XTX. Do other RDNA3 GPUs get the same level of support as these GPUs?
      • The list of supported ROCm GPUs on Linux is significantly smaller than on Windows. Is there a reason for this? Does the supported GPU architectures (E.G. RDNA2, RDNA3, etc) in ROCm actually differ between Windows and Linux (ignoring data center GPUs with CDNA), or is it just the list of supported GPUs?
  2. Based on reports from users, Linux seems to be experiencing the largest number of problems. I had some questions related to that.

    • Is Linux support lower priority from AMD?
    • What causes the increased number of issues on Linux? For example:
      • Does the HIP SDK differ in major ways on Linux and Windows and could be causing bugs specific to each platform?
      • Is the Linux HIP SDK behind the Windows version with regard to receiving updates.
      • Is the issue actually with the HIP runtime and GPU drivers? As in it’s harder to ensure everyone is using up to date and complete HIP runtime and GPU drivers, on Linux due to many people using packages from their package manager, which is maintained by different groups at different rates across different distributions.
  3. Should the GPU support page in the Blender manual be updated more regularly and with more information? For example:

    • In the AMD section, Vega is listed as supported. But according to AMD, Vega is in maintenance mode in ROCm, and Vega is in a “reduced driver support” stage. Should extra notes be added to the these GPUs in the Blender manual to let people know that due to the reduced support from AMD, bugs may be more common, and support may be removed in the near future.
    • Same as the AMD section, there’s the Nvidia section. Compute capability 3.0+ is listed as supported. But 4.X and older are no longer supported by Nvidia in the latest version of CUDA, and they also have reduced to no driver support. Should a similar note be added there.
3 Likes

Unfortunately, I don’t think there is a clear connection between what the ROCm docs say is supported and what actually works in Blender. On Linux I think Vega is more stable than RDNA2, because the latter specifically has a driver bug, even though you might guess the opposite.

The Blender manual generally stays up to date with what Blender supports, assuming the driver works.

We could update the manual with currently known driver bugs and supported versions, but it’s really hard to figure out and keep up to date. We don’t have the resources to test a wide range of Linux distribution + hardware combinations, or to document how to install drivers correctly in each distribution.

These cards are still working with Blender as far as I know. We use an older CUDA toolkit, and I believe that while there may be no new drivers the existing ones do continue to work. Once that is no longer the case we update the manual.

In general, Blender usually supports GPUs for quite a while after the driver stops being updated.

2 Likes

I don’t know if this would be feasible, but maybe some of the automated tests could be done by distro maintainers? For example Debian CI/CD for AMD GPUs was recently updated with new hardware and overall it looks that it’s in a pretty good shape.

What the ROCm documentation says is “officially supported” by them is what it is.

My job at AMD is to application support (different people work on the HIP compiler and runteim), and we “enable” many GPUs outside that list to work in Blender. And I push the ROCm runtime and compiler team to support officially as much as possible. If there’s a bug on say RDNA1 we would push them to fix it. It probably won’t get as much attention from the ROCm team as an RDNA3 bug but I’ll treat it equally.

Linux and windows HIP SDK are basically the same. But the runtimes are different for both. In fact the Windows SDK is a bit behind what is latest on the Linux side. We are currently transitioning to ROCm 6 on linux and the windows SDK is just releasing ROCm 5.7.

Most of the issues seen on linux side are driver / runtime related at the moment.

Currently Vega still works, if it stops working, at that point we probably should make some note.

2 Likes

Hi everyone. I wish everyone a very good new year! I would like to ask if there is a chance to clarify the position of AMD developers regarding support for GPU rendering for RDNA2 Radeons using HIP on Linux.

  1. When, and if at all, can we expect a smoothly working HIP without fear of crashing? Which is a priority for me.
  2. Can we expect HIP RT on Linux? This issue is secondary and less important to me.
    I recently came across an interesting article - Rusticl OpenCL Still Striving For Better Performance, SYCL & HIP Features - Phoronix .
    It seems that independent developers from Red Hat are working on their implementation of HIP directly in Mesa drivers. This would be a great solution because of its ability to run in Flatpak. I’m not a programmer myself and I don’t know if t what he writes is true and if I interpreted everything correctly. I would like to purchase new hardware from AMD. I am considering an RX 7800 XT. Everything depends on the improvement of drivers for rendering in Cycles.
3 Likes

What is definition of ‘works’? At least for me, I can’t run blender benchmark with Linux + Vega 64, crashes on first file.

1 Like

It should be reliable when the following 70 or so open issues are resolved and testing is implemented. Ultimately you will have to judge these logs and see if you are comfortable with the future prospects of Cycles HIP.

Repo / List Search Term Issues Open Mentions
drm / amd “Blender” 3 -
ROCm / ROCm “Blender” 17 -
ROCm / HIP “Blender” 4 -
Blender / blender “HIP” / Module Render & Cycles 34 -
Blender / blender “ROCM” 12 -
Amd-gfx “Blender” - 30
3 Likes

In my case. Nobara Linux 38 and RX 6600 XT graphics card with ROCM 5.6 installed from the repositories available on the system from the beginning. Blender works. I can render in cycles using HIP, but it is quite unstable. You have to remember to turn off the overlay when navigating in the wiewport with cycles and turn off the preview before starting the render. Blender version is 4.0.2 I think. Downloaded from the official site stand alone version.

I’ve started to use blender instead of 3DMax because it performed better on linux than on windows and it’s a opensource based project, which I value a lot, same goes for AMD cards that has a lot of opensource based codes and features… But I’m really sad to see that no HIP-RT had came to linux until now and almost no improvement and update on this for a whole year. Seems like Blender is highly in favor of nvidia cards, which have less vram, worse construction / hotter and also cost more for the same computational power despite it’s proprietary drivers and predatory policies. Linux users base is increasing and lots of them are using AMD GPUs, I would love to go back working in my projects using my favorite OS, GPU and 3D modelling software.

2 Likes

Most of the rendering code for Cycles is the same for Nvidia and AMD. The primary differences between the vendors with regard to Cycles rendering are the compiler (CUDA vs HIP) and extra tools like OptiX and HIP-RT, the GPU hardware, and the drivers.

When you ignore the extra tools like OptiX and HIP-RT, then the AMD GPUs seem to perform as expected compared to Nvidia GPUs.

E.G. I have a RTX 4090 and a RX 7800 XT. I rendered the cozy kitchen scene at 1024 samples per pixel at a high resolution on both of these GPUs using HIP and CUDA respectfully. No OptiX or HIP-RT.

The RX 7800 XT took 3 minutes and 22 seconds. (3.36 minutes, 304 samples per minute)
The RTX 4090 took 1 minute and 18 seconds. (1.3 minutes, 787 samples per minute)

Based on these stats, the RX 7800 XT has roughly 38.6% the performance of the RTX 4090 in Cycles.

If we look at the theoretical FP32 performance of the two GPUs (RX 7800 XT 37.32 TFLOPS, RTX 4090 82.58 TFLOPS), we can see that the RX 7800 XT has 38.7% the TFLOPs of the RTX 4090. So the RX 7800 XT having 38.6% the performance of the RTX 4090 in Cycles while having 38.7% of the theoretical FP32 compute performance is expected, assuming the CUDA and HIP parts of Cycles are optimized equally as well. And that 0.1% difference is probably within margin of error.


In terms of performance, it doesn’t seem like Cycles is in favor of either GPU manufacturer.

But there are obviously other factors. For example:

Stability:
HIP on Linux seems to have some stability issues. As Brain Savey said, this seems to be mostly driver/runtime related. Since the Blender foundation doesn’t maintain these, they typically don’t invest time in fixing them, leaving AMD to do it.

During the development of various features in Cycles, there have been issues where a feature will come out, and it doesn’t work on AMD HIP, so it has to be temporarily disabled on AMD until a new HIP SDK comes out with a bug fix. This is a HIP SDK bug, some of them can be worked around with code changes, some require bug fixes in the SDK. And since the Blender foundation doesn’t maintain the HIP SDK, they typically aren’t the ones to implement fixes in the HIP SDK.

Extra features:
There are extra features. For example HIP-RT and OptiX offering hardware accelerated ray traversal.

For the hardware accelerated ray tracing performance. The vast majority of it is determined by the library in use, and the GPU architecture. Cycles is using HIP-RT, provided by AMD for AMD GPUs. And OptiX, provided by Nvidia for Nvidia GPUs. And when you run these libraries on their respective GPUs, you get different performance boosts (Usually a small one on AMD, which still seems odd to me, and a noticeable performance boost on Nvidia). Since the vast majority of the code for ray traversal is handled by the libraries, there’s not much the developers at the Blender foundation can do to improve performance for each vendor, and the responsibility for performance typically falls on the GPU vendors hardware department (developing better hardware for the job) and software department (developing better software to make better use of the hardware they have avaliable)

6 Likes

I have used HIP in blender at linux since version 3.2 and didn’t have any major problem, now I was expecting to use HIP-RT in linux and not even HIP is working as it should anymore, seems like we are moving bakwards. :pensive:

1 Like

You say HIP isn’t working for you anymore. Can you provide more specifics? For example:

  • You were using Blender 4.0.2, then one day it stopped working?
  • You test the daily builds of Blender 4.1, and daily builds from the past X days don’t work. But older versions of Blender (E.G. 4.0.2) work just fine.
  • Something else? (I’m primarily interested in which Blender versions are effected.)

What do you mean by HIP is not working?

  • Your GPU doesn’t show up in the HIP device menu in preferences?
  • You can select your GPU in the HIP device menu, but you get errors when rendering. (Either as a error message, or things just render improperly)?
  • Something else?

since ROCm 5.6 I can’t get it to work on 3.6 / 4.0.2 and 4.10.
I’ve tried with ROCm 5.7.2 / 5.7.3 and now with 6.0 and the card don´t show as an option in HIP settings to be enabled. All the proper library and packages installed.

Cards tested 6700XT and 7800XT, thank you!