Hardware Optimisation & Benchmarking Shenanigans

Hello Ivan,

All very interesting. You deserve a medal for all this work and sharing it. 

I’d like to respond with more questions but let’s begin at the end of your post by answering your question, what am I throwing at RC. Most my work begins with at least 400 images, so maybe right there you’ll say my case benefits from multi-threaded cores. My projects easily run past 2500, and I’ve had one up at 10,000. These images are 42 MP and I’m growing increasingly interested in running them at High. For the same amount of manual input I get four times the amount of data than at Normal (downscale is 2:1, so twice vertically and horizontally), availing myself to move a virtual camera as close to surfaces as I want, in the case of virtual cinematography, or as the user wants, as in interactive applications. We enter a virtual environment, look around, are swept up in the believability. Curiosity urges us to explore, for humans that means we want to approach things and get within arms reach, proprioception urging us to want to touch surfaces. Even if we can’t, mirror neurons in our brain taking in stereoscopic information of finely detailed texture information allow us to feel those textures without actually touching them simply based on memory of how many times past we’ve touched similar surfaces. Okay, a long way to say I want all the data my system can handle, especially if it’s doing the heavy lifting, nothing more from me.

It’s hard to imagine my case wouldn’t benefit from as much of everything any component can deliver, but not to say I don’t hear you on the no easy answers. There is a point, rather points, where values come into contention. For instance, offline rendering for film-grade animations favors a very different GPU than does online rendering, such as required by game engines, with big things happening in that space and something I’m more focussed on. To your statement:

“The GPU processing part does not tax the GPU to the fullest, and you’d be much better getting a regular gaming card.  Perhaps a 1080/ti or better.  There may be circumstances where multi gpu can help,  however It’s such as small amount of the overall calculation time, It would depend on the project your working on.    I don’t believe RC takes into consideration your video ram…”

I had suggested wanting the RTX 2080 Ti, not sure what you mean with “regular gaming card”, I know the 2080 Ti isn’t regular compared to everything downstream, but before its recent release, you could say the same thing for the GTX 1080 Ti. Both have the same amount of video RAM, 11 GB, but the memory speed differs, GDDR5X at 11 Gbps for the 1080 Ti, 14 Gbps for the 2080 Ti. My only thought about the value of video RAM capacity would be how large of a clipping box your system can handle after texturing a model. Add to that, Passmark shows 17,100 on the 2080 Ti versus 14,241 on the 1080 Ti, about a 20% boost. I’d think the GPU-intensive depth map calculations would clearly warrant the RTX 2080 Ti, no matter what you’re working on in RC. No? That might not cost justify, another matter, but I’m thinking simply in terms of performance. I hear what you’re saying about even small performance improvements acting as a multiplier to advantage larger projects spanning days or even weeks.

I’m yet interested to learn from you what you mean with “no easy answers”, never mind my specific case, but just generally. We know that during any particular stage there are sub-stages that swing between CPU and GPU. We keep Resource Monitor and GPU-Z open to see all that. To the extent camera orientation seems purely CPU-intensive, am I missing something to think that this could be an easy one? If you have many images with lots of pixels you’ll benefit from fast read/write SSDs, lots of system RAM, and many fast cores, there possibly being a sweet spot where core speed shouldn’t be allowed to go but so low relative to core count, as would appear to be the case with Xeon processors. Might this yet apply even to the case I pointed to with the i9-9960X being a bit cheaper but outperforming the i9-9980XE, where the former has slightly faster, albeit fewer, cores?

You talk about quality of images, e.g. sharp, and I would add to that the roughness of the subject matter, the two combining to pose different problems to solve in finding a solution that keeps projection errors in check when returning a component. I’ve observed this while feeding my system manmade subject matter, simple planar shapes, versus extremely folded, like a plant. I’ve observed the sharp/occluded subject matter factor takes longer processing times on both CPU and GPU, which stands to reason. My brain has an easier time forming a map of a box on a floor than a pencil jade plant. If that’s true, why in your mind would this not be simple to keep separate in thinking about optimizing a system for RC? I’m thinking of it this way. If say every RC user ran two of the same datasets with your benchmark utility, one featuring a low number of images, containing not optimally sharp pixels of simple subject matter, the other having the converse, and assuming we all had a nice spread of system specs ranging from low end to high along all those lines you describe, I’d expect to see the folks running the low end dataset on the low end systems scoring lower than those running the same dataset on high end systems, but that spread being X. I’d then expect that spread to be far greater in the case of folks running the high end dataset on low end systems compared to the high end systems. Yes?

I realize with so many variables in the imagery and the system specs that those final numbers in RC’s reporting will be all over the map, but I’m eager to preclude a forest for the trees situation. If as a starting point we can know that the above statement holds true (up to that finer point about diminishing returns for core count), where would you place the monkey wrench in that understanding? So far I’m hearing, high end datasets benefit from many cores, but not so many that you lose speed. High end data sets benefit from strongest Cuda cores in GPU, video RAM is nice but not essential, and more than one GPU quickly goes into diminishing returns. High end datasets love fast SSDs and lots of system RAM, speed of RAM doesn’t make much of a difference. 

I so value whatever monkey wrenches you bring, but I also lack understanding about what to look for in a motherboard, power supply, thermal regulation, the rest of the system. At this stage I’m only able to ensure it’s the right socket type for CPU, am oblivious to much of it. Big thanks for all you do!

Benjy

www.photo2topo.com