Does RAM Capacity Affect RealityCapture Performance?Written on June 26, 2019 by William George
RealityCapture, like other photogrammetry applications, is built to take a batch of photographs and turn them into digital, 3D models. The algorithms used during that process are designed to be "out of core", meaning that not all of the data has to be loaded into system memory (RAM) at the same time - allowing for full processing without requiring a ton of available memory. Having more RAM can still be beneficial, though, so we decided to test how much impact it has on performance.
Here is a list of the hardware we tested RealityCapture on. The CPU and GPU were kept the same across all test runs, to avoid either of those throwing off the comparison, and we used the Core i9 9900K because it turned in the best performance in our recent CPU article. All results included here are from after the recent Windows 10 security patch addressing MDS vulnerabilities in some Intel processors, but we did see a small increase in Core i9 9900K performance when we moved to the newer Z390 motherboard - which helped offset some of the performance that chip lost because of the update. We also used the latest R0 stepping of the 9900K processor, which is supposed to have some hardware mitigation for recent exploits... though we have not seen any measurable performance difference.
|CPU||Intel Core i9 9900K|
|CPU Cooler||Noctua NH-U12S|
|Motherboard||Gigabyte Z390 Designare|
|RAM||2x DDR4-2666 8GB (16GB total)
2x DDR4-2666 16GB (32GB total)
2x DDR4-2666 32GB (64GB total)
4x DDR4-2666 32GB (128GB total)
|Video Card||NVIDIA GeForce RTX 2080 Ti 11GB|
|Hard Drive||Samsung 960 Pro 1TB|
|Software||Windows 10 Pro 64-bit (version 1903)
For testing photogrammetry applications, we have four image sets that we own the rights to - covering both smaller and larger size model and map projects. The smaller image sets are included in our public RealityCapture benchmark, which you can download and run if you want to compare your system's performance to what we measured in our testing.
- Rock Model - 45 photos at 20 megapixels each
- School Map - 51 photos at 18 megapixels each
- School Model - 278 photos at 18 megapixels each
- Park Map - 758 photos at 18 megapixels each
Each image set was processed 3 times with each RAM configuration, and the fastest overall result was used for the comparisons below.
Here are charts for each of the four image sets, showing the total time (in seconds) they took to process with each memory configuration:
With the smaller image sets, there was very little difference in performance regardless of the amount of memory installed. RealityCapture's website officially lists 16GB as the minimum recommendation, and it looks like that is justified by our results. There is less than a 3% variation between the fastest and slowest times in our Rock Model and School Map projects, which may well be within the margin of error.
Moving on to the larger image sets, we do see a more significant difference. Having only 16GB was ~7% slower than 64GB in the medium size School Model test, and ~12% slower than having 128GB in the biggest Park Map project. In both cases, the biggest jump in performance was from 16 to 32GB - which is also the least expensive, and makes 32GB an ideal starting point for our systems.
All of our test projects were able to process fully, even with just 16GB of memory - but having more RAM does help, especially with larger image sets. The 16GB minimum recommendation from RealityCapture is viable, but 32GB provides a better baseline without costing much more. If you work with really large projects, going up to 64 or even 128GB might be worth the additional price - but make sure you have the best CPU and video cards since they can have a bigger impact on overall performance in this application.
Looking for a Photogrammetry Workstation?
Puget Systems offers a range of poweful and reliable systems that are tailor-made for your unique workflow.