[C++] Anwendung für bestimmte CPU-Architektur optimieren
Verfasst: 12.09.2017, 14:21
Hallo.
In den letzten Monaten kamen ja so einige neue Prozessoren raus (Intel Skylake-X mit Mesh statt Ringbus, AMD Ryzen, usw.). Ich lese in einigen Foren immer wieder, das aktuelle Anwendungen in bestimmten Vergleichen mit den neuen Prozessoren ungewöhnlich schlecht abschneiden. In einigen Fällen läuft eine Anwendung schlechter (bis zu 30% langsamer), obwohl die CPU mehr Kerne und einen höheren Takt hat. Dies wird dann oft mit der neuen Architektur begründet und das dort die Entwickler das Programm noch für die CPU optimieren müssen.
Das Prozessoren mit unterschiedlicher Architektur nicht pro Takt die gleiche Leistung liefern, ist klar. Ein AMD Ryzen mit 3GHz wird anders performen als z.B ein Intel i7 mit 3Ghz. Mir geht es primär um die Aussage der Leute in den Foren, die impliziert, das z.B. ein Intel i7 7800X (Skylake-X mit Mesh) schneller ist als ein i7 7700K (Skylake mit Ringbus) bei gleichem Takt, aber es nur aufgrund mangelnder Optimierung öfter nicht in der Realität erreicht wird.
Ich habe absolut keine Ahnung, wie ich z.B. eine Anwendung für einen AMD Ryzen oder einen Intel Skylake-X mit Mesh optimieren kann. Google spuckt mir da spontan auch nix Nutzbares aus. Es geht hier auch anscheinend nicht um neue Prozessor-Befehle/Instructions oder bessere Parallelisierung, also wie soll man denn da dann was optimieren?
In den letzten Monaten kamen ja so einige neue Prozessoren raus (Intel Skylake-X mit Mesh statt Ringbus, AMD Ryzen, usw.). Ich lese in einigen Foren immer wieder, das aktuelle Anwendungen in bestimmten Vergleichen mit den neuen Prozessoren ungewöhnlich schlecht abschneiden. In einigen Fällen läuft eine Anwendung schlechter (bis zu 30% langsamer), obwohl die CPU mehr Kerne und einen höheren Takt hat. Dies wird dann oft mit der neuen Architektur begründet und das dort die Entwickler das Programm noch für die CPU optimieren müssen.
Das Prozessoren mit unterschiedlicher Architektur nicht pro Takt die gleiche Leistung liefern, ist klar. Ein AMD Ryzen mit 3GHz wird anders performen als z.B ein Intel i7 mit 3Ghz. Mir geht es primär um die Aussage der Leute in den Foren, die impliziert, das z.B. ein Intel i7 7800X (Skylake-X mit Mesh) schneller ist als ein i7 7700K (Skylake mit Ringbus) bei gleichem Takt, aber es nur aufgrund mangelnder Optimierung öfter nicht in der Realität erreicht wird.
Ich habe absolut keine Ahnung, wie ich z.B. eine Anwendung für einen AMD Ryzen oder einen Intel Skylake-X mit Mesh optimieren kann. Google spuckt mir da spontan auch nix Nutzbares aus. Es geht hier auch anscheinend nicht um neue Prozessor-Befehle/Instructions oder bessere Parallelisierung, also wie soll man denn da dann was optimieren?