Testing Dynamic Local Mode on AMD Threadripper 2970WX - PhotogrammetryWritten on December 11, 2018 by William George
Dynamic Local Mode is a new feature on AMD's biggest Threadripper processors. These CPUs have cores grouped internally, some with direct access to system memory and some which have to communicate through those other cores to access data in memory. DLM prioritizes running code on the cores which have a direct line to the memory, helping to improve performance in situations where not all of the cores are in use. How does that translate to real-world workloads, though? Let's take a look at two photogrammetry applications - Pix4D and PhotoScan - and see how the 24-core 2970WX behaves with this feature on and off.
The CPU platform for this had to be AMD's X399 chipset since that is the only option for Threadripper. We utilized the recently-released 2970WX since we already have test data for the bigger 32-core 2990WX, and these are the only two models which support (or need) Dynamic Local Model. If you want to see full system specs, with links to part pages, click here to expand a comprehensive hardware list.
|Motherboard:||MSI MEG X399 Creation|
|CPU:||AMD TR 2970WX 3.0GHz (4.2GHz Turbo) 24 Core|
|RAM:||8x Crucial DDR4-2666 16GB (128GB total)|
|GPU:||NVIDIA GeForce RTX 2080 8GB|
|Storage Drive:||Samsung 960 Pro M.2 PCI-E x4 NVMe SSD|
|OS:||Windows 10 Pro 64-bit|
|Software:||Pix4D Mapper 4.3.27 & PhotoScan Pro 1.4.3|
In order to be able to test multiple image sets with multiple iterations, we put together AutoIt scripts that run Pix4D and PhotoScan without manual input. 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 these programs in a real-world workflow, but it removes any chance of human error altering results between runs. We did still observe small variances on total processing time with each image set, so we ran them three times and selected the fastest result (lowest time) for each image set to be included in the charts below.
As mentioned above, we tested several different image sets: two each in both 3D Model and 3D Map modes within Pix4D, and two models in PhotoScan. No settings were altered from the defaults in Pix4D, while all steps were run at "High" quality in PhotoScan. Descriptions of the image sets we used, and which application/processing mode they were used with, are available below.
Here is information about the image sets we used, including project type (3D Model vs 3D Map), listed in order of complexity:
Pix4D Eagle Model
44 Images from Pix4D website
Pix4D Building Map
36 Images from Pix4D website
PhotoScan Monument Model
32 Images from PhotoScan website
PhotoScan Building Model
50 Images from PhotoScan website
Here are the results for total processing time on each of the image sets, with DLM enabled ("On") and disabled ("Off"):
As these graphs demonstrate, there isn't a big impact from DLM - but it does help a little, across the board, in these applications. Performance improvements range from less than 1% to over 5%. It is not ground-breaking, by any means, but if you have a Threadripper 2970WX or 2990WX you will want to make sure you have DLM enabled for the fastest photogrammetry processing.
For those who want details, here are charts showing the time (in seconds) for each step within these processing tasks:
AMD's Dynamic Local Mode (DLM) feature doesn't make a massive difference in photogrammetry applications, but it does improve performance a little bit across the board in our tests. Since this is an easy setting to enable in a free application that AMD provides, it is definitely worth turning it on if you use Pix4D or PhotoScan and have a supported processor.