Float na 8bit - minitest

Jan Waclawek konfera na efton.sk
Středa Duben 24 08:45:39 CEST 2024


To nie je o obavach, to je faktor do kalkulacie.

32-bitove scitanie v tom AVR bude asi rychlejsie nez 15 cyklov, t.j.jeden rad. To nasobenie (kde je aj zlozka co je stvorec poctu byte) bude u toho isteho AVR s HW 8*8 nasobickou odhadom okolo 30-40 cyklov, t.j. cca 5x.  Tie pomery float/int32_t u AVR bez nasobicky/delicky nebudu prilis odlisne, len absolutne cisla budu vyrazne horsie. Log/sin budu na tom podobne, akurat tie celociselne si obvykle treba napisat.

Dalsi faktor je, ze ten float ma len 23+1 bitov mantisy, potreba prevodov, sposoby zaokruhlovania, riesenie okrajovych pripadov typu pretecenie (ktore mimochodom nie su poriadne riesene ani v celociselnom pripade) apod. 

Tym, ze su tie mcu lacne, dnes je ich spusta v aplikaciach, kde nejde o hard realtime, kde by predtym bolo pouxite ine riesenie (napr. analogovy obvod a rucickovy indikator); a aj tam, kde ide o realtime sa da napr. pouzit viac mcu do ktorych sa uloha rozdeli. Nehovoriac o tom, ze mcu so zabudovanou float jednotkou je uz tiez relativne lacna vec.

Inaksie povedane, ak sa beru C++, printf() prip. blokujuci seriak ako riesenie, tak potom je to uz aj tak o mavani rukou a teda ani float nie je zasadny problem.

wek


On 24 April 2024 07:57:59 CEST, Jaroslav Buchta <jaroslav.buchta na hascomp.cz> wrote:
>Jo, taky mi prijdou obavy z float prehnane, ono to v principu tak slozite neni, navic jsou jen bitove posuvy mantisy pred a po operaci a nejaka logika se znamenkem a exponentem. Komfort prace s cisly je pak o level jinde.
>A pokud uz je nutny double, tak narocnost zakladnich operaci bych si tipnul roste spis linearne nez rychleji, cili na cca dvojnasobek , jine to bude u funkci typu sin, cos, log... ale zase asi jen vyssi pocet iteraci.
>
>Dne 24.04.2024 v 7:09 Jan Waclawek napsal(a):
>> Zaujimave.
>> 
>> Takze rezia cca 50 cyklov, scitanie cca 150 cyklov, nasobenie asi 200, delenie dvojnasobok.
>> 
>> V scitani zrejme dominuje normalizacia resp. uvedenie na spolocny exponent, a rozne okrajove testy. Nasobenie vo float je vlastne takmer jednoduchsie nez scitanie, lebo netreba to uvedenie na spolocny exponent, co je defacto uz tiez nasobenie.
>> 
>> Toto AVR ma HW nasobicku 8*8 aj delenie 16/8, vsak?
>> 
>> wek
>> 
>> On 24 April 2024 01:10:08 CEST, "Pavel Hudeček" <edizon na seznam.cz> wrote:
>>> Ještě jsem přidal inicializaci hodin na 24 MHz.
>>> 
>>> PORTC.OUTTGL = 255;
>>> PORTC.OUTTGL = 255;
>>> PORTC.OUTTGL = 255;
>>> PORTC.OUTTGL = 255;
>>> PORTC.OUTTGL = 255;
>>> PORTC.OUTTGL = 255;
>>> 
>>> Dělá dle očekávání 12 MHz.
>>> 
>>> A tady původní program bez a s různými výpočty:
>>> 
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list na list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240424/0ca396e7/attachment.htm>


Další informace o konferenci Hw-list