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.
Performances, la NumWorks détrône la HP Prime ! :o
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41981
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
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.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3663
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Performances, la NumWorks détrône la HP Prime ! :o
Merci pour les optimisations intéressantes.
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é.
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.
parisse wrote: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 wrote: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.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41981
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3663
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
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.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41981
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3663
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
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.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41981
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Performances, la NumWorks détrône la HP Prime ! :o
parisse wrote: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: Select all
#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
HP Prime - CAS+HPPPL :
- Code: Select all
#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
HP Prime - HPPPL :
- Code: Select all
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;
NumWorks + firmware à J+2 du 1.2.0 :
- Code: Select all
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
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41981
- Images: 15887
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Performances, la NumWorks détrône la HP Prime ! :o
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.
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.
-
zardamPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 233
- Images: 13
- Joined: 11 Oct 2017, 23:39
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Performances, la NumWorks détrône la HP Prime ! :o
@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 supposeMyCalcs: 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...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14744
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Who is online
Users browsing this forum: ClaudeBot [spider] and 1 guest