Table of Contents
Introduction
Pix4D is an advanced photogrammetry application, suited to wide range of uses, with a focus on handling images captured by drone cameras. Processing of those images into point clouds and 3D meshes / textures is time consuming, making heavy use of both the central processing unit (CPU) and graphics processor (GPU / video card) in a computer. In order to determine what sort of hardware will perform the best with Pix4D, we have tested several image sets across a variety of CPUs and present the results below. We have also tested a range of GPUs, to see how they influence processing speed, with that data presented in another article.
Test Hardware
The CPU platforms we tested with Pix4D were Intel's Z370 (Coffee Lake) and X299 (Skylake-X), as well as AMD's X399 (Threadripper). All configurations included the same 64GB of memory, GeForce GTX 1080 Ti video card, and Samsung 960 Pro SSD. The chart below shows more details, including a list of which CPUs we ran on each platform and links to pages for the various components:
Testing Hardware | |||
Motherboard: | Gigabyte Z370 AORUS 5 | Gigabyte X299 AORUS Gaming 7 | Gigabyte X399 AORUS Gaming 7 |
CPU: | Intel Core i7 8700K 3.7GHz (4.7GHz Turbo) 6 Core ~$359 |
Intel Core i9 7900X 3.3GHz |
AMD Threadripper 1920X 3.5GHz |
RAM: | 4x Crucial DDR4-2666 16GB (64GB total) | ||
GPU: | NVIDIA GeForce GTX 1080 Ti 11GB | ||
Storage Drive: | Samsung 960 Pro M.2 PCI-E x4 NVMe SSD | ||
OS: | Windows 10 Pro 64-bit | ||
Software: | Pix4D Mapper 4.0.24 |
Dual CPU configurations would also be interesting to test in this application, but at the time of publication, we did not yet have access to dual Xeon Scalable or AMD EPYC processors.
Methodology
In order to be able to run multiple image sets, and multiple iterations, we put together an AutoIt script that runs Pix4D from the command line. Because of the automation we used, all steps were performed back-to-back with no editing in-between to clean up point clouds. That means these results may not perfectly match up with what you'd see when using Pix4D in the desktop mode, but it removes any chance of human error altering results between runs. We did still observe variances of up to 15% on total processing time with individual hardware configurations, so we ran each test 2-4 times and selected the lowest overall result for inclusion in the charts below.
As mentioned above, we tested several different image sets: 3 each in both 3D Model and 3D Map modes. These are the most demanding of the processing methods in Pix4D, hence our focus on them over the various other options available. No settings were altered from the defaults. Descriptions of the image sets we used, and what processing mode they were used with, are available below.
Image Sets
Here is information about the image sets we used, broken down by project type (3D Model vs 3D Map) and listed in order of complexity:
3D Models | ||
Eagle | Chessboard | Climber |
44 Images from Pix4D website | 78 Images taken in-house | 300 Images taken in-house |
3D Maps | ||
Village | Quarry | City |
37 Images from Sensefly website | 127 Images from Pix4D website | 2691 Images provided by Pix4D |
Results
Without further ado, here are the results for total processing time on each of the six image sets, across all eight tested CPUs:
Across the board, the Core i9 processors from Intel are the clear performance winners in Pix4D. It isn't always a clear-cut situation of more cores equaling faster results, as some steps during processing seem to favor clock speed more than core count. For an example of that, check out this breakdown looking at the timing of the three major steps within processing the Quarry image set:
With small to medium size image sets, it seems that the CPU's clock speed is more important than core count for Step 1 (Initial Processing). Steps 2 and 3 are much more heavily influenced by core count – though clock speed still factors in, as does the video card (which we will look at in a separate article). This is mostly an academic concern, as the gains in performance on Steps 2 and 3 from having more cores outweigh the advantage clock speed has in Step 1.
Furthermore, when moving to larger projects the core count takes the lead in Step 1 as well. This can be seen when looking at a breakdown of our massive City image set:
With this many images to process, the combination of core count along with clock speed becomes paramount for all three processing steps. This is the only image set we tested where the 18-core i9 7980XE didn't come out as the fastest option, with the 14-core i9 7940X taking a very slight lead. It has higher base and all-core turbo clock speeds, which indicates that after a certain number of cores the clock speed ends up making a bigger difference than simply adding more and more cores. For this reason, we suspect that dual CPU systems will not be particularly good choices for Pix4D – but when we can get our hands on high core count Xeon Scalable and AMD EPYC processors we will certainly test that hypothesis.
Conclusion
Pix4D makes use of multiple cores, but is also somewhat sensitive to clock speed and overall per-core processing speeds. Because of that, Intel's Core i9 processors are the best single-CPU choice for this application – with the Core i9 7980XE being fastest on average.
It was only bested in one of our six image sets, by the 14-core i9 7940X. That usurpation occurred with our largest and most complex image set, though, so if you work exclusively with 2000+ images at a time then you should be able to get the best value with the 7940X instead of the 7980XE. For smaller image sets and mixed workloads, the 7980XE is the king.
Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.