[Help] Understanding how Sop Geometry Cache is working

   1086   0   0
User Avatar
Member
8 posts
Joined: July 2018
Offline
Hi,
In order to solve or control our memory issue I need to better understand how Houdini sop node is dealing with geometry cache.
What I tend to understand is that each node stores its own geometry output so you can quickly inspect already computed node, get geometry information from distant nodes… So basically, if I have a big geometry that pass through multiple nodes (let's say 50) I will have 50 times the geometry in cache. Right?
Then I noticed the unload flag... what I understand is that if set this node won't store any cache data and recompute every time it's content as soon as this node is not selected nor displayed. But unfortunately, in my Houdini core, the node that has this flag do not execute again as soon as I select another one and reselect it.
Maybe it's because this HDA is made of sub nodes that does not have this unload flag (even if the HDA is still locked) I don't know...
Anyway, what I would love is that I could wipe sop geometry cache inside an HDA and only keep the result as soon it is computed... I mean if I have one HDA node that has 50 children inside I just want this node to store the result, but I don't want the inner nodes to store their own result as well as soon as the result is computed. I assume that if I could do that, I will remove 50 cached nodes output and it could save a lot of memory...
In a layout that exec HDA A then B then C and A B and C contain a lot of heavy nodes that grows the memory footprint, I would love node inside A to clear their node cache as soon as A has stored the result.
Maybe there is a way to do that?
I also tried the cache manager and the texport/sopcache function to test some cache cleaning.
I succeed to clean cache using HScript “opunload -R NodePath”, and as soon as I execute this my node is recomputed as soon as I come back on him.
Maybe I should add a cache node after A and after this cache node trigger a clean cache of A ?
On another hand I don't want to pollute my nodal layout with such nodes and don't even know if I could trigger the HScript “opunload -R NodePath” in one Node during execution.
Also, since our HDA are created in Houdini core and after massively executed on Houdini engine, I'm wondering if we have an option in Houdini engine to minimize the cache storage since we don’t need to get the output for each node as often as in Houdini core. Maybe cache should be kept in memory if a node is referenced…

If you have any information that could help on managing cache efficiently, feel free to explain !!

FYI I’m still stuck at houdini 18.0 for now….

Regards,

FRED
  • Quick Links