Tag: Neon

12

Neon Instruction : VTBL, VTBX

fév
9 Comments »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

J’ai décidé de commencer une nouvelle série de posts pour détailler le fonctionnement de certaines instructions de NEON. Certaines instructions sont effectivement tellement particulières que lorsque je dois les utiliser à nouveau, je passe déjà une heure à me rappeler comment elles fonctionnent. Du coup, autant passer un peu de temps à faire une doc bien clair (pour moi ;) ) avec en plus quelques cas où j’ai eu besoin d’utiliser ces instructions.
Les premières à y passer sont les instructions VTBL et VTBX.

more...
 | Tags: , ,
01

NEON programmer Needed !

août

I was recently contacted by a company which proposed me optimize critical parts of an application designed to run on the iPhone (see Android someday). Let me say right now, being paid to do NEON assembly code, I did not hesitate for long!
So after a fortnight of optimizations, I’m pretty happy with the result because the application now works significantly faster!

This post is a translation of “Recherche programmeur NEON !

more...
 | Tags: ,
01

Recherche programmeur NEON !

août
3 Comments »   Posted by Etienne SOBOLE |  Category:Android, Systèmes, iOS

J’ai été contacté récemment par une société qui m’a proposé d’optimiser les parties critiques d’une application prévue pour fonctionner sur l’iPhone (voir Android un jour). Donc autant dire tout de suite, qu’être payé pour faire de l’assembleur NEON, j’ai pas hésité longtemps !
Donc après une quinzaine de jours d’optimisations à tout va, je suis assez content du résultat puisque l’application fonctionne à présent significativement plus vite !

more...
 | Tags: ,
21

Réduction du nombre de couleurs avec NEON

sept

Aujourd’hui, je m’intéresse aux algorithmes de conversion d’une image RGB888 (16 million de couleurs) à une image RGB565 (65000 couleurs).
NEON n’a pas de prédispositions particulières pour traiter les pixels 16 bits (RGB565 sur Android) ce qui conduit souvent les développeurs à effectuer les opérations complexes sur des pixels 32 bits puis de convertir le résultat en 16 bits une fois le traitement terminé.
Contre toute attente, il existe des algorithmes très efficace et peu gourmand en temps CPU pour réaliser de façon correcte cette conversion…

more...
 | Tags: , ,
09

Le BBC BASIC gère à présent NEON et VPF

août
No Comments   Posted by Etienne SOBOLE |  Category:Divers Infos

Bonne nouvelles pour les ayatollahs du RISC OS !
Les heureux utilisateurs du RISC OS (sur Beagleboard) pourront bientôt utiliser NEON et VPf.
Bon évidement, ça doit concerner environ 150 personnes dans le monde, mais bon, pour eux, c’est cool.
Pour ceux qui l’ignore (et ils sont sans doute nombreux), avant de faire paniquer les deux grands fondeurs que sont Intel et AMD, l’ARM (dont l’acronyme veut dire Acorn RISC Machine) était exclusivement déployé sur les ordinateurs “Archimedes” d’Acorn (le créateur de l’ARM donc) et embarquaient le RISC OS comme système d’exploitation!!!

more...
 | Tags: ,
15

Agrandissement bilinéaire: Le retour

juil

Il y a quelques temps j’avais proposé un algorithme d’interpolation bilinéaire permettant l’agrandissement d’une image dont les performances quoique correctes m’avaient un peu déçues.

J’ai finalement trouvé une solution pour booster significativement la performance de l’algorithme.
Mais le plus intéressant est sans doute la technique en elle-même, qui permet de coupler les deux unités de calculs que sont l’ARM et NEON

more...
 | Tags: ,
20

A simple NEON optimization method

juin

This post is a translation of “Méthode simple d’optimisation de code NEON

Since I discovered NEON, I had the opportunity to encode several small programs to test the beast.
NEON really is one of the highlights of Cortex. Its use is really simple, the big amount of registers and its instructions with 3 registers make its usage easier than on other processors.
Highly pipelined, the order of instructions is quite significant.
Whichever program you will achieve with NEON, you rarely falls on the optimal version of its implementation the first time. Finally, once you have pipelined at best, there is a last small optimization that allows almost every time to gain a few more cycles …

more...
 | Tags: ,
19

Méthode simple d’optimisation de code NEON

juin
1 Comment »   Posted by Etienne SOBOLE |  Category:ARM, Assembleur, Code

Depuis que j’ai découvert NEON, j’ai eu l’occasion de coder plusieurs petits programmes pour tester un peu la bête.
NEON est vraiment l’un des points fort des Cortex. Son utilisation est vraiment simple, son nombre important de registres et ses instructions à 3 registres rendent sa programmation en assembleur plus facile que sur d’autre processeurs.
Fortement pipeliné, l’ordre des instructions est assez important.
Quelque soit le programme que vous allez réaliser avec NEON, vous tomberez rarement sur la version optimale de son implémentation du premier coup. Au final, une fois que vous avez tout pipeliné au mieux, il reste une petite optimisation qui permet quasiment à chaque fois de gagner encore quelques cycles…

more...
 | Tags: ,
17

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

juin

Let’s go for of the cycle counter v0.8

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

Changes and evolutions in this new version are quite numerous.

  • Managing interactions between NEON and VPF
  • The cycle counter now check the validity of immediate values
  • You can now assign a inline variable to a register to allow the cycle counter to work with inline C code
  • Every analyzed code returns a permalink you can use (in a newsgroup for example) to show a code
  • Correction (or addition) of several hundreds of rules
more...
 | Tags:
17

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

juin
9 Comments »   Posted by Etienne SOBOLE |  Category:Ccc, Projets

C’est parti pour la version 0.8 du compteur de cycles.

Les modifications et évolutions de cette nouvelles version sont assez nombreuses.

  • La gestion des interactions entre NEON et VPf
  • Le compteur de cycle contrôle a présent la validité des donnée immédiate fournies
  • Il est possible à présent de mapper une variable “inline” sur un registre afin de rendre possible l’analyse de code inline C
  • Chaque code proposé retourne à présent un lien permanent que vous pouvez utiliser (dans un forum par exemple)
  • La correction (ou l’ajout) de plusieurs centaines de règles.
more...
 | Tags: