Agisoft Metashape

Agisoft Metashape => General => Topic started by: Lesca on March 03, 2021, 01:13:41 PM

Title: max processing threads used
Post by: Lesca on March 03, 2021, 01:13:41 PM
Hello everyone!

I am using Metashape 1.7.1 on a Ryzen 3950x which has 16 cores / 32 threads.
Even though the 1.7 update has brought in almost 2x time reduction in the mesh generation process with depth maps, I think there is still some performance unused.

When the "generate mesh" process starts, the depth maps are loaded in groups. Since my maps are quite large, this takes about 30 seconds per group.
Code: [Select]
2021-03-03 09:39:56 Generating mesh...
2021-03-03 09:39:56 Compression level: 1
2021-03-03 09:39:56 Preparing depth maps...
2021-03-03 09:39:56 605 depth maps
2021-03-03 09:39:56 scheduled 31 depth map groups (605 cameras)
2021-03-03 09:39:56 saved camera partition in 0.011773 sec
2021-03-03 09:39:56 loaded camera partition in 0.000437 sec
2021-03-03 09:39:56 14/32 threads used (58 MP depthmap and 32768 MB target memory)
2021-03-03 09:40:25 saved group #1/31: done in 28.6717 s, 20 cameras, 890.035 MB data, 42.3438 KB registry
2021-03-03 09:40:25 loaded camera partition in 0.000426 sec
2021-03-03 09:40:25 14/32 threads used (58 MP depthmap and 32768 MB target memory)
2021-03-03 09:40:59 saved group #2/31: done in 33.972 s, 20 cameras, 1226.11 MB data, 42.3438 KB registry
2021-03-03 09:40:59 loaded camera partition in 0.00028 sec
2021-03-03 09:40:59 14/32 threads used (58 MP depthmap and 32768 MB target memory)
2021-03-03 09:41:37 saved group #3/31: done in 38.3107 s, 20 cameras, 1337.53 MB data, 42.3438 KB registry

Now it seems that only 14 out of 32 threads are used for this. What is the reason for this? Is there a tweak to change the limit?

Another thing I noticed is that some processes like loading and saving images seem to be single threaded only, leaving the 1.4 GB/s bandwidth of my NVMe SSD almost unused. But I see no reason why multi-threading shouldn't be possible here. Can we expect to see some updates here?