Odm: Remove -msse2 -msse3 -msse4 -mpopcnt flags from docker builds

Created on 9 Aug 2018  ·  4Comments  ·  Source: OpenDroneMap/ODM

This is currently forcing SSE4 instructions to be included in mvs-texturing (and related mve apps): https://github.com/OpenDroneMap/WebODM/issues/330#issuecomment-411550656

A simple fix would be to filter them out in https://github.com/OpenDroneMap/OpenDroneMap/blob/master/docker/g%2B%2B and https://github.com/OpenDroneMap/OpenDroneMap/blob/master/docker/gcc

People re-building docker images using the standard Dockerfile and using older CPUs would still have the problem however.

I'll see if perhaps we can get it fixed directly in MVE.

bug

Most helpful comment

Hey everyone!

I just wanted to add a comment for people that might still experience the problem when running WebODM with docker in the future. The doc says that you can't run the docker images if you have a processor that doesn't support SSE* instructions. That is actually not true.

With the change made to MVE, the flag "march=native" adds all optimization flags applicable to the hardware where the code is compiled. So the problem is that when the docker image is created, the SSE* flags that your hardware might not support are actually added, because it was built in a place where they were supported. So instead of building the different repositories natively, you could just re-build the image on your own hardware and that will fix the problem.

I found that easier than installing everything natively.

That's it :smile:

All 4 comments

MVE now ships with -march=native flag so this can be closed. https://github.com/simonfuhrmann/mve/pull/441#event-1779240350

Hey everyone!

I just wanted to add a comment for people that might still experience the problem when running WebODM with docker in the future. The doc says that you can't run the docker images if you have a processor that doesn't support SSE* instructions. That is actually not true.

With the change made to MVE, the flag "march=native" adds all optimization flags applicable to the hardware where the code is compiled. So the problem is that when the docker image is created, the SSE* flags that your hardware might not support are actually added, because it was built in a place where they were supported. So instead of building the different repositories natively, you could just re-build the image on your own hardware and that will fix the problem.

I found that easier than installing everything natively.

That's it :smile:

Hey @nchamo I'm running into this issue with my AMD Phenom II X6 1090T CPU. I think your recommendation of rebuilding the image would work for me, however I'm not sure how to do that? Right now I just clone the project and run the startup.sh file. How do I go about rebuilding? Thanks

Could we move this conversation over to the forum at https://community.opendronemap.org? :pray: The forum is the right place to ask questions (we try to keep the GitHub issue tracker for feature requests and bugs only). Thank you! :+1:

Was this page helpful?
0 / 5 - 0 ratings