Odm: Entfernen Sie -msse2 -msse3 -msse4 -mpopcnt-Flags aus Docker-Builds

Erstellt am 9. Aug. 2018  ·  4Kommentare  ·  Quelle: OpenDroneMap/ODM

Dies erzwingt derzeit, dass SSE4-Anweisungen in mvs-texturing (und verwandte mve-Apps) aufgenommen werden: https://github.com/OpenDroneMap/WebODM/issues/330#issuecomment -411550656

Eine einfache Lösung wäre, sie in https://github.com/OpenDroneMap/OpenDroneMap/blob/master/docker/g%2B%2B und https://github.com/OpenDroneMap/OpenDroneMap/blob/master/ herauszufiltern.

Leute, die Docker-Images mit dem Standard Dockerfile und älteren CPUs neu erstellen, hätten jedoch immer noch das Problem.

Ich werde sehen, ob wir es vielleicht direkt in MVE reparieren können.

bug

Hilfreichster Kommentar

Hallo allerseits!

Ich wollte nur einen Kommentar für Personen hinzufügen, bei denen das Problem möglicherweise noch auftritt, wenn WebODM in Zukunft mit Docker ausgeführt wird. Das Dokument besagt, dass Sie die Docker-Images nicht ausführen können, wenn Sie einen Prozessor haben, der keine SSE * -Anweisungen unterstützt. Das stimmt eigentlich nicht.

Mit der an MVE vorgenommenen Änderung fügt das Flag "März = native" alle Optimierungsflags hinzu, die für die Hardware gelten, auf der der Code kompiliert wird. Das Problem ist also, dass beim Erstellen des Docker-Images die SSE * -Flaggen, die Ihre Hardware möglicherweise nicht unterstützt, tatsächlich hinzugefügt werden, da sie an einem Ort erstellt wurden, an dem sie unterstützt wurden. Anstatt die verschiedenen Repositorys nativ zu erstellen, können Sie das Image einfach auf Ihrer eigenen Hardware neu erstellen. Dadurch wird das Problem behoben.

Ich fand das einfacher als alles nativ zu installieren.

Das war's: Lächeln:

Alle 4 Kommentare

MVE wird jetzt mit -march = native flag ausgeliefert, damit diese geschlossen werden kann. https://github.com/simonfuhrmann/mve/pull/441#event -1779240350

Hallo allerseits!

Ich wollte nur einen Kommentar für Personen hinzufügen, bei denen das Problem möglicherweise noch auftritt, wenn WebODM in Zukunft mit Docker ausgeführt wird. Das Dokument besagt, dass Sie die Docker-Images nicht ausführen können, wenn Sie einen Prozessor haben, der keine SSE * -Anweisungen unterstützt. Das stimmt eigentlich nicht.

Mit der an MVE vorgenommenen Änderung fügt das Flag "März = native" alle Optimierungsflags hinzu, die für die Hardware gelten, auf der der Code kompiliert wird. Das Problem ist also, dass beim Erstellen des Docker-Images die SSE * -Flaggen, die Ihre Hardware möglicherweise nicht unterstützt, tatsächlich hinzugefügt werden, da sie an einem Ort erstellt wurden, an dem sie unterstützt wurden. Anstatt die verschiedenen Repositorys nativ zu erstellen, können Sie das Image einfach auf Ihrer eigenen Hardware neu erstellen. Dadurch wird das Problem behoben.

Ich fand das einfacher als alles nativ zu installieren.

Das war's: Lächeln:

Hey @nchamo Ich habe dieses Problem mit meiner AMD Phenom II X6 1090T-CPU. Ich denke, Ihre Empfehlung, das Image neu zu erstellen, würde für mich funktionieren, aber ich bin mir nicht sicher, wie ich das machen soll? Im Moment klone ich einfach das Projekt und führe die Datei startup.sh aus. Wie gehe ich beim Wiederaufbau vor? Vielen Dank

Könnten wir dieses Gespräch in das Forum unter https://community.opendronemap.org verschieben? : bete: Das Forum ist der richtige Ort, um Fragen zu stellen (wir versuchen, den GitHub-Issue-Tracker nur für Feature-Anfragen und Fehler beizubehalten). Vielen Dank! : +1:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen