C++ Eigen-Bibliothek tut Vektorisierung für andere Architektur, wie SSE, NEON usw. In ihrer Dokumentation erwähnten sie, dass Eigen-Vektorisierung nicht compilerabhängig ist. Aber die meisten modernen Compiler wie gcc tun die Vektorisierung automatisch, wenn das Vektorisierungsflag mit dem -O3-Flag aktiviert ist.Warum benötigen Bibliotheken hart codierte vektorizion anstelle von Compiler-Auto-Vektorisierung
Also meine Frage ist, warum Eigen oder andere Bibliotheken hartcodierte Vektorisierung macht, wenn Compiler dies automatisch für uns tut?
Vielleicht vertrauen sie den Compilern nicht so sehr wie Ihnen. Oder, wie Sie selbst sagten, * "die meisten modernen Compiler wie gcc tun die Vektorisierung automatisch" * - vielleicht ist das meiste nicht gut genug. –
Die Bibliothek gibt es schon lange, Version 2.0 stammt aus dem Frühjahr 2009 und verwendete bereits SSE2-Code. Compiler waren damals nicht zurück. –
Wenn Sie die Quelle überprüfen, sehen Sie, dass dort eine Menge Sachen sind, die einfach nicht autovektorisiert werden würden. – harold