"De maniere generale, on arrive a rendre du code vectorise avec NEON plus rapide qu'en C. "
Oui, mais sur quel CPU ? Sur A8, je n'en doute pas, sur A9, c'est moins évident.
" Globalement, le seul moyen d'ameliorer les performances que nous voyons maintenant, c'est de trouver ce que l'on peut encore dedupliquer et ce que l'on peut compresser."
Vous triez déjà les champs des structures de données par ordre décroissant de taille pour éviter le padding ?
Vous pouvez aussi mettre en place du tiling, c'est à dire de changer l'ordre des opérations pour que les données utiles restent dans le cache le plus longtemps possible (travailler par texture et non par coordonnés d'écran par exemple, etc...). Sur la multiplication de matrice pleine, cela fait gagner un facteur 10.
Sur x86, tu as aussi des instructions pour ne pas mettre certaine données en cache. Cela peut être utile, si il s'agit de faire une simple copie de données, dont tu n'as plus besoin du tout ensuite, cela évite de "trasher" le cache.
Sinon, je croyais qu'un des avantages des images vectorielles étaient justement la faible empreinte mémoire, remplacé par du temps cpu.
[^] # Re: Mouais
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 3. Dernière modification le 14 janvier 2014 à 09:48.
"De maniere generale, on arrive a rendre du code vectorise avec NEON plus rapide qu'en C. "
Oui, mais sur quel CPU ? Sur A8, je n'en doute pas, sur A9, c'est moins évident.
" Globalement, le seul moyen d'ameliorer les performances que nous voyons maintenant, c'est de trouver ce que l'on peut encore dedupliquer et ce que l'on peut compresser."
Vous triez déjà les champs des structures de données par ordre décroissant de taille pour éviter le padding ?
Vous pouvez aussi mettre en place du tiling, c'est à dire de changer l'ordre des opérations pour que les données utiles restent dans le cache le plus longtemps possible (travailler par texture et non par coordonnés d'écran par exemple, etc...). Sur la multiplication de matrice pleine, cela fait gagner un facteur 10.
Sur x86, tu as aussi des instructions pour ne pas mettre certaine données en cache. Cela peut être utile, si il s'agit de faire une simple copie de données, dont tu n'as plus besoin du tout ensuite, cela évite de "trasher" le cache.
Sinon, je croyais qu'un des avantages des images vectorielles étaient justement la faible empreinte mémoire, remplacé par du temps cpu.
"La première sécurité est la liberté"