π
<-
Chat plein-écran
[^]

TI-83 Premium CE EDITION PYTHON version 5.3.6

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby Adriweb » 03 Sep 2019, 18:20

Ca y est j'ai réparé le LLVM sur le PB :P

Tu peux retenter en faisant clean puis ceci (puis download, puis teste) :



En vrai je sais pas si ca va changer grand chose vu que le code est simple, mais sait-on jamais :)

Edit: mais en fait dans ton code, non, LLVM ne supporte pas quelque chose qui s'y passe (c'est un gros projet en WIP depuis plusieurs années, peu de temps y est passé dernièrement, un jour ca sera amélioré/fini :P)
Edit2: en enlevant le floor(), ça passe.
Edit3: ouai avec LLVM c'est instantané... il y a de l'optimisation dans l'air.
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby emilechombier » 03 Sep 2019, 20:17

tu es sûr qui a pas un bug dans le compilateur LLVM?
Ca me fait 10 millions d'itérations en 0 secondes :#fou#: :~o :#fou#: alors qu'en passant par le ZDS ça prend 25 secondes, ce qui est plus plausible...
à moins que tu aies trouvé un moyen de faire des calculs en supraconductivité sur Ti83 par voie logicielle ...
User avatar
emilechombier
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 8.6%
 
Posts: 51
Joined: 01 Sep 2019, 17:29
Gender: Male
Calculator(s):

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby Adriweb » 04 Sep 2019, 05:10

Probablement parce que LLVM détecte que la boucle est inutile pour le reste du programme, donc il optimise ca en l'enlevant, tout simplement. On peut le forcer à ne pas optimiser ce bout la si on veut vraiment.

ZDS n'est pas très doué pour les optimisations, malheureusement, mais est plus "fini" en terme de support.

Le fork de LLVM en question : https://github.com/jacobly0/llvm-z80
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby emilechombier » 04 Sep 2019, 07:08

... et il pousse même le luxe à incrémeter le compteur d'un coup!: ce qui expliquerait que quand je fais afficher le nombre de tours à la fin il m'indique bien 10 millions d'itérations en zéro secondes ! (c'est un ptit tricheur celui-là ! :D)
En revanche quand c'est optimisé avec LZD il m'indique un nombre farfelu (3 millions .. etc.) un problème d'adressage mémoire? bref peu importe

"On peut le forcer à ne pas optimiser ce bout la si on veut vraiment."

La doc indique plein de transformations possibles :http://llvm.org/docs/Passes.html
La mienne devrait être celle-là :
-loop-deletion: Delete dead loops
This file implements the Dead Loop Deletion Pass. This pass is responsible for eliminating loops with non-infinite computable trip counts that have no side effects or volatile instructions, and do not contribute to the computation of the function’s return value.

Sais-tu comment peut-on personnaliser la commande avec PB ?
User avatar
emilechombier
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 8.6%
 
Posts: 51
Joined: 01 Sep 2019, 17:29
Gender: Male
Calculator(s):

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby Adriweb » 04 Sep 2019, 12:41

Oui et non, pas directement. Mais bon, on peut jouer avec l'attribut "volatile" sur l'index de la boucle, par exemple.
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby emilechombier » 04 Sep 2019, 13:51

je ne suis pas assez expert pour gérer ce qu'est cet attribut "volatile" .
J'ai recommencé en "remplissant la boucle" en affichant le compteur et j'ai mis 2 boucles imbriquées de 100 tours (donc 10000 tours).
Cette fois ça fonctionne, LLVM ne saccage plus mes boucles! et c'est plus près d'une "expérience utilisateur" normale.
https://tiplanet.org/pb/?id=229901_1567 ... 86bf32715a
LZD me donne 43 secondes et une taille de 476 o. et IDEM pour LLVM 43 secondes aussi... mais le prog est (un peu) plus grand avec 505 o.
Donc apparemment LLVM n'est pas si miraculeux que ça dans le cas de petits programmes simples....
Je vais refaire mon test sur TiBasic et Python avec ce protocole et je vais essayer de m'y coller en assembleur ça me fera un bon exercice de départ pour apprendre.
Allez je vous laisse tranquille, ça commence à faire troll :troll:
User avatar
emilechombier
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 8.6%
 
Posts: 51
Joined: 01 Sep 2019, 17:29
Gender: Male
Calculator(s):

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby Adriweb » 04 Sep 2019, 14:12

ZDS (et non pas LZD) tu veux dire ? :P

Oui, pour des trucs triviaux, a partir d'un moment ca va être difficile de mesurer des différences.
Tu peux voir toi même la comparaison de l'assembleur généré (avec le choix du bouton "Diff ASM..."

Par contre dans les options du projet, tu peux choisir d'optimiser pour la taille, ou pour la performance. Et pareil pour LLVM mais ca se fait à la main dans le champ des options (-O0, -O3, -Os, -Oz... cf. la doc).
En tentant d'optimiser pour la taille, j'ai moins de 30 octets de différences entre les 2 compilateurs. (Mais sur des plus gros programmes, la différrence est nette, et qand on reste dans les limites de ce que LLVM est pour le moment capable de gérer, il est infiniment mieux).
En optimisant pour privilégier la vitesse, LLVM
inline
(il en est capable, en tout cas, et le fait des que c'est mieux) beaucoup de choses, c'est à dire que certains contenus de fonctions peuvent se retrouvés directement à l'intérieur d'autres bouts de code, quand la performance en sera affectée positivement pour une raison ou pour une autre, meme si c'est plus gros.

Toujours est-il que ZDS est limité à du C ANSI (C89) et produit de temps en temps du code invalide et crashe aussi parfois. LLVM, parmi le subset supporté (oui, c'est contraignant aussi, ce n'est pas un projet terminé....), produit du code largement mieux.
Et puis tu peux faire du C99, C11, C++17 meme si tu veux :P Exemple ici avec une classe C++ de Point 2D et dans le main je vais un calcul simple avec 2 instances : https://tiplanet.org/pb/?id=1381_149565 ... =Point.cpp

Par "volatile" sinon, c'était juste une question de mettre "volatile int toto = 1;" au lieu de "int toto = 1;".

Je dois avoir des programmes du type fractales etc où l'on voit mieux la différence de performance entre le code généré par LLVM et celui de ZDS...
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 54.3%
 
Posts: 12949
Images: 1086
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby Chilperic99 » 12 Sep 2019, 22:46

grosged wrote:Salut,
Je viens d'acheter une TI-83 Premium CE EDITION PYTHON, apparemment en version 5.3.6 (car le BOOT Code est en version 5.3.6.0017 , et le BASE Code en 5.3.6.0018)

Et quand j'essaye de passer en mode python...
Image
j'ai ceci...Image
L'application Python App v5.3.6 n'a pas l'air encore disponible, on dirait ..?
Il ne me reste plus qu'à attendre que celle-ci soit disponible , ou y aurait-il un autre moyen ?

Bonjour tout le monde, mais dites-donc ! Ce modèle m’intéresse beaucoup, je voudrai en savoir plus s’il vous plaît, est-ce possible ? Merci de votre retour  Cependant j’ai une petite question à vous confier si c’est possible. Amicalement
User avatar
Chilperic99
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Level up: 0%
 
Posts: 1
Joined: 12 Sep 2019, 22:45
Gender: Not specified

Online

Re: TI-83 Premium CE EDITION PYTHON version 5.3.6

Unread postby critor » 12 Sep 2019, 23:03

Bonsoir.

Quelle est la question ?
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 6%
 
Posts: 35493
Images: 9480
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Previous

Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: No registered users and 8 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
544 utilisateurs:
>531 invités
>9 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)