I need to use the Heterogeneous Interface for Portability (HIP), which is part of ROCm. There are 6 ROCm packages for Fedora. Which one(s) should I install?
The Blender package for Fedora 36 is outdated and does not support AMD GPU rendering. I can think of several ways to install a newer version of Blender, but I would like advice on which to choose:
There’s a serious known bug involving the use of image textures; I could probably work around this by either avoiding image textures entirely or double-checking the resolution of every image texture I wnat to use.
I went ahead and installed Blender 3.2.1 from updates-testing, along with all 6 ROCm packages. I rebooted and checked for my GPU in blender under Edit > Preferences > Cycles Render Devices > HIP. However, Blender reported that “No compatible GPUs” were found:
The only commercial support of Blender software widely used in industry is buy Canonical that as something to do with Ubuntu, ask a quote, any platform is supported …
I don’t see my question as being strictly about Blender; it involves the ROCm compute stack and the corresponding Fedora packages. Should the title be reworded?
Hey there! I wanted this exact same thing! I had to do a little work and research to get there, but Blender now uses HIP on my Fedora 36 install. Here’s a post I wrote about the process. Hope it helps!
Taking a high level approach … kernel programming model is used in several C++ extension frameworks being HIP, Cuda or DPC++ supported by AMD, NVidia or Intel with enormous stake as thought to be ideal tool for AI neural network. Red Hat/CentOS/Fedora implement SELinux, a National Security Agency program and you find information at Fedora Docs/F36/System Administrator Guide/Kernel, Module and Driver Configuration about signed/tainted kernel modules. NVidia, Google Coral, Intel Altera, AMD Xilinx, … all send you to Ubuntu as liberal with closed source software and Canonical only commercial support of Blender software massively used in industry. You can implement in Fedora, can be complicated, no sure of the pertinence of specific point of view … not Fedora vs Ubuntu but global approach to open source concept.
Thank you for your post! I’d like to give that process a shot, but I’m confused about a few parts of it:
HIP GPU rendering under AMD … doesn’t work without their proprietary OpenCL magic.
Which packages listed in that post are proprietary? According to AMD, amdgpu-install is for installing their All-Open stack.
Also, I was under the impression while that HIP & OpenCL serve similar purposes, neither depends on the other.
Now, DNF told me that amdgpu-core failed to install, and that the Transaction failed, but the other two packages installed successfully which is what’s important!
Would it make more sense to just install the libdrm-amdgpu & libdrm-amdgpu-common packages, then?
On a separate note, Jeremy Newton (mystro256) of AMD has uploaded an experimental rocm-hip package to his copr repository. I haven’t gotten Blender to work with it, though.
When DPC++ came out, it targeted heterogeneous environment being CPU, GPU and FPGA with SYCL replacing OpenCL. Works with Altera devices. AMD made noise so opened to them being an open source sort of thing, look up about it. Cuda is specific to NVidia devices, HIP to AMD devices moving from Vivado to Vitis for Xilinx devices. The DPC++ project is fascinating as you program a project on a mix, the compiler choosing where, when, how device by device.
AI is hot topic now using neural networks similar to those used for computer vision. That is where you are cornered between Blender and the rest …
Which packages listed in that post are proprietary? According to AMD, amdgpu-install is for installing their All-Open stack.
Also, I was under the impression while that HIP & OpenCL serve similar purposes, neither depends on the other.
You may be better qualified to make those distinctions than I am. It was my impression that the packages were proprietary because they aren’t apart of the regular mesa libraries (again, I’m not an expert!).
As far as the HIP vs OpenCL is concerned, you may be onto something there where the opencl portion of the install is not necessary, but since I was following a guide from Reddit, I thought it best to stick to what got it working for the writer at the time. It’s totally possible that on step 5 that you can omit the opencl portion of the install and just include the hip portion.
This statement makes sense! Call me superstitious, but again I blindly followed the guide from Reddit which I simply regurgitated on the Fedora forum (with links to the original).
I very much hope that this kind of work around isn’t necessary forever (the one I linked to) and that something like what you’ve mentioned here will become a mainstay for us instead!
Let me know if you have any further questions or need more detail!
Please also check out this user’s input. They got HIP under Blender to work (the rpm from Fedora’s repo) via a slightly different method. I’ve tested it and found it to be more stable than the method I detailed above. The latest comments discuss the alternate (and more stable in my opinion) approach.
Something else … HIP is only compatible with AMD Radeon 6000 series, with Blender probably only high end with sufficient memory. You can install drivers but if incompatible HIP/Blender you will get no message or minimal mention in logs. HIP/Blender is still experimental, AMD trying to catch up on NVidia Grace Hopper hardware architecture.
HIP is only compatible with AMD Radeon 6000 series
While only certain CDNA & RDNA2 cards are officially supported by ROCm, others have gotten HIP to (mostly) work with older cards & Blender Cycles. See the image texture bug link at the start of this thread.
Using PNY Quadro RTX 4000, works fine but not a gaming video card … just a calculator specific for programming Cuda, NVidia frameworks and supported by Blender. HIP by AMD is very ambitious similar to DPC++ going to heterogeneous hardware mix including CPU, GPU and FPGA and the screenshot at the beginning of this post shows (error).
You can tweak software all day long but the star is finally compatible hardware/software. Advice is to download AMD software, Blender directly from their respective website, see if it works and come back to DNF packaging after. AMD and Blender give ample information about something utterly new for AMD. The real question is about SYCL replacing OpenCL with Khronos Group …
Okay, I’ve removed all the ROCm packages I previously installed & disabled the rocm-hip copr repository.
After that, I followed u/szooloo’s instructions and encountered the same issues as @joni999. Following @joni999’s instructions allowed me to render the default cube with Device set to GPU Compute.
After testing with another scene, I discovered that rendering performance had not improved when compared to the CPU. However, enabling the “Experimental” Feature Set fixed this!
So, in summary, following first u/szooloo’s instructions, then @joni999’s extra steps, then enabling the Experimental Feature Set and GPU Compute in the Cycles render settings allowed me to use my Radeon RX 5700 XT for rendering with Cycles.
Glad you got it working! I knew documenting this was the right thing to do
It’s weird that it seems to work for other people without doing my workaround.
I have now benchmarked my render times because I was curious if the “Experimental” switch “issue” applies to me as well.
The results may be influenced by something like Cache - but I didn’t use the PC while doing the benchmark.
For the CPU Tests only the CPU was enabled in Blender System Settings and for GPU Tests only the GPU.
My Specs:
AMD RX6900XT
AMD Ryzen 7 5800X
**CPU TESTS:**
CPU Only (Supported && Open Shading Language is OFF ):
01min 44.34sec
CPU Only (Experimental && Open Shading Language is OFF ):
01min 45.05sec
CPU Only (Supported && Open Shading Language is ON ):
02min 21.49sec
CPU Only (Experimental && Open Shading Language is ON ):
02min 19.64sec
=> All of the above CPU cases show the CPU maxed out and the GPU was not used according to CoreCtl.
=> both CPU Renders show almost no activity on the GPU according to CoreCtl
**GPU TESTS:**
GPU Only ("Supported"):
25.16sec
GPU Only ("Experimental"):
25.16sec
=> Both “Supported” and “Experimental” cases above have my GPU maxed out according to CoreCtl
CPU and GPU Enabled in System Settings (Device: "GPU Compute"):
28.09sec
CPU and GPU Enabled in System Settings (Device: "CPU" && Open Shading Language is OFF ):
01min 42.90sec
CPU and GPU Enabled in System Settings (Device: "CPU" && Open Shading Language is ON ):
02min 20.28sec
=> Conclusion: Looks like I dont need the Experimental switch to utilize the GPU and I will switch off my CPU fully.
I suspect that the Experimental option is only needed for GPU architectures other than RDNA2. The image texture bug I linked before (which can cause Blender to crash) reportedly affects RDNA1 & Vega, but not RDNA2. I don’t own any RDNA2 or Vega hardware to test this with, though.