π
<-
Chat plein-écran
[^]

Performances, la NumWorks détrône la HP Prime ! :o

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude critor » 17 Déc 2017, 14:58

Comme promis puisque l'écart est véritablement significatif, j'ai parlé de ce que donnent les performances avec les derniers commits :
viewtopic.php?f=97&t=20818#p224863

Merci à Adriweb de m'avoir fait la recompilation du firmware.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude parisse » 17 Déc 2017, 20:50

Comme le sujet est a la mode, j'ai pas mal retravaille dans Xcas sur les fractales et en passant je signale une petite optimisation du code qui fait gagner quelques % sur la Prime en mode CAS (probablement moins sur la Numowrks). Il s'agit d'echanger les boucles en x et en y pour precalculer c= -2.1+i*(h*y+0.935) et incrementer c une fois la boucle en x terminee par c=c+w.
Les versions a jour de Xcas pour Firefox permettent d'obtenir le Mandelbrot en environ 1 seconde sur un desktop et environ 10 secondes sur mon smartphone. L'autre fractale, les bassins d'attraction, est moins rapide, d'un facteur 3 environ. Si vous voulez les tester, voici un lien de depart
https://www-fourier.ujf-grenoble.fr/~parisse/algoxcas.html#exemples
Malgre les ameliorations recentes pour la Numworks (ou potentiellement sur la HP Prime un jour), il me parait peu probable qu'en-dehors de quelques passiones, beaucoup de gens soient vraiment interesses par tester des fractales sur calculatrices, c'est trop lent. Meme sur smartphone c'est limite, il faut un desktop pour s'amuser. Par contre pour le developpement, c'est un defi qui permet d'optimiser pas mal de fonctions (j'ai du gagner un facteur 2 dans Xcas pour Firefox).
Enfin, je voudrais rappeler que quand on parle de performances, il n'est pas raisonnable de se focaliser sur un seul exemple. Les usages d'une calculatrice sont divers, certaines commandes sont plus ou moins optimisees. La HP Prime en mode non CAS travaille avec des flottants en base 10, comparer la puissance brute sur un unique exemple faisant intervenir principalement du calcul flottant avec la Numworks qui travaille en base 2, c'est biaise. Meme en restant dans le domaine du graphisme pixellise, personne n'a pour le moment propose de code pour les bassins d'attraction sur la Numworks. Et si on regarde dans d'autres domaines, les performances sont (bien) meilleures sur HP: par exemple factorisation d'entiers ou simulation.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3502
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude critor » 17 Déc 2017, 21:13

Merci pour les optimisations intéressantes. :)

parisse a écrit:Enfin, je voudrais rappeler que quand on parle de performances, il n'est pas raisonnable de se focaliser sur un seul exemple.

Bien pour ça que cela n'a pas été mis en avant en août dernier, la NumWorks étant encore 'difficilement' programmable à l'époque.

C'est donc après avoir confirmé des écarts significatifs sur des exemples différents que nous avons annoncé.

parisse a écrit:Meme en restant dans le domaine du graphisme pixellise, personne n'a pour le moment propose de code pour les bassins d'attraction sur la Numworks.

Faut-il juste que les choses à comparer soient comparables.
Pas de fonctions symb2poly(), proot(), evalf() ou horner() sur NumWorks à ma connaissance.
Il serait donc biaisé de comparer la HP Prime avec ces fonctions built-in compilées, à la NumWorks où il faudrait toutes les adapter à la main en interprété.

De façon similaire la TI-Nspire CX CAS n'a pas été incluse dans ce test, vu qu'elle oblige à ce jour à passer plus ou moins intuitivement par une bufferisation ou un calque offscreen pour les sorties graphiques, et serait donc je pense plus rapide sur une adaptation de cet exemple, ce qui ne voudrait absolument rien dire.



Que la HP Prime fasse plus de travail en interne est une chose.
Le fait est qu'on demande ici exactement la même chose aux deux calculatrices.
Donc oui, la comparaison en performances (ou puissance apparente) est valide du point de vue utilisateur, le seul qui nous intéresse.

Ce n'est pas une comparaison de puissances réelles des processeurs, ce dont d'ailleurs l'utilisateur se moque complètement, au profit du point précédent. Il n'empêche que les écarts sont tellement importants que je commence sérieusement à douter des 400 MHz.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude parisse » 17 Déc 2017, 21:33

Mais justement j'insiste, la richesse de la bibliotheque de commandes a disposition est un element fondemental dans la mesure des performances d'un langage interprete et c'est aussi une mesure de l'utilite d'un langage pour du developpement rapide. Et c'est la que le choix d'avoir un langage integre au reste de la calculatrice prend toute son importance. Sur la Numworks, vous beneficiez de certaines des fonctionnalites builtin Python et des modules Python portes: math, cmath et graphiques pixelises. Et c'est tout pour le moment. Pas de calcul matriciel par exemple. Probablement que la prochaine release va rajouter le module random ou au moins une partie pour faire un peu de simulation, mais pas forcement de quoi traiter rapidement des listes de donnees et probablement pas de quoi faire des representations graphiques d'histogramme obtenus par simulation. Il faudra le faire a la main avec les graphiques pixellises. Sur la Prime, par contre, vous pouvez utiliser toutes les instructions CAS dans un programme, que ce soit operations matricielles, racines de polynome, facteurs d'un entier ou instructions de trace graphique et evidemment que ca influera sur la rapidite a ecrire votre programme et a l'executer.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3502
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude critor » 17 Déc 2017, 21:39

Et nulle intention de ma part de cacher les possibilités intégrées très supérieures de la HP Prime.
C'est pour cela qu'elle est devant la NumWorks à notre classement de rentrée, et qu'au prochain classement elle va très probablement le rester et peut-être même passer première devant la Nspire CX CAS avec les dernières nouveautés.

Cela n'a juste rien à voir selon moi avec des tests de performances qui doivent rester sur des exemples relativement simples afin de pouvoir comparer équitablement un nombre maximal de modèles avec le moins de biais possible.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude parisse » 17 Déc 2017, 21:50

C'est bien pour cela que questions performances, il faudrait faire plusieurs comparaisons dans des domaines varies. Comparer equitablement ne peut se limiter a l'exemple mis en avant par l'un des constructeurs qui teste principalement la vitesse pure de l'interpreteur et le calcul en complexes flottants.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.2%
 
Messages: 3502
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude critor » 17 Déc 2017, 21:57

En tous cas pour un classement de rentrée concernant tous les modèles, un exemple qui comme ici effectue des sorties graphiques n'est pas envisageable.
Trop différences à la fois entre les écrans, et entre les instructions permettant d'allumer des pixels.

Mais dans tous les cas merci pour la suggestion.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude critor » 17 Déc 2017, 23:21

parisse a écrit:Comme le sujet est a la mode, j'ai pas mal retravaille dans Xcas sur les fractales et en passant je signale une petite optimisation du code qui fait gagner quelques % sur la Prime en mode CAS (probablement moins sur la Numowrks). Il s'agit d'echanger les boucles en x et en y pour precalculer c= -2.1+i*(h*y+0.935) et incrementer c une fois la boucle en x terminee par c=c+w.
Les versions a jour de Xcas pour Firefox permettent d'obtenir le Mandelbrot en environ 1 seconde sur un desktop et environ 10 secondes sur mon smartphone.


Fait, voici ce que ça donne. Et merci bien.

HP Prime - CAS+Python :
Code: Tout sélectionner
#cas
def fractal_python(W,H,N) :
local x,y,z,c,j,w,h,n;
w=2.7/(W-1)
h=1.87/(H-1)
n=255.0/N
for y in range(H):
  c=-2.1-*(h*y-.935)
  for x in range(W):
   z=0
   for j in range(N):
    z=z*z+c
    if abs(z)>2:
     break
   PIXON_P(x,y,255*20*j+256)
   c=c+w
FREEZE
WAIT(0)
#end
2mins25.50s (on gagne une bonne 10aine de secondes)

HP Prime - CAS+HPPPL :
Code: Tout sélectionner
#cas
fractal_cas(W,H,N)
BEGIN
local x,y,z,c,j,w,h,n;
w:=2.7/(W-1);
h:=1.87/(H-1);
n:=255.0/N;
FOR y FROM 0 TO H-1 DO
  c:=-2.1-*(h*y-.935);
  FOR x FROM 0 TO W-1 DO
   z:=0;
   FOR j FROM 0 to N-1 DO
    z:=z*z+c;
    IF abs(z)>2 THEN
     break;
    END;
   END;
   PIXON_P(x,y,255*j*20+256);
   c:=c+w;
  END;
END;
FREEZE;
WAIT(0);
END;
#end
2mins25.09s (de même, une bonne 10aine de secondes)

HP Prime - HPPPL :
Code: Tout sélectionner
EXPORT fractal(W,H,N)
BEGIN
LOCAL x,y,z,c,j,w,h,n;
w:=2.7/(W-1);
h:=1.87/(H-1);
n:=255.0/N;
FOR y FROM 0 TO H-1 DO
  c:=-2.1-*(h*y-.935);
  FOR x FROM 0 TO W-1 DO
   z:=0;
   FOR j FROM 0 to N-1 DO
    z:=z*z+c;
    IF ABS(z)>2 THEN
     break;
    END;
   END;
   PIXON_P(x,y,j*255*20);
   c:=c+w;
  END;
END;
FREEZE;
WAIT(0);
END;
1min35.93s (on gagne moins de 2 secondes)

NumWorks + firmware à J+2 du 1.2.0 :
Code: Tout sélectionner
from kandinsky import set_pixel
def mandelbrot(W,H,N) :
w=2.7/(W-1)
h=1.87/(H-1)
n=255.0/N
for y in range(H):
  c=complex(-2.1,.935-h*y)
  for x in range(W):
   z=complex(0,0)
   for j in range(N):
    z=z*z+c
    if abs(z)>2:
     break
   set_pixel(x,y,255*20*j+256)
   c=c+w
51.48s (on gagne un peu plus de 2 secondes)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude zardam » 18 Déc 2017, 08:22

J'ai fini par expliquer la différence de performance avec la pyboard. Par défaut le firmware de la pyboard est compilé avec MICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_FLOAT alors que la Numworks utilise MICROPY_FLOAT_IMPL_DOUBLE.

En compilant le firmware de la pyboard pour des double précision, le temps de calcul devient identique (à la fréquence CPU près)

Avec MICROPY_FLOAT_IMPL_FLOAT, la pyboard est aussi bien aidée par : https://github.com/pycom/pycom-micropyt ... fp_sqrtf.c je suppose.
Avatar de l’utilisateur
zardamPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 34.6%
 
Messages: 233
Images: 13
Inscription: 11 Oct 2017, 23:39
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Performances, la NumWorks détrône la HP Prime ! :o

Message non lude Adriweb » 18 Déc 2017, 09:25

@critor: dans le code numworks, la ligne c=complex(-2.1,.935-h*y) est placée avant le premier For, par erreur de copie je suppose
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

PrécédenteSuivante

Retourner vers News NumWorks

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 27 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2599 utilisateurs:
>2589 invités
>5 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)