Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:cm4-math

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2015:cm4-math [2016/01/16 15:19]
Roman Fiala
2015:cm4-math [2016/01/16 15:31] (aktuální)
Roman Fiala
Řádek 23: Řádek 23:
 ==== Zdrojový kód ==== ==== Zdrojový kód ====
  
-Níže je zobrazen soubor ​vytvořené knihovny ​**benchmark.c**.+Níže je zobrazen soubor **benchmark.c** ​vytvořené knihovny.
  
 <code c> <code c>
Řá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 ​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]].
2015/cm4-math.1452953990.txt.gz · Poslední úprava: 2016/01/16 15:19 autor: Roman Fiala