More GPU q's


A couple of q’s, please:

  1. You make a ton of module calls to grass modules in opendm. Is that, by chance, where the heavy lifting in ODM occurs? As in, the parts that take hours and hours to compute?

  2. Since grass is written in ‘C,’ when you make those module calls are you pulling in pre-compiled routines? If not ‘C,’ does that make the grass source modules appear in python and in-line?



1 Like

The processing workflow is as follows (rough outline)

  1. Feature extraction
  2. Feature matching (SIFT or Hahog)
  3. Structure from Motion
  4. Dense Matching
  5. Everything else (including GRASS)

These 1st 4 are the heavy lifts of the project. The 1st 3 are done by OpenSfM and are where much of the GPU optimization opportunity is, particularly the feature matching step. This is where GPUs are used heavily by the closed source packages.

There are probably also opportunities in the dense matching step (step 4). This step uses MVE.

Unless fixing packaging is something that brings you joy, looking at these two libraries and optimizing them using GPU would be where you might find the most value time-wise.

I hope this clarifies things and helps.


Wow, Steve! And thanks. I was not looking in that direction at all.


Now, just trying to get the thing to compile. With some the python2 stuff no longer available on the public repo’s, trying to do all python3. These experiments usually fail but what do I have to lose? :slight_smile:

1 Like


1 Like

I’m not complaining. No, not me.

from x/ODM-Master, “” not working. Neither is cmake-gui from the same directory. Getting really frustrated. Almost ready to chuck it.

In the meantime, how often is opencv called, if ever?