title image


Smiley Re: Wieso, es gab doch
> Ich möchte hier ausdrücklich sagen, dass ich z.B. vom Techniker auch eine sehr sehr gute Meinung habe. Seine unreflektierte Meinung zum Loop-Unrolling war aber auch etwas daneben.

> Ganz offensichtlich war der Code des Fragestellers nicht auf einen Intel gemünzt (weshalb sonst zwei register Variablen?) und der Code war auch sehr "old fashioned" geschrieben.

> Tatsächlich wissen heutige Compiler, wo Loop-Unrolling sinnvoll ist und wo nicht. Wenn man das selbst macht, dann begreift der Optimizer oft nicht, was man eigentlich wollte. Trotzdem war das Mitdenken bei so Prozessoren wie z.B. dem 680xx absolut sinnvoll und kann nicht einfach in's Lachhafte gezogen werden. Es handelte sich einfach um ein Loop-Unrolling und mehr hat der Fragesteller auch nicht wissen wollen.



Erst mal danke für das Lob.



Aber das ganze muß bitte im Kontext gesehen werden. Die Aussage, über die ich mich hergemacht hatte, war:



> Angeblich soll diese Funktion unten, sehr schnell, und sicher sein?!



...und ich hatte auch so explizit noch mal angegeben, daß ich mich genau darauf beziehe. Ich seh's einfach zu oft, daß viele aus einer falschen Intuition und fehlgeleitetem Effizienzdenken heraus versuchen, der Maschine etwas unterzuschieben, von dem sie meinen, es sei besonders optimiert, letzten Endes macht es aber dann weder im Hinblick darauf Sinn, daß ein Mensch den Code lesen können soll, noch mit dem Hintergedanken, daß ein modernes Gespann aus Mikroprozessor und Compiler damit gefüttert werden soll. Loop unrolling ist bitte Arbeit des Compilers, und wenn ich schon unbedingt glaube, irgendwo im C-Code manuell die Arbeit des Compilers machen zu müssen, weil das erwiesenermaßen besser ist, ist es mehr als angebracht, diese Tatsache kurz mit einem dazugehörigen Code-Kommentar zu erläutern.



Wie gesagt: wenn das Zielsystem nicht superskalar superpipelined ist, sieht die Sache anders aus, aber ich hatte ja auch geschrieben:



> Ich würde eher sagen: der Autor dieser Zeilen programmiert entweder Mikrocontroller, ...



Ich wollte einfach verhindern, daß sich der Fragesteller irgend eine alte Quelle aus den 80ern über loop unrolling besorgt und in Zukunft dann solchen Code schreibt.



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: