Agisoft Metashape

Agisoft Metashape => General => Topic started by: ChrisC on May 29, 2019, 12:15:02 AM

Title: Is External GPU an good way to increase performance?
Post by: ChrisC on May 29, 2019, 12:15:02 AM
I asked my IT department to upgrade the GPU on the computer we use for SfM work. They agreed but want to add an external GPU instead of a better internal graphics card.  So I am wondering:

1. Is external GPU a good way to increase performance?
 
2. Are there any external GPUs that are known to work well with Metashape?

3. Conversely, are there any external GPUs to stay away from?


Title: Re: Is External GPU an good way to increase performance?
Post by: Alexey Pasumansky on May 29, 2019, 01:51:51 PM
Hello ChrisC,

I think it mostly depends on the GPU performance (number of CUDA cores / shader processor units) and the data transfer band between computer and external card.

We have not so much experience with particular external GPU devices, but have quite good results with the docker stations (for example, ROG 2) that are able to use almost any kind of modern GPU devices, however, such docker stations are mostly focusing on the gamer class cards.
Title: Re: Is External GPU an good way to increase performance?
Post by: WSurvey on May 29, 2019, 04:04:33 PM
Hello ChrisC,

I think it mostly depends on the GPU performance (number of CUDA cores / shader processor units) and the data transfer band between computer and external card.

We have not so much experience with particular external GPU devices, but have quite good results with the docker stations (for example, ROG 2) that are able to use almost any kind of modern GPU devices, however, such docker stations are mostly focusing on the gamer class cards.

Hello Alexey,

IS there any specification of a GPU that correlates most strongly to performance when processing in metashape?

e.g. CUDA cores, GPU clock speed, GPU memory?

I'm wondering if there was a systematic way to maximise dollar-for-performance when buying a GPU.

Cheers.
Title: Re: Is External GPU an good way to increase performance?
Post by: Alexey Pasumansky on May 29, 2019, 05:08:08 PM
Hello WSurvey,

For image matching and depth maps calculation higher number of CUDA cores and higher frequency means better performance. For build mesh from depth maps (although some sub-steps are still CPU only) and refine mesh operations amount of VRAM is also important and would have effect on the performance.
Title: Re: Is External GPU an good way to increase performance?
Post by: RHenriques on May 29, 2019, 06:37:17 PM
Simple and short answer - YES, a lot!
I recommend, at least, the Nvidia GTX 1080 Ti or better.
Title: Re: Is External GPU an good way to increase performance?
Post by: wizprod on May 30, 2019, 10:24:31 PM
I would say it depends on what you got currently.

- Slow GPU (like in a laptop): Yep, go for it
- Already have fast internal GPU's: Nop, not worth the money then.


There is a mem-transfer penalty from "slow" Thunderbolt 3 cable (40 gbit), so compared to a GPU mounted internally on the PCI Express bus, you will see the card behave quite a bit slower in an EGPU enclosure.
Title: Re: Is External GPU an good way to increase performance?
Post by: WSurvey on June 25, 2019, 11:44:46 AM
Hello WSurvey,

For image matching and depth maps calculation higher number of CUDA cores and higher frequency means better performance. For build mesh from depth maps (although some sub-steps are still CPU only) and refine mesh operations amount of VRAM is also important and would have effect on the performance.

Alexey, another question. If Metashape is performing a GPU accelerated operation, am I right in thinking that as long as the CPU is able to feed the GPU fast enough to keep it at 100% utilization, then a CPU beyond that speed will make little difference to the time taken in that step?
Title: Re: Is External GPU an good way to increase performance?
Post by: WSurvey on June 28, 2019, 03:03:19 PM


Hi Alexey,

If Metashape is performing a GPU accelerated operation, am I right in thinking that as long as the CPU is able to feed the GPU fast enough to keep it at 100% utilization, then a CPU beyond that speed will make little difference to the time taken in that step?
Title: Re: Is External GPU an good way to increase performance?
Post by: Alexey Pasumansky on June 28, 2019, 03:27:23 PM
Hello WSurvey,

There still could be some intermediate steps that are performed on CPU only (for example, considerable amount of those during new meshing method), so CPU is not only feeding the data to GPUs.
Title: Re: Is External GPU an good way to increase performance?
Post by: mellinger on June 28, 2019, 10:02:16 PM
I had great results with an AMD Vega 64 in a Razer Core X eGPU enclosure.