Table of Contents
TL;DR: Disabling HT/SMT increases RC performance on many-core CPUs |
RealityCapture performed the best with Hyperthreading and Simultaneous Multithreading turned off when running on high core processors (16+ cores). On processors with fewer cores, leaving those features enabled resulted in better performance. |
Introduction
Intel's Hyperthreading (often shortened to HT) and AMD's similar Simultaneous Multithreading (SMT) are features found on many mid-range and almost all high-end processors and enabled by default. These technologies work by duplicating a portion of each CPU core's pipeline, allowing a second software thread to be ready and waiting to execute commands as soon as the core finishes processing the thread it is actively working on. That doubles the number of "cores" the operating system sees, and in some applications can lead to a substantial increase in performance. However, in certain situations, it can also reduce performance – especially if a program struggles to use lots of cores effectively (shown by processing times stagnating or even go down as the number of cores in a CPU goes up).
In past articles we have observed that some photogrammetry applications seem to perform better with lower core count processors, so we wanted to look at whether HT and SMT could be negatively impacting performance in these programs. In this article, we are focusing on RealityCapture. If you would prefer to skip our test setup and various benchmark results, feel free to jump straight to the Conclusion.
Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.
Test Setup
Listed below are the specifications of the systems we will be using for our testing:
AMD Ryzen Test Platform | |
CPU | AMD Ryzen 9 3950X |
CPU Cooler | Noctua NH-U12S |
Motherboard | Gigabyte X570 AORUS ULTRA |
RAM | 4x DDR4-2933 16GB (64GB total) |
Intel 9th Gen Test Platform | |
CPU | Intel Core i9 9900K |
CPU Cooler | Noctua NH-U12S |
Motherboard | Gigabyte Z390 Designare |
RAM | 4x DDR4-2666 16GB (64GB total) |
AMD Threadripper 3rd Gen Test Platform | |
CPU | AMD TR 3970X |
CPU Cooler | Noctua NH-U14S TR4-SP3 |
Motherboard | Gigabyte TRX40 AORUS PRO WIFI |
RAM | 4x DDR4-2933 16GB (64GB total) |
Intel X-10000 Series Test Platform | |
CPU | Intel Core i9 10980XE ($979) |
CPU Cooler | Noctua NH-U12DX i4 |
Motherboard | Gigabyte X299 Designare EX |
RAM | 4x DDR4-2933 16GB (64GB total) |
Shared PC Hardware/Software | |
Video Card | NVIDIA GeForce RTX 2080 Ti 11GB |
Hard Drive | Samsung 960 Pro 1TB |
Software | Windows 10 Pro 64-bit (version 1909) RealityCapture 1.0.3.10403 Puget Systems RealityCapture Benchmark |
Test Methodology
For benchmarking photogrammetry applications we now have four image sets that we own the rights to, covering both smaller and larger size models and map projects. All of these image sets are available in our public RealityCapture benchmarks, split up to allow quick or extended tests, which you can download and run if you want to compare your system's performance to what we measured for this article.
- 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
Benchmark Results
The focus of this article is on each processor's performance in RealityCapture with Hyperthreading or SMT enabled versus disabled, rather than comparing one processor to another, so the graphs are set up to reflect that. There are two results for each CPU, with HT/SMT on shown in blue and then off shown in red. These charts are showing the total processing time for each image set, in seconds, so smaller numbers and shorter lines indicate better performance. Scroll through the gallery below to see an overview of the results:
For those who want to dig into how HT and SMT impacted performance in different processing steps, here is a full table of the results:
Analysis & Conclusion
The results shown above are a bit mixed, so lets break them down by processor:
- AMD's Threadripper 3970X benefited across the board from turning off Simultaneous Multithreading. Presumably this would hold true for other 3rd Gen Threadripper processors as well.
- AMD's Ryzen 3950X also saw an increase in performance with SMT disabled, but much smaller than the Threadripper. In fact, the 1-3% improvements are probably close to the margin of error. I think with anything smaller (the 3900X or lower) the outcome would likely be different.
- Intel's Core i9 10980XE saw gains in three of the four tests with HT off, but did lose a bit of performance in the fourth test. As with the Ryzen line, I think anything with a lower core count in the Core X family would likely see no benefit from disabling HT.
- Intel's Core i9 9900K performed best with HT turned on, particularly with the largest image set in our benchmark. The small gains it had with two of the other image sets are likely within the margin of error, so on this and other mainstream Core processors I would recommend leaving Hyperthreading enabled.
Should Hyperthreading or SMT be turned on or off for RealityCapture?
It really depends on what processor you are using: for high core count chips, roughly 16 cores or more, turning HT and SMT off should slightly increase performance on average. On processors with fewer cores, leaving those features enabled should give better results.
Puget Systems offers a range of powerful and reliable systems that are tailor-made for your unique workflow.