I have a show put together with multiple scenes for different visual looks. Currently they are all contained within containers and I switch between them with a script that is used to turn on and off cooking depending on which scene I call.
Since touch is 32bit, this means I can only take advantage of a certain amount of ram even though my machine has over 10gigs.
Would it be worth while to look into running each of my scenes in a separate instance of touch designer and using a master instance to do the final compositing and switching between each of the scenes? It seems like this would allow me to take advantage of more CPU cores and RAM.
Are there any concerns with reliability in doing things this way?
Are the Touch IN and Touch OUT TOPs 100% reliable and considered show worthy?
About multiple instances, if you do it, you should use shared memory and not socket based data sharing.
But you can only bind touch to a certain gpu with quadro cards. With GeForce cards, you should not launch multiple instances at the same, as it will cause the driver to slow things down . Hmmm, if you auxiliary instances are not displayed and only render to shared memory, it might work. Not sure, better see what Malcolm has to say.
How much CPU memory are you actually using? If your not crashing Touch by using to much ram then I don’t think you’ll see any performance difference by having the containers loaded or not in the same instance. The only time I ever had a problem with using to much ram was once when I had hundreds of moviein’s in a project and I would cycle through all of them. I got around that by using the unloadmovie command when each movie was no longer being played. The only other thing that I can think of that would take up a lot CPU ram could be models with a high number of points, I don’t know if you can unload them.
If you want better performance whether it is a GPU or CPU bottleneck using two instances of TD can increase performance if you were to split your heavy comps between the two instances. In the project I’m working on now I’m using two instances (maybe three at one point). The first one generates my scenes where I have multiple containers with different scenes. It runs at anywhere from 30 to 60 fps depending on the scene. The second instance gets the output of the first instance via sharedmem TOP which then does more 2D processing on the stream for final output. It runs at 60 fps and I can’t really add any more processes to the signal with losing speed. If I were to combine both into one project I would get less than 30 fps on even the light scenes.
Ah nice! This is some very useful information.
So if i have one project running a “media server” sending the output to another show running a “tripplehead cropper” (using 3 special vertical monitors), i could gain some performance?
I should have been more clear. I actually meant running two instances on two different graphics cards using GPU affinity. In that case I’ve definitely seen performance improvements with GPU bottlenecks but there is also a performance hit with the sharedmem TOP.
Ah yes, with GPU affinity you’ll can get gains, but you’ll want to be doing some heafty work to make it worthwhile. Cropping is a super inexpensive operation so you wouldnt gain anythin from that case.
Hi, I found the info from 3dbill is very interesting(thank you for sharing!) and made some test tox(attached)
I was hoping that I could make smooth switch/loads of component with this approach. But I got slight pause when I change the source component. Also I had crach when I switch component very quickly… Does anyone know another nice idea/way to change component dynamicaly&safely? loadSwitchCompTest077.tox (66.3 KB)
I am confused what people are talking about as far as turning scenes “on” or “off”. Can someone give me a clear answer on that. I would like to make a container component and everything inside it go completely inactive and free the memory of all nodes inside it.