Wäre >>Ghidra<< von der NSA evtl. etwas was dir weiterhelfen könnte?
Hehe, das ist wie IDA Pro auf Speed . Komplett das look&feel abgekupfert und dazu noch getuned....
Der Decompiler ist auch sehr nützlich.
Die Optimierung erfolgt auf vielen verschiedenen Ebenen. Einmal natürlich auf algorithmischer Ebene.
Oh ja! UND auf Prozessorspezifischer Ebene. Ich hatte schon in den Compilerflags des GCC gestöbert und dort festgestellt, dass man explizit für bestimmte Prozessorgenerationen (bspw. Sandy Bridge, Haswell, Sky Lake, Bulldozer uswusf.) optimieren kann, und siehe da, in der libopenblas.dll sind reichlich Einsprungpunkte mit diesen Namen und, wie erwartet, für diese Prozessorgeneration optimierter Funktionscode.
Wenn ich das so grob überblicke, dann wurde sich echt Mühe gegeben . Im 64-Bit-Modus gibt es neben den 16 128 Bit breiten XMM-Registern noch etliche andere, bei AVX bis zu 32 512 Bit breite Prozessorregister https://de.wikipedia.org/wiki/Advanced_Vector_Extensions
Bei AVX-512 sind es aufgrund der Registerbreite von 512 Bit damit pro Befehl acht Additionen in doppelter Genauigkeit oder 16 Additionen in einfacher Genauigkeit.
Wohlgemerkt in EINEM Prozessortakt (in der Theorie^^). Davon wird definitiv gebrauch gemacht, wer also einen aktuellen Prozessor hat, der bekommt ggf. allein durch die Befehlserweiterung schon einen Geschwindigkeitsvorteil, wer (so wie ich^^) eine alte Gurke als Prozessor hat, der bekommt auch dafür den optimalen (?!) Code compiliert! TOP!
Es werden also Anwendungen mit der OpenBLAS gesucht, bei denen man dann hier im Forum bspw. Geschwindigkeitsvergleiche der Prozessoren anstellen könnte.
Fairerweise müsste man dann ggf. aber auch überlegen, eine CUDA- oder OpenCL-Bibliothek mit den in OpenBLAS verwendeten Funktionen einzusetzen. https://github.com/xianyi/clOpenBLAS oder https://github.com/CNugteren/CLBlast
Meiner Erfahrung nach würde eine 100€ Grafikkarte bzw. eine in den Prozessor integrierte GPU die schönen neuen 1000+€ teueren CPU´s um mehrere Faktoren abhängen...aber womit soll dann INTEL sein Geld verdienen
https://cnugteren.github.io/clblast/clblast.html , dort mal eine GTX750Ti (2015) mit einem Intel Skylake (2015) vergleichen....da ist die Graka Faktor 5-10(!) schneller
Die Abarbeitung erfolgt so, dass die Prozessorcaches möglichst optimal genutzt werden.
Hierzu gibt es ein sehr bekanntes Paper von Goto, wo beschrieben wird wie er damals vorgegangen ist
Ich empfehle die Optimization Manuals von Agner Fog https://www.agner.org/optimize/ , der nicht nur ein Computer-Nerd ist https://www.agner.org/cultsel/?e=0#0