Performance Monitoring
-
Mark could provide a more definitive answer but my guess would be that the fact that you are passing content back and forth between the CPU and GPU is causing a pretty big hit for you. Does performance improve if you replace each pairing of Image to Video + Projector with a single CI Projector actor? I always try to avoid using the Image to Video actor whenever possible and generally keep my signal flow such that any video processing is happening before a particular stream is getting sent to the GPU for image processing.
-
The patch as you've seen it seems to not affect the GPU at all... but am questioning if the monitoring software is having issues since I swap out hardware out so frequently.
Running it with CI Player --> CI FX --> CI Projector doesn't make a difference on the CPU or RAM.Also tried going 1 to 1 to 1 so each FX and Projector also has its own player and source. No change there.Last thing I tried was different source videos -- also no change.Any further thoughts? Thanks in advance bro! -
That's weird. Have you tried reinstalling the monitoring software or trying a different application as a point of comparison.
-
Yeah -- AtMonitor doesn't seem to be taking in GPU information at all (not reading temp either). Do you have another app you'd recommend that has GPU info? I haven't been able to find a solid one.
-
Dear Cam3LD,
To comment on your findings:_• All processes spike when the loop of the video restarts_This is QuickTime. While it is playing the movie, it needs to start reading the video at the top of the loop in advance. With high-resolution movies this can be quite noticeable. Furthermore, I have seen something that recently that caught my eye: it seems -- for certain codecs -- that if the loop point isn't exactly on a frame boundary, there's a huge hit. I haven't nailed this down yet, and this seems like something new in QuickTime. But if you want really smooth loops, cut your footage to the desired length beforehand. For sure, when you loop the whole movie, this strange thing I've noticed does not happen.• No matter how I configure the patch, it never takes advantage of more than 50% of the RAM.This is normal. Remember, the movies are read in bit by bit -- the whole movie is not read into memory. You won't see your memory usage increase dramatically when playing a long movie, for instance. Isadora (and the QC patches you're using) are using the amount of memory they require._• Even though I'm not using much of the processing power, the computer is still sluggish_Well, you're actually using a ton of computer power. First, the Quartz Composer video feeds from the Quartz Composer plugins is only available in a weird format that requires a relatively heavy conversion to get it to a format that Isadora likes. Furthermore, the Image to Video plugins are a killer. They require pulling data from the GPU back into the CPU. The path from CPU to GPU is fast, but the other direction is much, much slower. All of those conversion plugins will massively slow down your patch.If you want this patch to run faster, keep _everything_ in the 'image' format -- don't convert back and forth to 'video'. Furthermore, if you want it to be really, _really_, fast then don't use Quartz Composer at all. Use the Core Image plugins and make your own effects. Because of the conversion required to make get the QC data into Isadora, you'll always see a performance hit when using a lot of QC plugins.I have worked quite hard in the past to find a way to improve the performance of the QC data, but have never come up with a satisfactory solution._• For each effect I add in, regardless of what projector it goes to (1-to-1 or all-in-1), it reduces the FPS exponentially (6 Videos hovers at about 5FPS, 3 Videos at about 10FPS etc etc)._See above._**• **While Isadora boots up, the system FPS spikes to 60_Yeah, I think there's a little bug in the way I'm measuring the frame rate in that moment I think. But it doesn't affect the fundamental performance of the program.• Loading the video into the RAM doesn't seem to make a difference hereIf you read the manual on this input, or read the help by clicking on the input with the option key down, you'll see that loading video into RAM is no longer recommended. It is there for backwards compatibility, but Apple themselves indicated it is not wise to use this feature any more. On a virtual memory system like Mac OS X, if you load a big file, it will end up getting paged out to disk anyway._• Read-ahead lowers the FPS_That's surprising. I had this feature in Isadora as a test, but my findings show that it has no real affect on movie playback. There are a couple of threads in Apple's QuickTime API forum that suggest it doesn't work at all. In any case, it didn't provide any performance improvements. Leave it set at 0\. (I'm removing this input for 1.3.0f25.)I hope that clarifies things a bit for you.Best WIshes,Mark -
This is a great info. I learned a lot. thanks Mark.
-
Mark -- awesome info. Thanks for the thorough breakdown!
The CI player without all those Image / Video conversions didn't seem to improve playback (at least on the FPS readout), but I am unable to see the GPU monitor for some odd reason -- and it sounds like the FPS monitor has its own issues. I guess the real test is on how the rest of the computer is functioning -- which is certainly better w/ CI Actors. I'm looking forward to testing all this stuff on the MBPr to see how it performs on a machine with much more processing power! I'll post results here. -
One other thing: is there a reason your Target FPS was set to 150? (That's what the Performance Monitor actor shows.)
Unless you've got 150fps video, that's a bad idea. If you've got 30fps video, set the target frame rate to 30 fps. Izzy will like you better if you do.Best Wishes,Mark -
Yeah in the screenshot I had it set at 150FPS and was messing around all over the place -- but I usually keep it matched to the global pref (MAX). I found that if I manually put in the target 150FPS (or some other unnecessarily high number), sometimes the actual FPS would improve for some reason!
-
Well, for future reference, when you do that, it's attempting to execute the actors in the scene 150 times per second. That's really not advisable, as you may incur extra, unnecessary overhead. It may push the machine to a somewhat higher frame rate, but if you have it set to 30 and you're not getting 30, then there's something else amiss that needs to be looked into.
Best Wishes,Mark