Page 1 of 2

Test performances fx-CG50 : processeur 2 fois plus rapide ?!

Unread postPosted: 19 Feb 2017, 22:31
by critor
7805Cette semaine nous étions donc à la foire éducative Didacta à Stuttgart en Allemagne, pour la première présentation publique de la nouvelle Casio fx-CG50, dont la déclinaison française avec diode examen sera la Graph 90+E.
Ce modèle couleur remplace dans les deux cas l'ancienne fx-CG10 ou fx-CG20 selon les pays.

Pour notre deuxième journée, nous t'avions proposé de réaliser les tests de ton choix, et nombre d'entre vous s'interrogeaient sur les performances.
Et nous allons donc ce soir répondre à tes attentes ! ;)



Demandons par example le tracé de la courbe d'équation y=arcsin(arccos(arctan(tan(cos(sin(x)))))) pour sur une fenêtre avec [-6;6] en abscisse et [-4;4] en ordonnée, test repris des QCC 2016 :
  • La fx-CG20 avec son écran 384x216 pixels et son processeur SH4 32-bits cadencé à 58MHz met 3,7 secondes
  • La fx-CG50 avec le même écran ne met plus que 1,8 secondes :D

La fx-CG50 semblerait donc être à peu près 2 fois plus rapide que la fx-CG20 ! :bj:
Disposerait-elle d'un nouveau processeur ? ;)



Testons donc si cette accélération est générale, avec par exemple le programme suivant, provenant lui aussi des QCC 2016 :

Algorithme
Programme
Code: Select all
Initialisation :
   N prend la valeur 1
   U prend la valeur 2
Traitement :
   Tant que U≥0,0001
      U prend la valeur (NU+1)/(2(N+1))
      N prend la valeur N+1
   Fin Tant que
Sortie :
   Afficher N
Code: Select all
1→N
2→U
While U≥0.0001
   (NU+1)/(2(N+1))→U
   N+1→N
End
N
Code: Select all
Define test()=
   Local n,u
   1→n
   2→u
   While u≥0.0001
      (n∙u+1)/(2∙(n+1))→u
      n+1→n
   EndWhile
   Return n
EndFunc
Code: Select all
1→N
2→U
While U≥0.0001
   (NU+1)÷(2(N+1))→U
   N+1→N
WhileEnd
N
Code: Select all
1⇒n
2⇒u
While u≥0.0001
   (nu+1)/(2(n+1))⇒u
   n+1⇒n
WhileEnd
Print n
Code: Select all
EXPORT TEST()
BEGIN
   N:=1;
   U:=2;
   WHILE U≥0.0001 DO
      U:=(N*U+1)/(2*(N+1));
      N:=N+1;
   END;
   PRINT(N)
END;


Pour référence, voici un classement des temps d'exécution sur les différents modèles selon que l'on s'appuie sur le moteur de calcul numérique ou le moteur de calcul exact/formel, avec à chaque fois précisées les caractériques matérielles :
numériqueexact/CASmatériel
HP Prime1,4serreurARM 32-bits 400MHz
TI-Nspire CX
TI-Nspire CX CAS
3,4s18,2sARM 32-bits 148MHz
TI-Nspire
TI-Nspire CAS
TI-Nspire TouchPad
TI-Nspire CAS TouchPad
2,2s20,5sARM 32-bits 120MHz
Casio fx-CG10
Casio fx-CG20
70,3s
(1min 10,3s)
125,7s
(2min 05,7s)
SH4 32-bits 58MHz
Casio Graph 35+E
Casio Graph 75+E
68,4s
(1min 08,4s)
147,3s
(2min 27,3s)
SH4 32-bits 12MHz + 64Kio RAM
Casio Graph 25+E94,6s
(1min 34,6s)
194,6s
(3min 14,6s)
SH4 32-bits 12MHz + 20Ko RAM
TI-83 Premium CE
TI-84 Plus CE
192,9s
(3min 12,9s)
353,3s
(5min 53,3s)
eZ80 8-bits
TI-82 Advanced
TI-84 Plus T
262,4s
(4min 22,4s)
413,1s
(6min 53,1s)
z80 8-bits 15MHz
Casio fx-CP400+E394,2s
(6min 34,2s)
2583,5s
(43min 03,5s)
SH4 32-bits 116MHz

Il ressort de ce classement que la Casio fx-CP400+E a un énorme défaut de conception, étant de façon générale anormalement lente malgré l'un des processeurs les plus puissants.
Rajoutée au blocage des applications non officielles, cette lenteur extrême termine d'expliquer pourquoi la communauté ne publie quasiment rien pour ce modèle.

Même si cela n'a rien à voir, les Casio fx-CG10/20 souffraient également d'un défaut de vitesse dans le contexte de l'évaluateur de programmes Basic. Malgré un processeur presque 5 fois plus puissant que celui des Graph 35+E/75+E, les performances restaient très similaires.
Un défaut qui a bien embêté la communauté pour développer des programmes graphiques en langage Basic, car le volume de données à traiter est multiplié par 162 en passant de l'écran monochrome 128x96 pixels 1-bit à l'écran couleur 384x216 pixels 16-bits...



Donc, que donne la nouvelle fx-CG50 ? ;)
En mode numérique, elle termine le programme en 43,7 secondes, soit presque 2 fois moins de temps que les fx-CG10/20 ! :D

Le défaut logiciel de vitesse de l'évaluateur de programmes des fx-CG10/20 n'a donc pas été corrigé, sinon nous aurions eu beaucoup moins que ça.
Mais toutefois, la fx-CG50 est apparemment dans les 2 fois plus rapide ! :bj:
On peut supposer que pour le matériel de sa fx-CG50, Casio n'a pas réutilisé le processeur SH4 32-bits 58MHz des fx-CG10/20, mais a opté pour le SH4 32-bits 116MHz de la fx-CP400+E.

La fx-CG50 avec sa version française Graph 90+E est donc partie pour être parmi les calculatrices non formelles les plus rapides pour la rentrée 2017, juste derrière les TI-Nspire non-CAS. :bj:

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 20 Feb 2017, 17:36
by DoOmnimaga
Je croyais que la Graph 75 tournait aussi à 58 MHz comme la Prizm et que la 85 tournait à 29 MHz?

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 20 Feb 2017, 19:14
by critor
Cela expliquerait les mêmes performances alors.

Tu as des sources ?
Je peux avoir donné une mauvaise fréquence, mais je ne l'ai sûrement pas inventée.

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 22 Feb 2017, 14:17
by parisse
J'ai de gros doutes sur les calculs faits en exact (sur la Prime l'erreur vient d'un overflow dans la conversion fraction vers flottant pour le test avec 1e-4) sauf peut-etre sur le casio classpad (mais la le temps en numerique parait enorme). En fait, au bout de 10001 iterations, le numerateur et le denominateur de u ont plus de 3000 chiffres. Or il me semble que pour la nspire en tout cas, les entiers multi-precision sont limites a 1000 chiffres environ. De plus, le ratio avec le temps en numerique me semble trop faible pour etre credible, en calcul exact une operation sur des entiers ayant de l'ordre du millier de chiffres va prendre beaucoup plus de temps qu'une operation en flottants (au moins un facteur 100). Pour en avoir le coeur net, il faudrait renvoyer ou afficher le numerateur de u.

Pour comparaison, le programme equivalent en Xcas
Code: Select all
f():=BEGIN
  local n,u;
  n:=1; u:=2;
  WHILE u>=1/10000 DO u:=(n*u+1)/(2*(n+1)); n:=n+1; END;
  return u,n;
END:;

met une demi-seconde a s'executer (time(u,n:=f())), et on peut verifier (partiellement) la valeur de u avec evalf(numer(u),20)
Avec la classe fraction en Python, j'obtiens a peu pres la meme chose (c'est un peu plus lent qu'en Xcas parce que les entiers longs sont moins efficaces en Python alors que l'interpreteur Python est nettement plus rapide que l'interpreteur de Xcas).
Code: Select all
from fractions import *
def f(e):
  n=1
  u=Fraction(2,1)
  while e*u>=1:
   u=(n*u+1)/(2*(n+1))
   n=n+1
  return n

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 22 Feb 2017, 14:23
by critor
Merci.

Je pense tout simplement que la plupart des modèles basculent automatiquement en calcul numérique au bout de plusieurs itérations.

Et peut-être que la fx-CP400 et la HP Prime ne le font pas.

Ce ne serait pas un problème pour la fx-CP400 si elle ne fonctionnait pas de base aussi lentement...
Malgré un processeur très correct, la lenteur de calcul semble générale, aussi bien en exact/CAS qu'en numérique.
Même pour tracer un graphique ou sortir un tableur de variation, il faudra se montrer très patient, et attendre pour certaines fonctions des délais de plusieurs 10aines de secondes inexistants sur les autres modèles...

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 22 Feb 2017, 16:50
by parisse
Pour faire la comparaison en exact sans qu'il n'y ait de passage en approche en cours de route, je suggere de s'arreter a 2000 iterations (c'est deja relativement long). On est alors a 600 chiffres environ, et ca doit meme pouvoir se comparer avec des ti-68k.

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 23 Feb 2017, 12:57
by Bisam
Je viens de faire le test de l'algorithme en mode "Auto" sur ma Voyage200 et cela a pris 448.5 secondes (d'après l'utilitaire "Ticktest").
En mode "Exact", la calculatrice s'arrête sur une erreur "Overflow".
En mode "Approximate", cela prend 370,7 secondes.

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 23 Feb 2017, 13:49
by critor
Comparable à la fx-CP400+E donc... mais avec un processeur 10 fois moins puissant :troll:

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 24 Feb 2017, 08:41
by Lionel Debroux
Et dont toutes les instructions prennent au moins 4 cycles d'horloge.

Re: Test performances fx-CG50 : processeur 2 fois plus rapid

Unread postPosted: 24 Mar 2017, 21:03
by grosged
Donc, que donne la nouvelle fx-CG50 ?
En mode numérique, elle termine le programme en 43,7 secondes, soit presque 2 fois moins de temps que les fx-CG10/20 !


Je suis en train de mesurer le temps que met le programme-test sur ma CG20 overclockée, sauf que je ne sais pas comment passer en "mode numérique". C'est où dans les menus , svp ?