PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie schreibt man Code(z.B in c++) den der Compiler gut optimieren kann


Gast
2005-04-18, 17:33:14
Hallo,
wie schreibt man Code, den der Compiler optimal optimieren kann?
Wie muss ich z.B Code schreiben, damit der Compiler gut auf SSE oder SSE2
optimieren kann?

Ich hab schon gegoogelt aber leider nichts richtiges
zu diesem Thema gefunden.

Senior Sanchez
2005-04-18, 18:23:22
Naja, ich würde nicht so sehr auf den Compiler vertrauen, sondern mehr auf meinen eigenen Code, denn aus scheiße gold machen, kann der compiler auch net, ums mal salopp zu sagen ;)

Die Anpassung bestimmter Algorithmen hilft da meist mehr, die Compiler-Schalter sorgen nur noch fürn quäntchen performance, weil ohne von dir geschriebenen SSE/SSE2 kompatiblem Code, kann der Compiler nich viel drauß machen.

Um was geht es denn genau, vllt hilfts auch die Algorithmen hier offen zu legen, denn so findet man sicher schneller ne Lösung.

mfg Senior Sanchez

Trap
2005-04-18, 18:55:58
Parallelisierung oder Vektorisierung ist nur in ganz wenigen Compilern automatisch und da steht in der Dokumentation wie man dafür programmieren muss.

Ansonsten möglichst genau das schreiben was man haben möchte, keine unnötigen Forderungen in den Code einbauen.

Gast
2005-04-18, 18:59:16
Naja es geht mir hier nicht um einen bestimmten Fall.
Es geht darum, dass bei einigen Compilern "optimieren auf SSE/SSE2 " angeboten wird.

Nun geht es darum, wie ich diese Möglichkeit effektiv nutzen kann, so dass Floating Point Berechnungen möglichst nicht über die FPU,sondern über SSE2 Einheiten gerechnet werde.

Trap
2005-04-18, 22:02:45
Da muss man garnichts weiter machen. SSE2 Fließkomma einschalten und es funktioniert. Die SSE2-Einheit kann alles was die FPU auch kann (mit 64 statt 80 bit, aber das ist bei C++ sowieso die normale Größe für doubles)

Wenn man aber möchte dass pro Operation mehr als 1 Ergebnis berechnet wird braucht man Vektorisierung.