21

Ma Beagleboard 1Ghz fonctionne à 800Mhz

déc

Lors de la réalisation du script de conversion YUG vers RGB que je cherche toujours à optimiser au maximum afin de bien cerner les subtilité du Cortex A8, J’avais quelques problème pour calculer le nombre de cycles utilisés par mon programme. Et surtout pour trouver où les cycles étaient perdus…

Et pour cause.
Apres de nombreux essais et calcul j’ai fini par me rendre compte que la distribution Linux de ma beagleboard avait limité la fréquence du processeur à 800 Mhz.
C’est en fait précisé ici.

Alors c’est plutôt cool à plus d’un titre:

  • la conversion YUVtoRBG va donc 20% plus vite que prévue
  • enfin j’obtiens des calculs de cycle cohérents. Lorsque j’ajoute ou retire une instruction je peux clairement calculer l’impact

Donc après une dernière optimisation, mon script (hors instruction d’accès mémoire) qui convertit (à chaque itération) 16 pixels. Cela nécessite 58 instructions qui s’exécutent en 58 cycles. Donc plus aucune perte de cycle. Cela donne donc 3.625 cycles par pixels.

Avec la lecture et l’écriture, j’arrive à 108 cycles toujours pour les mêmes 16 pixels.
les 3 lectures consomment 8 cycles chacunes (quand même)…
les deux écritures quant à elle prennent 13 cycles chacune.

J’ai du louper quelques chose. c’est sûr.
Bon on arrive donc à une moyenne de 6.75 cycles par pixels ce qui est nettement plus proche de mon objectif initial.

 | Tags:

One Response to “Ma Beagleboard 1Ghz fonctionne à 800Mhz”

  1. Daniel Aimees dit :

    Il semble que vous soyez un expert dans ce domaine, vos remarques sont tres interessantes, merci.

    - Daniel

Répondre

Human control : 9 + 9 =