Cycles AMD HIP device feedback

When I enable GPU rendering the GPU is listed in the verbose settings, but there seems to be problem with HIP using it (hipErrorInvalidValue in hip_device_runtime.cpp):

:3:rocdevice.cpp            :414 : 2518353392 us: 20809: [tid:0x7fc613447180] Initializing HSA stack.
:3:comgrctx.cpp             :33  : 2518380086 us: 20809: [tid:0x7fc613447180] Loading COMGR library.
:3:rocdevice.cpp            :205 : 2518383646 us: 20809: [tid:0x7fc613447180] Numa selects cpu agent[0]=0x7fc5d5ce1e00(fine=0x7fc5d65f5880,coarse=0x7fc5d6a655c0) for gpu agent=0x7fc5d5e82e00
:3:rocdevice.cpp            :1603: 2518383762 us: 20809: [tid:0x7fc613447180] HMM support: 1, xnack: 0, direct host access: 36

:4:rocdevice.cpp            :1899: 2518383793 us: 20809: [tid:0x7fc613447180] Allocate hsa host memory 0x7fc5ee85e000, size 0x28
:4:rocdevice.cpp            :1899: 2518384131 us: 20809: [tid:0x7fc613447180] Allocate hsa host memory 0x7fc5aff00000, size 0x101000
:4:rocdevice.cpp            :1899: 2518384537 us: 20809: [tid:0x7fc613447180] Allocate hsa host memory 0x7fc5afd00000, size 0x101000
:4:runtime.cpp              :82  : 2518384773 us: 20809: [tid:0x7fc613447180] init
:3:hip_context.cpp          :50  : 2518384777 us: 20809: [tid:0x7fc613447180] Direct Dispatch: 1
:3:hip_context.cpp          :145 : 2518384785 us: 20809: [tid:0x7fc613447180] hipInit: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :507 : 2518384792 us: 20809: [tid:0x7fc613447180] hipGetDeviceCount ( 0x7ff,f8a,594,130 )
:3:hip_device_runtime.cpp   :509 : 2518384796 us: 20809: [tid:0x7fc613447180] hipGetDeviceCount: Returned hipSuccess : 
:3:hip_device.cpp           :117 : 2518384801 us: 20809: [tid:0x7fc613447180] hipDeviceGetName ( 0x7ff,f8a,594,1d0, 256, 0 )
:3:hip_device.cpp           :139 : 2518384804 us: 20809: [tid:0x7fc613447180] hipDeviceGetName: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :141 : 2518384809 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,150, 23, 0 )
:3:hip_device_runtime.cpp   :331 : 2518384812 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :141 : 2518384816 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,180, 61, 0 )
:3:hip_device_runtime.cpp   :331 : 2518384819 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :141 : 2518384823 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,144, 69, 0 )
:3:hip_device_runtime.cpp   :328 : 2518384826 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipErrorInvalidValue : 
:3:hip_device_runtime.cpp   :141 : 2518384830 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,148, 67, 0 )
:3:hip_device_runtime.cpp   :331 : 2518384832 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :141 : 2518384836 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,14c, 68, 0 )
:3:hip_device_runtime.cpp   :331 : 2518384839 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipSuccess : 
:3:hip_device_runtime.cpp   :141 : 2518384844 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute ( 0x7ff,f8a,594,134, 18, 0 )
:3:hip_device_runtime.cpp   :331 : 2518384847 us: 20809: [tid:0x7fc613447180] hipDeviceGetAttribute: Returned hipSuccess : 
I0402 21:40:41.477293 20809 device.cpp:174] Device has compute preemption or is not used for display.
I0402 21:40:41.477303 20809 device.cpp:177] Added device "AMD Radeon RX 5600 XT" with id "HIP_AMD Radeon RX 5600 XT_0000:0b:00".
1 Like

Update for 3.1 open data as per late March 2022. Might update when open data supports 3.2 to add OneAPI / HIP Linux / HIP ray-tracing if available.

Additions

  • Now reports ā€œScoreā€
  • Metal was added - interesting to see it out perform HIP and support Polaris (RX 580).

Warning about the following chart

  • Opendata has very few entries for 3.1 only devices 4+ samples are shown
  • Opendata by design has multiple uncontrolled variables between samples including supporting hardware and operating system.
  • Laptop, professional and Apple silicon GPUā€™s removed.
  • There could be errors, I didnā€™t check it and Iā€™m not a statistician.
  • RX 6800 data was split, data around 1460 was used as the values in the 400ā€™s didnā€™t make sense.

EDIT: at request of bsavery price data removed and sorted.

2 Likes

I kind off agree on removing laptop GPUs, but proffesional would be nice on this chart.

Apple Metal outperforms AMD HIP on their own devices ? Has this been verified ? Plus adding support to unsupported cards. What are the issues that prevent AMD from supporting the same cards ?

Tested the Linux build again, with the just released ROCm 5.1.1. No changes, GPU compute still causes Blender to crash or freeze, depending on scene complexity. Rendering just the default cube causes a hang, more complex scenes crash while allocating host memory (address boundary error). If the issues are caused by a bug in the runtime, it hasnā€™t been fixed in 5.1.1.

3 Likes

Thatā€™s a bummer I had high hopes for ROCm 5.1.1. What Device OS if you donā€™t mind.

Arch, using packages from rocm-arch.

Guess weā€™ll have to wait for bsavery or Sayak Biswas to return, unless somebody else wants to give it a spin. Which could be a foolā€™s errant, given that it might still be an issue with the runtime.

1 Like

I could be wrong, but I havenā€™t seen any development since 5.1.

:: AUR packages will be installed:
comgr 4.5.2-1 ā†’ 5.1.1-1

etc

Arch packages have been updated to 5.1.1, Iā€™ll need to rebuild entire rocm since I still have it at 4.5, and will give it a try

Hi! I have a laptop Asus rog strix G513qy Advantage Edition with AMD RX 6800m and blender just closed each time i hit render in all versions from blender 3.0 to blender 3.2. It was written that blender HIP supports RX 6000 series. Also if i open blender with default cube scene and hit render in viewport it works with cube but only in blender 3.2 . But with any other scene with materials and etc it crashes.
Windows 11

1 Like

Hello all in this thread. Regarding the linux issue with ROCM 5.1 drivers, Iā€™ll update in the Blender rendering meeting but for the users here FYI.

The upcoming Closed Source 22.10 drivers have the fixes weā€™ve been testing blender with internally and should work. (should be released this next week)

For some reason the open source ROCM 5.1 drivers do not have this fix, and weā€™re working to get the people who maintain this to merge it asap.

4 Likes

Thanks for the update! When you say drivers, does that mean the bug is actually in amdkfd?

22.10 upcoming ?? 22.10.1 drivers have already been released on the 4th of April. Looking at the repo, and looks like something on the 9th ( but hidden )
ROCm is at 5.1.1
https://repo.radeon.com/amdgpu/

Looks like HIP RT (that @bsavery hinted about) is out now ā€“ Introducing HIP RT - a ray tracing library in HIP - GPUOpen

I guess its a matter of time before hardware RT will come to the 6000 Series in blender

Correct! Weā€™re evaluating it now. No definite timeline but our hope would be to have that in this year. (Iā€™m being conservative weā€™ll get a better more clear date in the future).

1 Like

Very odd. 22.10 (5.1) and 22.10.1 (5.1.1) from repo.radeon were tested and failed as documented above in this thread. I guess 22.10.2 (5.1.2) is on its way, hopefully it worksā€¦

As far as I can tell the current public closed source Linux driver remains at 21.50.2 (5.0.2) released 3/7/2022, despite 22.10 (5.1) and 22.10.1 (5.1.1) existing on repo.radeon.

The AMD site is often behind with releases it takes a while to refresh I guess. Isnā€™t the repo Public, I mean its location is in the link to download the Drivers from the AMD site.

Looks like they are working on something internally that has been committed on the 9th.

Is the license of the RT library a free and open source license compatible with Blender ?
Are you working in a free and open source RT implementation ?

I hope that it will be available with open source drivers.

Optix is closed source yet used in blender.

It should work on any driver that has a hip runtime. You can download and try the example.

Wait, so the HIP-RT library specifically is closed source? How come? I mean it probably doesnā€™t matter too much since itā€™s a very hardware-specific thing but itā€™s still odd considering itā€™s part of an open software platform.

1 Like