Cycles HIP for AMD

You should put that information in your text because this will make a lot of people confused.

For BMW27 2560x1440 100% my laptop RTX3060 made it in 92 sec in OPTIX, HWiNFO said it got to 112W consumption maximum. It should have been able to go to 130W.

This test was made with several stuff working 3 browsers, anti virus etc. By my experience i don’t think i can improve that to more than to about 85-87 sec.
Buit i 'll test again next time i’ll make a reboot.

https://www.hwinfo.com Can show the consumption power.

I think it is fair, if people buy a RTX card today, OPTIX is available so they will use that. I know there are some GTX stuff still around being sold like 1660 but you would need to show those in CUDA vs OPTIX. I don’t think there is sense in making CUDA tests for RTX cards, just a waste of (your) time.

Yes you did.

AMD was also waiting Cycles to be rewritten (aka Cycles X) for better integration.

That’s not correct. We were looking to move blender to use hip but bumped up the timeframe due to cycles x, it was definitely in planning before we heard about cycles x.

Admittedly I am biased here but if I could comment on a few things. There was a few claims that amd cards got SLOWER from 2.93 to now? Please cite some information I’d be really curious to see this.

I do feel we have quite a bit of room for optimization of the hip backend with or without hardware accelerated ray tracing. What is there now is mostly a port of cuda code to use hip with optimizations that have taken years to do for cuda.

Finally as others have pointed out AMD cards might not win the overall compute crown here but if you’re running long animation renders or on a big farm, power consumption definitely does matter!

3 Likes

The getting slower part was explained by the author. He has adjusted the setting of the scene, making it harder to render. Not knowing this, and seeing the peculiar results, for example 3070/3070ti, scoring the same in both tests (other cards rendered even faster), while 6800xt taking some 35% longer to render made for a false conclusion about speed degradation.

A drop of 30% or more is not unheard of for AMD. There were a couple of instances where AMD cards suffered some 30% performance loss due to a “shader” rewrite. I believe it was version 2.81 or 2.82? There was another instance where viewport performance got halved moving between Blender versions. Took until a few releases later for the performance to be gained back. So, seeing a test of a brand new code rendering some scene slower, others quicker, is not out of the realm of possibility, given the track record.

I think hardly anybody here cares about the performance crown, just a comparable performance per currency spent would be nice. As it stands, all APIs considered, the 6800xt is only really competing with the 3060 class card. That being said, in scenes like the still life the 3060 is twice as fast. A rather weak showing for a card costing anywhere near 50% to a 100% more.

As for power consumption, a 3060 states 170W for a gaming workload, so rendering should be what, in the 140W range? Taking into account that it may be twice as fast in some scenarios, the power consumption argument is a loss as well. Just about the only saving grace for the 6800XT are the extra 4 gigs of ram.

Well, here’s to hoping that things will improve, hopefully before the card gets obsoleted even further by the arrival of a 4060. :laughing:

Based on some testing I’ve been doing, OpenCL vs HIP performance seems to depend greatly on material composition and what features you’re using.

I’ve got one scene that I’ve been testing with and I get a render time of ~6 minutes on 2.93 OpenCL with a Radeon 5700XT, rendering a 3840x2160 frame to 768 samples with a tilesize of 2048x2048. On 3.0 with HIP I get ~8:30. The scene has 2 materials that are using procedural textures and everything else is a mixture of single colour diffuse and emissive textures.

But I’ve got another scene that takes ~8 minutes in 2.93 OpenCL for a 1080p render to 128 samples, with 2048x2048 tilesize, but 3.0 HIP renders it in 1 minute and 10 seconds. In this scene all of the materials use multiple image textures (Diffuse, ORM, Normal Map and some have Emissive or Displacement textures. They’re all assets from a game I worked on, so don’t even ask me to share this scene because I can not.) and some have microdisplacement. The weird thing is that when I render this scene in 2.93, while it definitely is using the GPU to render, it doesn’t max it out. Power usage goes up to ~125 watts. 3.0 maxes out the GPU, with power usage going to an average of around 180 watts. With the first scene the GPU gets maxed out in both 2.93 and 3.0. Could that difference in utilization account for nearly 7 minutes difference in render time? It doesn’t seem that likely to me.

I have rebooted and the
BMW27 at 2560x1440 100% OPTIX in laptop RTX3060

1st try : 89 sec 110w max GPU consumption and was always above 100w, 37w 5800H CPU peak but was around 14-18w most of the time.
2nd try (without closing Blender) : 85 sec 112w max GPU consumption, 37w same as above for the 5800H

Energy consumption from HWiNFO
I had browser, AV+firewall, HWiNFO, search, defender working.

So, if the current implementation is an emulation of CUDA. What would it take to take advantage of the hardware raytracing? An emulation of Optix code? How long until the feature is available for AMD? A year, two years? How does AMD do it on their own ProRender? As far as I know they use OpenCL for that, no?

There are ways with most gpu programming languages to access hardware registers. In prorender we do this to use the hardware ray tracing features. Since we know what they are.

With something that is a public api for something like hip it’s important to do this right for everyone who uses the api now and in the future as well as supporting future hardware. It’s not an instantaneous process hence there is no date set!

What is in blender is not an emulation of cuda. See my previous comments

5 Likes

hey, thanks for your benchmark.

I would say you should have compared Hip with cuda instead of Optix untill they integrate their own ray tracing library.

I’m actually wanting to buy a graphic card and the 16Gig of the 6800 is tempting me, the 3090 is too much for me and the 6800 is cheaper than a 3080

You should stick to the stock scenes, res and sample count from Blender so we can compare to our own hardware and hardware on open data

1 Like

Do you think, now that AMD is quite invested in Blender / Cycles, that support moving forward will be as good as CUDA?

I remember getting all excited when they released their OpenCL patches a few years ago, only for it to fall behind in terms of support (compared to CUDA) within 12 months.

I am happy to be proven wrong but I don’t think so…

  • The list of supported GPUs isn’t good
  • Speeds in Windows with RDNA isn’t good
  • Community sentiment to the HIP and ROCM Github projects isn’t good.
  • Linux support for RDNA has been pushed back to 3.2 which isn’t good.

To make something “good” takes allot of work and its pretty obvious neither AMD or Blender are prepared to commit the resources.

1 Like

Implementation of HIP in Blender 3.0 was necessity, they didn’t planned it that soon. So they were forced to do it ASAP hence limited support for GPU and implementation to “let’s at least make it work, no time for more”, as far as I understand current implementation is mostly just ported CUDA code.

Don’t know what’s implied here. Code have bugs, that’s completely normal.

The current situation is the result of large companies assessing risks and choosing the lesser of two evils, AMD and Blender feel they will loose less sales / users / grants / reputation with the “HIP” approach when compared to continued OpenCL or new RadeonProRender support.

If you have time and enjoy the sound of fingernails on a chalkboard then 1345 and 887 in my opinion reflects ROCM sentiment.

I think this is a reflection of AMD, but I am just hesitant of dropping a few thousand dollars down on a new high end GPU, when I dont know whether it will be supported in 1-3 years. Heck, even the Radeon VII is barely supported anymore.

I think its a reflection on AMD, Blender and Nvidia. Blender had a decision to make in relations to their mission “get the world’s best 3d technology in the hands of artists as open-source, and make amazing things with it.”

Blender chose “world’s best” (CUDA / OPTIX) over “open-source” (OpenCL)… AMD also has ProRender but it looks closed source and doesn’t offer 1:1 Cycles support.

They choose well. Cycles got where it is with CUDA/OPTIX.

You have a valid opinion. I can’t form a watertight argument either way, is causing some suffering to all more noble that great suffering to some?

Well Blender isn’t responsible for what others manufacturers can’t achieve. Throwing resources at something that would not improve much is not wise.

That said Nvidia have a hole in their lineup: low VRAM in their cards. If AMD and others can improve their speed in meantime they have a shot.