Like most software developers, Agisoft maintains a list of system requirements for PhotoScan that can be used to help ensure the hardware in your system will work with their software. However, most "system requirements" lists tend to cover only the very basics of what hardware is needed to run the software, not what hardware will actually give the best performance. In addition, sometimes these lists can be outdated, list old hardware revisions, or simply outright show sub-optimal hardware.
Agisoft has done a better job with their list of system requirements than most, but because of how inconsistent those lists can be we've taken the time to perform testing to determine what hardware runs PhotoScan the best. Based on this testing, we have come up with our own list of recommended hardware - as well as specific configurations tailored with these recommendations in mind.
Recommended Hardware for PhotoScan:
When it comes to CPUs there are two main specifications that define the capability of a CPU:
- The frequency directly affects how many operations a single CPU core can complete in a second (how fast it is).
- The number of cores is how many physical cores there are within a CPU (how many operations it can run simultaneously).
Whether a high frequency or high core count CPU is better depends on how well a program is designed to take advantage of multiple CPU cores (often referred to as multi-threading). Overall, PhotoScan is actually only moderately effective at utilizing multiple CPU cores but PhotoScan has a few additional complications that make choosing the right CPU difficult.
Each step within PhotoScan makes use of the CPU in a different way. In general, a high clock speed is helpful along with a fairly high number of cores. However, the most time-consuming stage of PhotoScan by far is the "Build Dense Cloud" step, and it benefits more from video card (GPU) performance than CPUs. The number of video cards in your system directly affects how many CPU cores you want to have, though, as Agisoft recommends disabling one CPU core (through Preferences -> OpenCL) for each video card installed. In addition, PhotoScan actually gets better at using multiple CPU cores as you increase the number of video cards in the system. What this means is that higher core count CPUs tend to give better overall system performance than a lower core count, higher frequency CPU - as long as the per core clock speed doesn't drop too low (below the low 3GHz range). The key is to balance your budget between using multiple video cards and higher cost, higher core count CPU(s).
Video Card (GPU)
As we mentioned in the CPU section, the overall performance of PhotoScan is highly affected by the number and model of video card(s) used in the system. Only the "Build Dense Cloud" task is able to take advantage of the video card, but that one step can take anywhere from 50% to 96% of the total time it takes to generate a 3D model depending on the settings you are using. Since that step is also the longest one in an overall PhotoScan project, the video cards merit a good portion of the budget of any system built for this application.
Because of this, we recommend using NVIDIA GeForce video cards rather than Quadro cards. There is no specific benefit to using 'professional-grade' Quadro series cards in PhotoScan, and they cost far more than the mainstream GeForce models for similar levels of performance. Quadro cards do often have more video memory than their GeForce counterparts, but the amount of video memory was not found to be an important factor in our testing. Given the cost of a whole system that is oriented toward PhotoScan, and how critical GPU performance is, the higher-end (and thus faster) GeForce cards are usually most worthwhile.
One interesting thing with PhotoScan is that it is actually very good at utilizing multiple video cards. In fact, adding a second GPU decreases the time it takes to build the dense cloud by about ~35%, adding a third GPU decreases the build time by another ~25%, and adding a fourth GPU further decreases the build time by ~15% on top of that. In absolute terms that makes a system with three GPU almost exactly twice as fast as one with just a single GPU and a system with four GPUs able to complete the same job in only 40% of the time it takes a single GPU system.
Due to this behavior, it makes it very beneficial to use multiple video cards rather than a single more expensive video card. As we discussed in the previous section, however, you cannot receive the full benefit from multiple video cards unless you match the number of video cards with an appropriate CPU. Once again, the key is to balance your budget between using multiple video cards and higher cost, higher core count CPU(s).
Agisoft publishes a great document on memory requirements, based on three criteria:
- Number of images
- Size of images
- PhotoScan quality settings
All you really need to know is how many photographs you will be working with and the megapixels (MP) of those photos, plus the quality settings you want to use within the application. Their document is based around 12MP images, but as the RAM usage in PhotoScan is roughly linear, you simply need to adjust the recommended RAM to your resolution of photos you work with. For example, if you use 6MP photographs you will need approximately half the amount of RAM they recommend on that chart. Likewise, if you use 50MP images you will need just over four times the amount of RAM they show.
One suggestion we always make is to consider what you will be doing in the future. Fro example, if you think you will be increasing the resolution of your photographs or increasing the number of photos you work with then we highly recommend taking that into account when deciding on how much RAM you need. If anything go a little over to ensure that you never run too low on memory. That can have a huge, negative impact on application performance!
Storage (Hard Drives)
With the falling costs associated with SSDs, we almost always recommend using an SSD for the primary drive that will host your OS and the installation of PhotoScan. The high speed of SSDs allows your system to boot, launch applications, and load files many times faster than any traditional hard drive. If your budget allows, it is also a very good idea to have a second SSD that can be used to store any projects you are actively working on.
One important factor we want to point out is that with the higher performance of modern platter drives means that you will not see a decrease in the time it takes to open, save or export a model by using a SSD. SSDs are great for improving the time it takes to copy or move around files, but for actually working with files in PhotoScan our testing (as shown in this chart) shows almost no performance difference between using a platter drive, an SSD, or even an ultra-fast PCI-E based NVMe drive.
Still, a fast drive will have a lot of other benefits for Windows and application performance - and having the OS / programs separate from your working files is a good approach in general. As such, we generally recommend a three hard drive configuration. For your primary drive a solid-state drive (SSD) is highly recommended as it will greatly improve how fast the OS and programs startup. A secondary SSD is great for your active projects, and the size of this drive will depend on how many images you have per project and how many projects you work on at a time. For long term storage, where the high speed of SSDs is typically not required, a larger traditional hard drive is a good choice as they are still much cheaper per GB than SSDs.
If your budget does not allow for three drives, the primary and secondary SSDs can be combined into a single drive if necessary. Alternatively, you could keep your active projects on a hard drive, leaving a single SSD purely for OS and applications, especially if you need a ton of space for your photos.