Node overhead: big performance hit with empty nodes

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message
Offline

Robert Arnold

  • Posts: 443
  • Joined: Tue Oct 30, 2012 11:53 pm

Node overhead: big performance hit with empty nodes

PostFri Sep 06, 2019 12:18 am

Since I've started using a fixed node structure in my grading, I've noticed a big slowdown with TNR. It seems that a node graph has an unexpected amount of overhead in terms of playback speed.

For example, in HD, using the standard candle project, I get about 21 fps playback with 4 TNR nodes. This is fine, since i never really need more than 1 TNR node.
Screen Shot 2019-09-05 at 4.57.05 PM.png
Standard candle 4 TNR version
Screen Shot 2019-09-05 at 4.57.05 PM.png (31.13 KiB) Viewed 3063 times


However, if I create a new version and put 15 completely empty nodes in it, then a single TNR node, I get about the same less-than-realtime playback(20fps).
Screen Shot 2019-09-05 at 5.01.46 PM.png
15 empty nodes and one TNR
Screen Shot 2019-09-05 at 5.01.46 PM.png (52.14 KiB) Viewed 3063 times


This is unfortunate, because my standard fixed node structure is 16 nodes.
Screen Shot 2019-09-05 at 4.56.46 PM.png
Fixed node structure
Screen Shot 2019-09-05 at 4.56.46 PM.png (73.71 KiB) Viewed 3063 times

Even if I *disable* all of those nodes except for my TNR node, my playback still drops below real-time with a single TNR node active. This despite the fact that a grade with the same TNR node but no other nodes, plays back at 45fps.

It seems like there must be some major inefficiency under the hood here.....

(Resolve 16.1b2, OS X 10.14.6, AMD Radeon VII, 22-core 2.7GHZ processor, 64GB RAM)
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostFri Sep 06, 2019 2:05 am

Robert Arnold wrote:Since I've started using a fixed node structure in my grading, I've noticed a big slowdown with TNR. It seems that a node graph has an unexpected amount of overhead in terms of playback speed. ...It seems like there must be some major inefficiency under the hood here.....
(Resolve 16.1b2, OS X 10.14.6, AMD Radeon VII, 22-core 2.7GHZ processor, 64GB RAM)

So you're using a Hackintosh running an AMD 22-core processor with Beta software. How does your drive I/O rate on the BMD speed test? What specific type of source material (codec, resolution, and frame rate)?

I typically run anywhere from 12 to 30 nodes in a fixed node structure, and I'll throw in an SNR/TNR node if I need one. I do bypass the nodes I don't need, but I can usually run at speed on a Trashcan Mac with no problem provided it's a 24fps HD timeline. Anything more than that will be a bit of a struggle.
marc wielage, csi • VP/color & workflow • chroma | hollywood
Offline

onejiujitsu

  • Posts: 35
  • Joined: Mon Sep 17, 2018 7:33 pm
  • Real Name: Mohammad Khayat

Re: Node overhead: big performance hit with empty nodes

PostFri Sep 06, 2019 2:50 am

This is a fantastic post. I'm really interested in responses.
Offline

Robert Arnold

  • Posts: 443
  • Joined: Tue Oct 30, 2012 11:53 pm

Re: Node overhead: big performance hit with empty nodes

PostSun Sep 15, 2019 8:56 pm

Marc Wielage wrote: So you're using a Hackintosh running an AMD 22-core processor with Beta software. How does your drive I/O rate on the BMD speed test? What specific type of source material (codec, resolution, and frame rate)?

I typically run anywhere from 12 to 30 nodes in a fixed node structure, and I'll throw in an SNR/TNR node if I need one. I do bypass the nodes I don't need, but I can usually run at speed on a Trashcan Mac with no problem provided it's a 24fps HD timeline. Anything more than that will be a bit of a struggle.


Even with 1920x1080 ProRes 23.98 footage on an HD timeline, reading from an NVMe SSD (around 2.5Gbps r/w), I can't quite play at speed with a single TNR node (2, faster, medium) if it is preceded by 16 empty, disabled nodes. This despite the fact that I can play back the same clip with THREE enabled TNR nodes (as long as there are no other nodes in the graph) at speed. It makes no sense.
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostFri Feb 03, 2023 7:23 pm

Good evening.

I currently have the same issue. I have a fixed node structure, even with almost all of my nodes disabled, just having the nodes on the tree drastically degrades performance.

I have better performance with a 6K image and 4 nodes than a 1080P image with 20 but only four enabled.

Reproducible with any footage type/codec that I have tried.

Windows 10, Resolve 18.1.2, Intel 8086K, Corsair Vengence 128GB, RTX 3090, Samsung NVMEs
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline

Mads Johansen

  • Posts: 866
  • Joined: Mon Dec 19, 2016 10:51 am

Re: Node overhead: big performance hit with empty nodes

PostSat Feb 04, 2023 5:49 am

Mbeare wrote:Good evening.

I currently have the same issue. I have a fixed node structure, even with almost all of my nodes disabled, just having the nodes on the tree drastically degrades performance.

I have better performance with a 6K image and 4 nodes than a 1080P image with 20 but only four enabled.

Reproducible with any footage type/codec that I have tried.

Windows 10, Resolve 18.1.2, Intel 8086K, Corsair Vengence 128GB, RTX 3090, Samsung NVMEs

Does the same thing happen with generated videos (eg the Effects -> Generators -> Four Color Gradient)? (To make the clip visible in the Color Page, create a compound clip)
Davinci Resolve Studio 18.6.6 Build 7, Windows 11, Nvidia 3060 TI, 551.86 Studio
Offline

Jim Simon

  • Posts: 29796
  • Joined: Fri Dec 23, 2016 1:47 am

Re: Node overhead: big performance hit with empty nodes

PostSat Feb 04, 2023 3:19 pm

I tested a UHD BRAW 24 fps clip in a UHD 24 fps timeline. I added a total of 21 nodes.

On or Disabled seemed to make no difference. Playback was 24 fps green.

Studio 18.1.2 on Windows 10
i5-2500K
RTX 3060 12GB VRAM
My Biases:

You NEED training.
You NEED a desktop.
You NEED a calibrated (non-computer) display.
Offline
User avatar

Uli Plank

  • Posts: 21278
  • Joined: Fri Feb 08, 2013 2:48 am
  • Location: Germany and Indonesia

Re: Node overhead: big performance hit with empty nodes

PostSun Feb 05, 2023 3:11 am

Same here.
I always use a standardised node tree and empty nodes don't have any significant impact on speed.
No, an iGPU is not enough, and you can't use HEVC 10 bit 4:2:2 in the free version.

Studio 18.6.5, MacOS 13.6.5
MacBook M1 Pro, 16 GPU cores, 32 GB RAM and iPhone 15 Pro
Speed Editor, UltraStudio Monitor 3G, iMac 2017, eGPU
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostSun Feb 05, 2023 5:23 am

Same as Uli and the others. I'm on a 2019 Mac Pro and routinely use somewhere between 20 and 25 nodes, and it's been fine in terms of speed. I upped it a couple of weeks ago to 36 nodes just as an experiment for an entire project, and while the sheer number of nodes slowed me down in terms of workflow (just in trying to find the right node #), it didn't affect playback performance at all.
marc wielage, csi • VP/color & workflow • chroma | hollywood
Offline
User avatar

Uli Plank

  • Posts: 21278
  • Joined: Fri Feb 08, 2013 2:48 am
  • Location: Germany and Indonesia

Re: Node overhead: big performance hit with empty nodes

PostSun Feb 05, 2023 7:20 am

It seems to be difficult to reproduce, independent of the OS.
Try to export that timeline and open it in a fresh project. Still the same?
No, an iGPU is not enough, and you can't use HEVC 10 bit 4:2:2 in the free version.

Studio 18.6.5, MacOS 13.6.5
MacBook M1 Pro, 16 GPU cores, 32 GB RAM and iPhone 15 Pro
Speed Editor, UltraStudio Monitor 3G, iMac 2017, eGPU
Offline

Robert Arnold

  • Posts: 443
  • Joined: Tue Oct 30, 2012 11:53 pm

Re: Node overhead: big performance hit with empty nodes

PostTue Feb 07, 2023 6:49 am

Uli Plank wrote:It seems to be difficult to reproduce, independent of the OS.
Try to export that timeline and open it in a fresh project. Still the same?


My post was from 2019. It subsequently became a known issue and was fixed a few versions ago!
Offline
User avatar

Joe Shapiro

  • Posts: 2682
  • Joined: Thu Jul 25, 2013 7:23 am
  • Location: Los Angeles CA USA

Re: Node overhead: big performance hit with empty nodes

PostTue Feb 07, 2023 7:21 am

Would you be so kind as to change the Subject of the original post so it's got Fixed: (or some such) in it? :)
Director, Editor, Problem Solver. Been cutting indie features for 23 years. FCP editor from version 2 to 7.
Resolve 18.6.3
MacBook Pro 16" M1 Max 64GB RAM, macOS 14.1
MacBook Air 13" M1 8GB RAM, macOS 14.1
Offline
User avatar

Uli Plank

  • Posts: 21278
  • Joined: Fri Feb 08, 2013 2:48 am
  • Location: Germany and Indonesia

Re: Node overhead: big performance hit with empty nodes

PostTue Feb 07, 2023 7:48 am

Yeah, but Misha revived it. I doubt it's the same issue.
No, an iGPU is not enough, and you can't use HEVC 10 bit 4:2:2 in the free version.

Studio 18.6.5, MacOS 13.6.5
MacBook M1 Pro, 16 GPU cores, 32 GB RAM and iPhone 15 Pro
Speed Editor, UltraStudio Monitor 3G, iMac 2017, eGPU
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostFri Feb 10, 2023 11:04 am

It is hard to reproduce. It does not seem to happen on other machines. I am still trying to work out what is causing this.
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostSat Feb 11, 2023 2:14 am

And here's a 36-node tree as an illustration (not necessarily what I use -- today it's just 21):

Image

I often warn students that the problem with using a large node tree is it's tough to do without the Advanced Panels, which allow you to select a node number and immediately jump to it. Can't do that on the Mini or Micro panel (or the Tangent panels). Even on the Advanced, I start getting pretty fumbly over 25 nodes. And there are routinely people who use 30-40-50 nodes.

As arelated note: Walter Volpatto has a terrific 90-minute discussion of Fixed Node Trees, and he says a lot of what needed to be said:

https://ravengrade.com/landing/fixed-no ... -volpatto/

(Note that Ravengrade is a paid tutorial site, but I think they have a lot to offer.)
marc wielage, csi • VP/color & workflow • chroma | hollywood
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostFri Jun 30, 2023 6:13 pm

I have managed to test this on an upgraded machine as per bio.


Example 01: 5 serial nodes (with LUT as ODT) First node is a Davinci Noise Reduction Node with Temporal on 3 Frames both set to 25 and Spatial set to enhanced and both to 25. We get full 25Fps playback. In the task manager our GPU usage is 100 Percent.

Example 02 (Problem): In a large fixed node tree of 30+ nodes with only 5 enabled and the same noise reduction as the first node with the same settings. We are getting 3 FPS. In the task manager the GPU usage is %10 - %20.

This is with 1080P ProRes footage From a BMD G2 Ursa Mini.


Blaclmagic responded to my email saying that the behaviour is expected and that disabled nodes do infact have an overhead.

I wish that it could be solvable..
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostSat Jul 01, 2023 3:27 am

Mbeare wrote:I have managed to test this on an upgraded machine as per bio.

A lot changed at some point in Resolve 18, and I can say (at least for us) performance jumped up quite a bit with 18.1. 18.1.4 has been smooth as silk, and we finished a 5K Red project with 36 nodes on every shot in the entire film, plus an OFX node for Dehancer grain and film emulation, and the system never broke a sweat, This was a 16-core 2019 Mac Pro with 256GB of RAM, two internal SSDs, a Radeon Pro Vega II Duo GPU, and a boatload of TB3 RAIDs.
marc wielage, csi • VP/color & workflow • chroma | hollywood
Offline
User avatar

Joe Shapiro

  • Posts: 2682
  • Joined: Thu Jul 25, 2013 7:23 am
  • Location: Los Angeles CA USA

Re: Node overhead: big performance hit with empty nodes

PostSat Jul 01, 2023 3:41 am

Seems like both Mbeare and Marc’s observations can be true.

Things are generally faster and quite performant - and there’s a situation where they aren’t. Right?
Director, Editor, Problem Solver. Been cutting indie features for 23 years. FCP editor from version 2 to 7.
Resolve 18.6.3
MacBook Pro 16" M1 Max 64GB RAM, macOS 14.1
MacBook Air 13" M1 8GB RAM, macOS 14.1
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostSat Jul 01, 2023 9:44 am

Marc Wielage wrote:
Mbeare wrote:I have managed to test this on an upgraded machine as per bio.

A lot changed at some point in Resolve 18, and I can say (at least for us) performance jumped up quite a bit with 18.1. 18.1.4 has been smooth as silk, and we finished a 5K Red project with 36 nodes on every shot in the entire film, plus an OFX node for Dehancer grain and film emulation, and the system never broke a sweat, This was a 16-core 2019 Mac Pro with 256GB of RAM, two internal SSDs, a Radeon Pro Vega II Duo GPU, and a boatload of TB3 RAIDs.


So performance is absolutely blazing with everything else.

Except with noise reduction.

Which is only slow when there are many disabled nodes. The part that is odd is that GPU utilisation with 1 NR node is at 100 percent and full FPS. While with a large tree with nodes disabled except for NR the FPS is at a crawl but GPU utilisation is at 10/20 percent.

Something about that does not feel right.
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostSat Jul 01, 2023 11:10 am

Joe Shapiro wrote:Seems like both Mbeare and Marc’s observations can be true.

Things are generally faster and quite performant - and there’s a situation where they aren’t. Right?


Correct!
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostMon Jul 17, 2023 6:02 am

Morning Marc,

For interest sake, on this test, did you have noise reduction enabled? The performance degradation only appears when using large node tree and enabling noise reduction. E.g 4 nodes including NR getting full 25fps playback vs 35 nodes (of which 33 excluding CSTs are disabled) and NR nets about 10fps or so?

Marc Wielage wrote:And here's a 36-node tree as an illustration (not necessarily what I use -- today it's just 21):

Image

I often warn students that the problem with using a large node tree is it's tough to do without the Advanced Panels, which allow you to select a node number and immediately jump to it. Can't do that on the Mini or Micro panel (or the Tangent panels). Even on the Advanced, I start getting pretty fumbly over 25 nodes. And there are routinely people who use 30-40-50 nodes.

As arelated note: Walter Volpatto has a terrific 90-minute discussion of Fixed Node Trees, and he says a lot of what needed to be said:

https://ravengrade.com/landing/fixed-no ... -volpatto/

(Note that Ravengrade is a paid tutorial site, but I think they have a lot to offer.)
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostWed Aug 02, 2023 3:50 pm

I have been able to recreate this issue on other machines. Essentially with DR NR enabled performance decreases as nodes are added and whether they are disabled or not.

Essentially there is no point in disabling nodes purely for performance with.
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline

Jim Simon

  • Posts: 29796
  • Joined: Fri Dec 23, 2016 1:47 am

Re: Node overhead: big performance hit with empty nodes

PostFri Aug 04, 2023 10:44 pm

I added Temporal NR to two clips, both UHD BRAW 24 fps in a UHD 24 fps timeline.

One clip had a single node, the other had 30 nodes.

Both clips ran about half speed with the NR node on. Both clips ran full speed with the NR node Disabled.


Studio 18.5 on Windows 10
i5-2500K
RTX 3060 12GB VRAM
My Biases:

You NEED training.
You NEED a desktop.
You NEED a calibrated (non-computer) display.
Offline

genaricname

  • Posts: 10
  • Joined: Wed Jan 12, 2022 8:47 am
  • Real Name: Thatcher Freeman

Re: Node overhead: big performance hit with empty nodes

PostSun Aug 06, 2023 6:02 am

Some of the variation in everyone's results here might come from the quantity of nodes used and your system specs. I've got two computers and was able to reproduce the behavior of "Disabled nodes negatively impact performance when there's temporal noise reduction" on both computers, just with a different quantity of disabled nodes.

Experimental Setup:
1. 4k Prores 422 clip on a fresh 1080p timeline, both 24fps
2. Node 1 in the node tree is temporal noise reduction with the settings in the screenshot of an example node tree in this setup (3 frames, Better motion estimation, 25 Luma/Chroma). This has fine playback performance on both systems, by default.
3. I then add N serial nodes that are all disabled and have no operations in them. There are no other nodes in my graph.
4. For several values of N, I hit play and measure the framerate.

On my Macbook, I found that above about 66ish disabled nodes, the playback performance started to decline. On my aging Windows PC, playback performance started to decline at 19ish nodes. Both further declined as the quantity of unused nodes went up. Both systems were able to play the clip back at a full green 24fps with only the noise reduction node.

Macbook Specs:
14" M1 Max, 32GB RAM, MacOS Ventura 13.4.1

Windows PC Specs:
GTX 1080, Intel i7 7700K, 32GB RAM, Windows 10

Both on Resolve Studio 18.1.4.
Attachments
Screenshot 2023-08-05 at 10.52.34 PM.png
Screenshot 2023-08-05 at 10.52.34 PM.png (84.57 KiB) Viewed 896 times
Screenshot 2023-08-05 at 10.27.46 PM.png
Screenshot 2023-08-05 at 10.27.46 PM.png (956.8 KiB) Viewed 896 times
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostSun Aug 06, 2023 7:07 am

genaricname wrote:Both on Resolve Studio 18.1.4.

It's not true for me in 18.5, but I rarely run with more than 40 nodes. On an average session, I usually stick with about 25 nodes, and maybe 1/3 of those are bypassed. I have seen performance hits with Render Cache nodes, but only while the cache is being rendered in the background.

I know people who use quite a few nodes, but I don't know a lot of people in LA who are doing 50-60+ nodes. There's a point where it's counter-productive, because you start tripping up and forgetting where the hell you are, what was changed, what wasn't changed, what nodes you need to ripple forward to a given scene, and so on. After 40, it gets a bit challenging... and you can make an argument that maybe you could get 90% of the same picture in much less time with fewer nodes. I'd also argue that maneuvering around without an Advanced Panel will kill you; it's rough even with 40 nodes (for me).
marc wielage, csi • VP/color & workflow • chroma | hollywood
Offline

genaricname

  • Posts: 10
  • Joined: Wed Jan 12, 2022 8:47 am
  • Real Name: Thatcher Freeman

Re: Node overhead: big performance hit with empty nodes

PostSun Aug 06, 2023 8:02 am

To be fair, I don't ever actually use 60 nodes myself and rarely use temporal noise reduction because my specific camera usually doesn't need it, but you can see on my Windows machine that I'm getting performance problems with only 20 nodes, and that's 20 nodes that are disabled and in principle should have zero impact on performance. The number of disabled nodes before experiencing slowdown decreases if my noise reduction settings are more extreme, and on my Macbook, with more extreme temporal noise reduction settings I can experience slowdown at about 38ish nodes.

I don't actually think that anyone has 60 serial nodes in their clip-level grade in practice, but you could plausibly have a few dozen nodes in your clip level and a few dozen at the group level. Maybe some of those are compound node powergrades that you've turned off, and maybe many of your nodes are in your fixed node tree just in case the client has some feedback or they are placeholders for niche adjustments you might want to make on occasion, etc. It's not implausible that your graph could get large enough that this would be a problem, especially on a lower spec machine. IMO it's fair to expect that disabled nodes should not have any performance impact, and this does impact users who have a fixed node tree and frequently use temporal noise reduction (at least in 18.1.4).
Offline
User avatar

Mbeare

  • Posts: 92
  • Joined: Tue Nov 17, 2020 6:27 pm
  • Location: Cape Town, South Africa
  • Real Name: Misha Beare

Re: Node overhead: big performance hit with empty nodes

PostSun Aug 06, 2023 8:04 am

genaricname wrote:To be fair, I don't ever actually use 60 nodes myself and rarely use temporal noise reduction because my specific camera usually doesn't need it, but you can see on my Windows machine that I'm getting performance problems with only 20 nodes, and that's 20 nodes that are disabled and in principle should have zero impact on performance. The number of disabled nodes before experiencing slowdown decreases if my noise reduction settings are more extreme, and on my Macbook, with more extreme temporal noise reduction settings I can experience slowdown at about 38ish nodes.

I don't actually think that anyone has 60 serial nodes in their clip-level grade in practice, but you could plausibly have a few dozen nodes in your clip level and a few dozen at the group level. Maybe some of those are compound node powergrades that you've turned off, and maybe many of your nodes are in your fixed node tree just in case the client has some feedback or they are placeholders for niche adjustments you might want to make on occasion, etc. It's not implausible that your graph could get large enough that this would be a problem, especially on a lower spec machine. IMO it's fair to expect that disabled nodes should not have any performance impact, and this does impact users who have a fixed node tree and frequently use temporal noise reduction (at least in 18.1.4).



So far I am picking up the same behaviour on 18.5.
Gigabyte Aero D | Intel 13900K 5.3GHz AIO | 128GB DDR5 Corsair Vengeance | RTX 4090 Drivers 551.23 | 2x 4TB Firecuda 1x 8TB MP600 System, Cache & Working.

Micro & Mini Panel
Decklink Studio 4K E12G(12.5.1)
Resolve 18.6.2B2
Windows 11 10.0.22631
Offline

Jim Simon

  • Posts: 29796
  • Joined: Fri Dec 23, 2016 1:47 am

Re: Node overhead: big performance hit with empty nodes

PostSun Aug 06, 2023 11:35 pm

genaricname wrote:Some of the variation in everyone's results here might come from the quantity of nodes used and your system specs.
OK, I did finally start to see a change.

Adding Temporal NR to the first node, I kept adding 5 at a time and checked performance. At 40 nodes, I was getting 1 or 2 fps slower playback. At 50 nodes I got 2 to 4 fps reduction in playback.

i5 2500K
RTX 3060 12 GB (Gaming driver)
Studio 18.5
Windows 10
My Biases:

You NEED training.
You NEED a desktop.
You NEED a calibrated (non-computer) display.
Offline
User avatar

Marc Wielage

  • Posts: 10901
  • Joined: Fri Oct 18, 2013 2:46 am
  • Location: Hollywood, USA

Re: Node overhead: big performance hit with empty nodes

PostMon Aug 07, 2023 8:26 am

genaricname wrote:To be fair, I don't ever actually use 60 nodes myself and rarely use temporal noise reduction because my specific camera usually doesn't need it, but you can see on my Windows machine that I'm getting performance problems with only 20 nodes, and that's 20 nodes that are disabled and in principle should have zero impact on performance. The number of disabled nodes before experiencing slowdown decreases if my noise reduction settings are more extreme, and on my Macbook, with more extreme temporal noise reduction settings I can experience slowdown at about 38ish nodes.

I think there's a couple of strategies you can do:

1) I generally try to avoid NR by habit, just because I don't always like what it does to the picture. There's always a price to be paid for a "scrubbed" picture.

2) when I have to use NR, I try to avoid using it in an early node (particularly node #1), partly because I don't like what it does to Log images, and partly because there are sometimes performance hits.

3) for me, NR works better with a "normal" image with lots of contrast, and it's the contrast that sometimes brings out the noise inherent in the picture. For me, if I was using NR, it'd be somewhere in the middle of the Node tree, maybe node #11 or #12. I could potentially cache it there, then have all kinds of trim nodes following it that wouldn't change the cache.

4) when I do need NR, I generally reach for Neat and do it as a separate pass. I get that it's an extra expense, plus it takes a lot more time to do it that way.

I don't actually think that anyone has 60 serial nodes in their clip-level grade in practice, but you could plausibly have a few dozen nodes in your clip level and a few dozen at the group level. Maybe some of those are compound node powergrades that you've turned off, and maybe many of your nodes are in your fixed node tree just in case the client has some feedback or they are placeholders for niche adjustments you might want to make on occasion, etc. It's not implausible that your graph could get large enough that this would be a problem, especially on a lower spec machine. IMO it's fair to expect that disabled nodes should not have any performance impact, and this does impact users who have a fixed node tree and frequently use temporal noise reduction (at least in 18.1.4).

I haven't experienced that problem, but it's rare that I have more than 5 or 6 nodes in a Group Grade, and I do typically have somewhere between 20-36 at the Clip level (even fewer if it's a time-sensitive session). Zero slowdowns. I had a session in the last few months where I had Dehancer as one of the Group Post-Clip level grades, and the machine still played at speed. There are some gnarly plug-ins -- BorisFX and Sapphire among them -- that you have to cache, and it's just the way it is.

I agree that coming up with a "Node Strategy" -- to stay productive, work quickly, make good pictures, and keep the client happy -- is an important aspect that not a lot of people talk about. For me, keeping it simple helps quite a bit. I don't remember which version addressed the "bypassed node" issue and improved performance, but it was definitely noticeable when that Resolve release happened.

I have seen some crazy, crazy node trees out there that do use upwards of 50-60-70 nodes, but -- for me -- it's not an ideal way to work, for the reasons stated before. For example: you start throwing lots of external mattes in a really huge project... it can get extraordinarily complicated, very quickly.
marc wielage, csi • VP/color & workflow • chroma | hollywood

Return to DaVinci Resolve

Who is online

Users browsing this forum: BabaJaga, Charles Bennett, Juan Ugarriza, LuciaDGE, panos_mts, Steve Alexander and 148 guests