Puget Systems print logo

https://www.pugetsystems.com

Read this article at https://www.pugetsystems.com/guides/1084
Article Thumbnail

Pix4D CPU Comparison: Coffee Lake vs Skylake X vs Threadripper

Written on January 2, 2018 by William George
Share:

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.

Pix4D Logo

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:

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

Eagle Photo Set Point Cloud

Chessboard Photo Set Point Cloud

Climber Photo Set Point Cloud

44 Images from Pix4D website 78 Images taken in-house 300 Images taken in-house
3D Maps
Village Quarry City

Village Photo Set Point Cloud

Quarry Photo Set Point Cloud

City Photo Set Point Cloud

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:

Eagle Image Set Pix4D CPU Performance Comparison

Chessboard Image Set Pix4D CPU Performance Comparison

Climber Image Set Pix4D CPU Performance Comparison

Village Image Set Pix4D CPU Performance Comparison

Quarry Image Set Pix4D CPU Performance Comparison

City Image Set Pix4D CPU Performance Comparison

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:

Quarry Image Set Pix4D CPU Performance - Step Breakdown

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:

City Image Set Pix4D CPU Performance - Step Breakdown

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.

Pix4D CPU Performance Comparison Summary

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.

Workstations for Pix4D

Intel Workstation

For Pix4D Map Projects

Configure

AMD Workstation

For Large Model Projects

Configure

Tags: Pix4D, CPU, Performance, Intel, AMD, Coffee, Lake, Skylake X, Threadripper, Core, i7, i9, photogrammetry

Thanks for this William! Would you be able to share the AutoIt script you put together? I have access to a dual Xeon rig and I'd love to see how it stacks up to the i9 especially considering it has nearly twice the cores but a lower clock speed.

Posted on 2018-01-25 02:04:00

The script isn't super polished (the UI and file location requirements, in particular) - so I was hesitant to post it publicly yet. I'd like to get to that point, though if I do I am not sure about including the data sets. I suppose I could share the Pix4D project file, and provide instructions about what images to download (for some of the image sets, at least). Let me see what I can come up with :)

Posted on 2018-01-25 21:01:13

Okay, I've put together a zip file with the benchmark executable, the folder structure for the three projects with publicly-available image sets, and a Readme with instructions on how to add the images themselves and run the test. I've never used this outside of our systems here at Puget, though, so please let me know if anything misbehaves for you. In the long run, I'd like to make this adapt better to alternate installation locations (both for the benchmark itself and for Pix4D) - but for the time being, please stick strictly to what the Readme says to do. Oh, and please let me know how it goes :)

Link to download zip file: https://goo.gl/5zLtu1

Posted on 2018-01-25 21:42:43