SSE Bibliothek?



  • Ich wollte mal fragen, wie das genau ist:

    ich muss ein paar physikalische Simulationen schreiben und würde gerne SSE1/2/3, sowie weitere Optimierungen benutzen (alles auf C++) ...

    1. Frage: Wenn ich diese Code Optimierungen beim Compiler einschalte: kann der Compiler Vektoroperationen automatisch erkennen ? z.B. wenn ich arrays hin und herkopiere, double/floats addiere, subtrahiere etc... etc...

    2.Frage: bestimmte Operationen wird er einfach nicht erkennen können, z.B. Vektorprodukte, Additionen etc.. Ich schätze da gibt es für jedes Betriebssystem bestimmte CPU Intruktionen? Gibt es irgendwo eine Auflistung/Doukmentation der benötigten Befehle? (Ich kenne mich ansonsten mit C++ ziemlich gut aus, sollte also schon eher was tiefer gehen...)

    3.Frage: Falls jedes Betriebssystem seine eigenen Instruktionen hat: gibt es so etwas wie ein "framework" für Compiler/Prozessor-optimierten Code? also ein Framework, daß mir Matrix/Vektoroperationen etc alles zur Verfügung stellt und automatisch SSE/SSE2/SSE3 und noch weitere Optimierungen verwendet? (Ich weiss ich will warcheinlich eine Eierlegende Wollmichsau, aber schön wärs, wenns das ganhze auch noch als cross-platform-Bibltiothek gäbe ^^...

    Grüße, Tom



  • ad 1) ja, der compiler kann das, die frage ist bloss wie gut.

    ad 2) in der MSDN sind die compiler intrinsics schön dokumentiert, such einfach nach "MMX, SSE, and SSE2 Intrinsics".

    ad 3) keine ahnung



  • D3DX hat solche optimierten Routinen für die Mathesachen. Falls das für dich in Frage kommt..


Anmelden zum Antworten