Forum: Mikrocontroller und Digitale Elektronik FLOPS berechen


von Ben (Gast)


Lesenswert?

möchte für einen algorithmus die laufzeit berechnen. dafür brauche ich 
aber die anzahl flops die beispielsweise auf einem atmega8 zu erreichen 
ist. hat da jemand eine ahnung? bin auch froh um ein einfaches 
einführendes besipeil wie man so was macht.

von H.Joachim S. (crazyhorse)


Lesenswert?

lad dir das Programm in den Simulator, lass es laufen, dann siehst du 
exakt, wieviele Takte das ganze braucht. Und, wenn richtige Taktfrequenz 
angegeben, sogar schon umgerechnet in Zeit.

von Karl H. (kbuchegg)


Lesenswert?

FLOPS wird mit einem Mega8 ein Problem. Der hat nämlich keine Floating 
Point Unit. Und damit ist die erreichbare FLOP Rate stark von der 
Implementierung der Floating Point Operationen in der Bibliothek 
abhängig.
Abgesehen davon versucht man auf einem Mega8 (oder Konsorten) möglichst 
ohne Floating Point Operations auszukommen. Festkommaarithmetik ist in 
den meisten Fällen genau so gut. Man muss halt ein bischen stärker 
nachdenken was man da eigentlich macht, aber dann gehts wunderbar und zu 
einem Bruchteil dessen, was mit Floating Point möglich ist.

von heute schon (Gast)


Lesenswert?

Floatingpoint auf einem Mega8 ? Waehrend die einfachen operationen noch 
machbar sind, fuerchte ich, dass bereits das printf groesser als die 8k 
sind. Menn man nun einen Compiler haette, der unbenutztes Zeug aus einer 
zugelinkten Library rauswirft, so deren Komponenten unabhaengig 
waeren...

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Numbers in range from 0.00000000023283064365386962890625 ... 
0.99999999976716935634613037109375 I call "not special", special contain 
as well numbers as NaN, +Inf -Inf +0.0 -0.0 and subnormal values.

addsf3 from Library WinAVR 2006-01-26 requires in atmega32 (avr5) 
408...1851 cycles, on not special numbers 705...845 cycles

addsf3 from Library WinAVR 2007-01-22 requires in atmega32 (avr5) 
333..1681 cycles, on not special numbers 587...731 cycles

addsf3 from savannah CVS 2007-02-21 requires in atmega32 (avr5) 67...295 
cycles, on not special numbers 85...143 cycles

mulsf3 from Library WinAVR 2006-01-26 requires in atmega32 (avr5) 
366...2628 cycles, on not special numbers 1832...2127 cycles

mulsf3 from Library WinAVR 2007-01-22 requires in atmega32 (avr5) 
290...2298 cycles, on not special numbers 1549...1829 cycles

mulsf3 from savannah CVS 2007-02-21 requires in atmega32 (avr5) 71...414 
cycles, on not special numbers 121...139 cycles

divsf3 from Library WinAVR 2006-01-26 requires in atmega32 (avr5) 
340...1939 cycles, on not special numbers 1261...1385 cycles

divsf3 from Library WinAVR 2007-01-22 requires in atmega32 (avr5) 
273...1806 cycles, on not special numbers 1162...1288 cycles

divsf3 from savannah CVS 2007-02-21 requires in atmega32 (avr5) 
78...2230 cycles, on not special numbers 448...493 cycles

All that versions of addsf3, mulsf3, divsf3 deliver Intel Hardware 
kompatible results.

The CVS version can be downloaded from 
http://savannah.nongnu.org/projects/avr-libc

There download the source codes from CVS,

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.