ODM (via openSFM) detects GPU device, but do not utilize it

Hello, guys!

docker opendronemap/odm:gpu prints “Found GPU device: NVIDIA CUDA” in log in opensfm section, but “nvidia-smi” shows no GPU utilization during process. The time is the same to the opendronemap/odm (without GPU). Both runs in ~17 minutes.

expected: GPU container runs faster

ODM (with GPU) log: ODM log - Pastebin.com

My OS & hardware: hardware - Pastebin.com

P.S. Other GPU-dependent software uses GPU correctly (Pytorch, YOLO, xgboost)

I browsed the whole internet trying to solve this problem, but no luck =(

Also tried it on another PC with Nvidia Tesla T4, got same results.
Also tried --resize-to 1000, got same results.

My dataset consists of 82 images, 5472x3648 pixels.

1 Like

Since you chose fast-orthophoto, the part that benefits the most from GPU acceleration (openmvs / point cloud densification) is not invoked, so runtimes will be more or less the same. It might be a bit faster on the feature extraction step since that’s accelerated too, but not enough to make a significant difference.

2 Likes

Big thanks for your response!

I disabled --fast-orthophoto and rerun my dataset with and without GPU support. Parameters:

–gps-accuracy 0.5
–orthophoto-resolution 3
–min-num-features 30000
–skip-3dmodel
–skip-report
–force-gps
–pc-csv
–time

GPU | NON GPU (major stages):

opensfm runtime: 586.03531 seconds | 598.246358 seconds
openmvs runtime: 36.847666 seconds | 144.007423 seconds
odm_meshing runtime: 114.915806 seconds | 108.403513 seconds
mvs_texturing runtime: 181.49109 seconds | 173.255549 seconds
odm_orthophoto runtime: 85.417759 seconds | 79.929419 seconds

Am i correct, that in my case opensfm doesn’t benefit from GPU? Or is it my mistake somewhere in parameters/Nvidia_drivers/docker/etc?

1 Like

:+1:

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.