Archive for mars, 2011

30

In the bowels of NEON

mar

This post is a translation of “Dans les entrailles de NEON

By performing some tests on NEON operations, I realized that I spent next to a super important thing when I realized the cycle counter.
I assumed (wrongly) that NEON (and VPf) used the same pipelines as the ARM but different functional units.
In reality, the cortex do not works like that and it makes the cycle counter a bit more complex to correctly count a NEON code.

more...
 | Tags: ,
30

Dans les entrailles de NEON

mar
3 Comments »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

En réalisant quelques tests sur les opérations NEON, je me suis rendu compte que j’étais passé à coté d’un truc hyper important lorsque j’ai réalisé le compteur de cycles.
En fait j’ai supposé (à tord) que NEON (et VPf) utilisaient les mêmes pipelines que l’ARM mais des unités fonctionnelles différentes.
En réalité, ce n’est pas du tout comme çà que le Cortex fonctionne et ça rend un peu plus complexe le comptage réel des cycles.

more...
 | Tags: ,
25

Program to count the cycles of the A8 cortex: v0.5

mar

This post is a translation of “Programme pour compter les cycles du cortex A8 : v0.5“.

The cycle conter approach to the goal. By dint of debugging and optimization, the algorithm is now very fast (which will soon be very useful) and more reliable.

more...
 | Tags:
25

Programme pour compter les cycles du cortex A8 : v0.5

mar
3 Comments »   Posted by Etienne SOBOLE |  Category:Ccc, Projets

Salut.

Petit à petit, le calculateur de cycle approche du but. A force de débogage et d’optimisation, l’algorithme est à présent très rapide (ce qui va être prochainement très utile) et de plus en plus fiable.

more...
 | Tags:
17

Optimizing floating operations on Cortex A8

mar

This post is a translation of “Optimiser les opérations flottantes du Cortex A8“.

Floating point calculations are not the strongest point of the Cortex A8. I remember the first benchmark I made when I received the beagleboard. The result was a bit disappointing.
To add the VPf instructions in the cycle counter I had to investigate a little bit further how these instructions work. And there, big surprise…
This is slow, but it is quite possible to perform floating point operations much faster with the Cortex A8.

more...
 | Tags: , ,
16

Optimiser les opérations flottantes du Cortex A8

mar
5 Comments »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

S’il est bien un domaine où le Cortex offre des performances en retrait, c’est bien les opérations flottantes. Je me rappelle du bench original que j’avais réalisé lorsque j’avais reçu ma beagleboard. Et le résultat était alors très décevant.
Afin de pouvoir ajouter les instructions VPF dans le calculateur de cycle j’ai du regarder un peu plus le fonctionnement de l’unité de calcul flottant. Et là, grosse surprise…
Ca rame, mais il est tout à fait possible de réaliser des calculs flottants nettement plus rapides avec le cortex A8.

more...
 | Tags: , ,
07

Ebola – L’assembleur évolué.

mar
No Comments   Posted by Etienne SOBOLE |  Category:Ebola, Projets

J’ai attaqué il y a quelques semaines la décompression JPEG en assembleur.
Et là, il a bien fallu se rendre compte que l’assembleur, c’est pas très dur, mais c’est difficilement lisible (surtout re-lisible en fait).

Certes les commentaires sont là pour aider, mais finalement cela s’avère généralement insuffisant.
Il a donc fallu trouver un juste milieu entre un langage un poil plus évolué et la performance de l’assembleur.
J’ai donc décidé de créer mon propre “langage”!

more...
04

Programme pour compter les cycles du cortex A8 : v0.4

mar
No Comments   Posted by Etienne SOBOLE |  Category:Ccc, Projets

Me voilà de retour.

J’étais parti en laissant une version du compteur de cycles buggée.
Il était temps de faire une petite phase de stabilisation de l’outil avant d’aller plus loin.
J’en profite pour remercier Steve et Michael qui m’ont permis de faire un bon important vers une solution plus proche du fonctionnement réel du cortex.

more...
 | Tags: