Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
2015:cm4-math [2016/01/16 15:21] Roman Fiala |
2015:cm4-math [2016/01/16 15:31] (aktuální) Roman Fiala |
||
---|---|---|---|
Řádek 334: | Řádek 334: | ||
===== Výsledky ===== | ===== Výsledky ===== | ||
- | V této části se nachází výsledky měření doby výpočtu požadovaných funkcí z knihovny ''<arm_math.h>''. Měření bylo provedeno pouze s hard FPU koprocesorem. Pro soft FPU koprocesor se nepodařilo program rozběhnout. Pro porovnání byly změřeny funkce ''cos'' a ''sin'' z knihovny ''<math.h>''. Frekvence procesoru byla nastavena na 168 MHz. Optimalizace kompilátoru nebyly použité. | + | V této části se nachází výsledky měření doby výpočtu požadovaných funkcí z knihovny ''<arm_math.h>''. Měření bylo provedeno pouze s hard FPU koprocesorem. Pro soft FPU koprocesor se nepodařilo program rozběhnout. Pro porovnání byly změřeny i funkce ''cos'' a ''sin'' z knihovny ''<math.h>''. Frekvence procesoru byla nastavena na 168 MHz. Optimalizace kompilátoru nebyly použité. |
==== Goniometrické funkce ==== | ==== Goniometrické funkce ==== | ||
- | ^ funkce ^ doba výpočtu ^ | + | ^ funkce ^ doba výpočtu ^ |
- | | arm_cos_f32 | 0.45 us | | + | | arm_cos_f32 | 0.45 us | |
- | | arm_sin_f32 | 0.45 us | | + | | arm_sin_f32 | 0.45 us | |
- | | arm_cos_q31 | 0.33 us | | + | | arm_cos_q31 | 0.33 us | |
- | | arm_sin_q31 | 0.33 us | | + | | arm_sin_q31 | 0.33 us | |
- | | arm_cos_q15 | 0.38 us | | + | | arm_cos_q15 | 0.38 us | |
- | | arm_sin_q15 | 0.33 us | | + | | arm_sin_q15 | 0.33 us | |
- | | cos | 10.21 us | | + | | cos | 10.21 us | |
- | | sin | 8.59 us | | + | | sin | 8.59 us | |
Řádek 371: | Řádek 371: | ||
Zadání bylo splněno pouze z části, protože se mi nepodařilo vytvořit program nevyužívající FPU koprocesor a také není zjištěna paměťová náročnost funkcí. Zkoušel jsem přidat do projektu soubor **libarm_cortexM4l_math.a**, vypnout v nastavení kompilátoru FPU a odstranit z #defines __FPU_USED. Program však nešel zkompilovat. Pro zjištění paměťové náročnosti jsem zkoušel alokovat pole o maximální velikosti co šlo (musel jsem postupně v cyklu zkoušet postupně alokovat více a více místa), poté bylo pole naplněno stejnými konstantami, následně byla paměť uvolněna. Po provedení výpočtů bylo pole opět alokováno a zjištěno, kolik se v poli nachází původních konstant. Toto řešení mi ovšem ukazovalo využitou paměť chybně. | Zadání bylo splněno pouze z části, protože se mi nepodařilo vytvořit program nevyužívající FPU koprocesor a také není zjištěna paměťová náročnost funkcí. Zkoušel jsem přidat do projektu soubor **libarm_cortexM4l_math.a**, vypnout v nastavení kompilátoru FPU a odstranit z #defines __FPU_USED. Program však nešel zkompilovat. Pro zjištění paměťové náročnosti jsem zkoušel alokovat pole o maximální velikosti co šlo (musel jsem postupně v cyklu zkoušet postupně alokovat více a více místa), poté bylo pole naplněno stejnými konstantami, následně byla paměť uvolněna. Po provedení výpočtů bylo pole opět alokováno a zjištěno, kolik se v poli nachází původních konstant. Toto řešení mi ovšem ukazovalo využitou paměť chybně. | ||
+ | |||
+ | Zjištěné doby výpočtů u funkce ''arm_conv_q15'' jsou oproti ostatním časům podezřele velké. | ||
+ | |||
+ | Výsledky podobného měření doby výpočtu funkcí z knihovny ''<arm_math.h>'' na jiném procesoru lze vidět například zde: [[https://community.freescale.com/thread/327833|K70 DSP benchmark test]]. |