| Amiga Impact

  · Accueil
  · Actualités
   · Proposer une info
  · Agenda
   · Proposer une date
  · Articles
  · Forum
  · Petites Annonces
  · Chat IRC
  · À propos du site
   · Confidentialité



 | Connexion

Identifiant :

Mot de passe :

 Mémoriser

  · Inscription
  · Mot de passe oublié



 | En ligne

Aucun membre ne se trouve actuellement sur le site






 | Nous suivre

Flux RSSGoogle+TwitterFacebook





Forum

/   Forums d'Amiga Impact
   /  Eval vitesse d’un programme sur differents amigas

Accueil Forums AmigaOS, MorphOS et AROS Développement Eval vitesse d'un programme sur differents amigas

Ce sujet a 100 réponses, 13 participants et a été mis à jour par  __sam__, il y a 5 mois et 2 semaines.

15 sujets de 76 à 90 (sur un total de 101)
1 5 6 7

Auteur Messages   
#306301 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 11/03/2018 à 16:35


flype

Participant
  • Messages : 1097

@goodchip

tu nous montres ? 🙂 une ch’tite photo please.

A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

#306307 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 11/03/2018 à 17:36


huggyone76

Participant
  • Messages : 1977

Merci Goodchip, yapuka… 😉

A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+ACA1230+indivision MK2 - A1200+BPPC/060+BVision - A2000 + ROMs 3.1 + IDE4 - Mac Mini 1.42 sous MOS - Just CPC 128k - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 1Mo + CF - Sharp X68000 CZ-611C 4Mo + CF + ext. MIDI

#306308 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 11/03/2018 à 17:39


goodchip

Participant
  • Messages : 510

Je vous montre ça ce soir.

  • Cette réponse a été modifiée le il y a 6 mois et 1 semaine par  goodchip.

Sylvain aka goodchip

A500+/080
A600/HS
A1200AT/020
A2000/HS
A3000/030
A4000/040
A4000/060
Powerbook G4 17'' @1,67GHz

#306341 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 11/03/2018 à 22:16


goodchip

Participant
  • Messages : 510

avant :

pendant :

après :

  • Cette réponse a été modifiée le il y a 6 mois et 1 semaine par  goodchip.

Sylvain aka goodchip

A500+/080
A600/HS
A1200AT/020
A2000/HS
A3000/030
A4000/040
A4000/060
Powerbook G4 17'' @1,67GHz

#306505 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 13/03/2018 à 23:52


__sam__

Participant
  • Messages : 1484

Ce soir j’ai ré-écrit le rasterizer en asm: >>ici<<

Résultat: outre le fait que c’est plus rapide, les différences entre compilateurs sont réduites.

Ca n’est qu’un 1er jet en ASM, je pense qu’on peut faire plus rapide car la grosse formule appliquée en chaque point:

*out = makeColour(
real2scalar(
modelTri->vertices[0]->color.x * d1 +
modelTri->vertices[1]->color.x * d2 +
modelTri->vertices[2]->color.x * d0),
real2scalar(
modelTri->vertices[0]->color.y * d1 +
modelTri->vertices[1]->color.y * d2 +
modelTri->vertices[2]->color.y * d0),
real2scalar(
modelTri->vertices[0]->color.z * d1 +
modelTri->vertices[1]->color.z * d2 +
modelTri->vertices[2]->color.z * d0));

Peut être optimisée en passant par des delta pour réduire les 9 multiplications et 6 additions à seulement 3 additions.

Samuel.

Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne
A1200 (Blizzard-IV/fpu/64Mo) - A500 (+ 1Mo PPS) - A500 Vampire V2+
(mais aussi TO8 - TO8D - TO9. Groupe PULS.)
Pub >>Teo 1.8.4<<

#306535 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 15:34


thellier

Participant
  • Messages : 580

@Samuel

Si tu veux te lancer dans la modif de l’asm:
une commande pratique dans gcc c’est

gcc -Wa,-adhln -g -Wall -m68020-40 -m68881 -noixemul -O3 -c fillpoly.c > fillpoly-mixed.c

qui donne l’asm généré mixé avec le source original en C

Je me suis fait une commande qui
1) nettoye ce listing (notamment enlève les chiffres en début de ligne et mets le C en commentaires)
ainsi on peut écrire dedans ses modifs de l’asm
2) la même commande enlève les commentaires pour obtenir un asm pur prêt à recompiler avec gcc

Si t’as un mail et que ça t’intéresse

Alain

Exemple de mix:

131:fillpoly.c **** Delta.L.u=(Edge2->L.u – Edge1->L.u)/dx;
863 .stabd 68,0,131
864 0084 202C 000C movel [email protected](12),d0
865 0088 90AB 000C subl [email protected](12),d0
866 008c 2E00 movel d0,d7
867 008e 4C46 7807 divsl d6,d7
868 0092 2B47 FFDC movel d7,[email protected](-36)

puis nettoyage:

// Delta.L.u=(Edge2->L.u – Edge1->L.u)/dx;
movel [email protected](12),d0
subl [email protected](12),d0
movel d0,d7
divsl d6,d7
movel d7,[email protected](-36)

puis optimisation manuelle:

// Delta.L.u=(Edge2->L.u – Edge1->L.u)/dx;
movel [email protected](12),d0
subl [email protected](12),d0
divsl d6,d0
movel d0,[email protected](-36)

puis asm pur:

movel [email protected](12),d0
subl [email protected](12),d0
divsl d6,d0
movel d0,[email protected](-36)

  • Cette réponse a été modifiée le il y a 6 mois et 1 semaine par  thellier.

#306545 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 17:31


__sam__

Participant
  • Messages : 1484

Ah merci cool, ca me manquait les sorties mixtes. Moi je faisais le bon vieux -S qui sort de ASM brut, mais comme mes méthodes sont courtes et ne font qu’une chose je m’en sortais avec ca. Il faut dire que le code C est l’asm 68k sont très voisins, donc on y retrouve ses petits.

Avec la vamp en revanche, et en particulier le superscalaire, le code ASM optimisé a tendence à mélanger plusieurs instructions sources séparées dans la même région asm. Je veux dire par là que la construction « INST1; INST2; » du C ne se traduit plus comme « ASM1; ASM2; » (assemblage linéaire) où ASM1 correspond aux instructions C de INST1 (idem avec les ASM2/INST2), mais on a en asm un mix de ASM1 et ASM2 interpénétrés: La fin de ASM1 déborde sur le début de ASM2. C’est assez pénible à relire, et surtout à écrire.

Je rêverais d’un outil qui prenne de l’ASM « linéaire » où ASM1 et ASM2 sont bien séparés et fasse le mélange ASM1/ASM2 automatiquement pour tirer parti des deux pipelines 5 étages. Ca s’appelle un (re-)scheduler d’instructions et ca n’existe pas à ma connaissance pour amiga. Du coup il faut faire ca à ma main, et c’est long et casse-gueule (surtout si on doit modifier l’algo par la suite), mais ca vaut le coup. Flype a testé en X11 et dépasse les 20fps à présent avec le monkey suzanne (500 points, 1500 facettes.)

Samuel.

Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne
A1200 (Blizzard-IV/fpu/64Mo) - A500 (+ 1Mo PPS) - A500 Vampire V2+
(mais aussi TO8 - TO8D - TO9. Groupe PULS.)
Pub >>Teo 1.8.4<<

#306560 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 18:52


huggyone76

Participant
  • Messages : 1977

Version du 13/10/18, Vampire 600 V2, Superscalar ON, Core x11

Ancienne version/nouvelle version

* vbcc – 15.551 fps / 17.118 fps

* gcc 2.95.3 – 15.637 fps / 16.987 fps

* gcc 3.2.2 – 15.917 fps / 18.239 fps

* gcc 6.3.1b – 17.306 fps / 18.957 fps

* gcc 6.4.1b – 17.801 fps / 18.222 fps

* sasc –  12.655 fps / 16.924 fps

Pas mal, pas mal… 🙂 Sur sasc, le bond est impressionnant ! Et effectivement, ça nivelle un peu le rendu 😉

A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+ACA1230+indivision MK2 - A1200+BPPC/060+BVision - A2000 + ROMs 3.1 + IDE4 - Mac Mini 1.42 sous MOS - Just CPC 128k - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 1Mo + CF - Sharp X68000 CZ-611C 4Mo + CF + ext. MIDI

#306564 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 19:56


__sam__

Participant
  • Messages : 1484

Tiens c’erst un chouille en dessous de Flype. Il était peut-être en X12, je ne sais plus. Sinon si 19-20fps c’est trop rapide, il y a le mode « -model redrat » et là les perfs s’effondrent complètement du au trop grand nombre de faces qui s’affichent effectivement. Au fait je ne sais plus si je l’ai indiqué, mais les flèches gauche/droite permettent de tourner autour de l’objet, et haut/bas de s’en approcher ou de s’en éloigner.

Samuel.

Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne
A1200 (Blizzard-IV/fpu/64Mo) - A500 (+ 1Mo PPS) - A500 Vampire V2+
(mais aussi TO8 - TO8D - TO9. Groupe PULS.)
Pub >>Teo 1.8.4<<

#306571 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 21:03


flype

Participant
  • Messages : 1097

@__sam__

C’est sans doute parce que je lance un script (avec execute) en utilisant l’argument -size :

>monkey.gcc-4.6.1b -size 320 200 -benchmark

Ce qui donne en gros avec gcc 6.x
20 fps en x11
22 fps en x12

A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

#306572 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 14/03/2018 à 21:28


huggyone76

Participant
  • Messages : 1977

Je lance un « execute run-benchmark.txt » pour qu’on ait des résultats comparables. 🙂

Et oui, Sam, tu avais indiqué pour tourner autour et le zoom.

A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+ACA1230+indivision MK2 - A1200+BPPC/060+BVision - A2000 + ROMs 3.1 + IDE4 - Mac Mini 1.42 sous MOS - Just CPC 128k - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 1Mo + CF - Sharp X68000 CZ-611C 4Mo + CF + ext. MIDI

#306578 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 15/03/2018 à 00:50


__sam__

Participant
  • Messages : 1484

306505 wrote:

Ca n’est qu’un 1er jet en ASM, je pense qu’on peut faire plus rapide car la grosse formule appliquée en chaque point: (…) peut être optimisée en passant par des delta pour réduire les 9 multiplications et 6 additions à seulement 3 additions.

Voila qui est fait: >>ici<<

La routine principale se réduit à quelques additions selement


.1
		fcmp.s	(a1)+,fp3
		fble.b	.2
		fmove.s	fp3,-4(a1)
		fmove.l	fp5,d7
		fmove.l	fp4,(a2)
		move.w	d7,2(a2)
		fmove.l	fp6,d7
		move.b	d7,3(a2)
.2
		fadd.s	d0,fp0
		fblt.b	.9
		fadd.s	d1,fp1
		fblt.b	.9
		fadd.s	d2,fp2
		fblt.b	.9
		
		fadd.s	d3,fp3
		addq.l	#4,a2
		
		fadd.s	d4,fp4
		fadd.s	d5,fp5
		fadd.s	d6,fp6
		bra		.1
		
.9
		fmovem	(sp)+,fp2-fp7
		movem.l	(sp)+,d2-d7/a2
		rts

Samuel.

Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne
A1200 (Blizzard-IV/fpu/64Mo) - A500 (+ 1Mo PPS) - A500 Vampire V2+
(mais aussi TO8 - TO8D - TO9. Groupe PULS.)
Pub >>Teo 1.8.4<<

#306584 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 15/03/2018 à 07:20


flype

Participant
  • Messages : 1097

Bravo @__Sam__

>monkey.gcc-6.4.1b -size 320 200 -benchmark

25.371 fps en x12 – avec des pointes à 31.4 fps.

A600 Rev 1.5 + Vampire 600 V2-128.
A1200 Rev 1D4 + Blizzard 1230 III/50Mhz + 68882 + 256MB @ 50ns.

#306613 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 15/03/2018 à 14:41


__sam__

Participant
  • Messages : 1484

25fps, Miam miam! J’ai hâte de pouvoir manger des fichiers 3D standards.

Samuel.

Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne
A1200 (Blizzard-IV/fpu/64Mo) - A500 (+ 1Mo PPS) - A500 Vampire V2+
(mais aussi TO8 - TO8D - TO9. Groupe PULS.)
Pub >>Teo 1.8.4<<

#306617 Répondre à : Eval vitesse d’un programme sur differents amigas
 le 15/03/2018 à 17:51


huggyone76

Participant
  • Messages : 1977

Version du 15/10/18, Vampire 600 V2, Superscalar ON, Core x11

Ancienne version/nouvelle version

* vbcc – 17.118 fps / 18.197 fps

* gcc 2.95.3 – 16.987 fps / 19.126 fps

* gcc 3.2.2 – 18.239 fps / 20.141 fps

* gcc 6.3.1b – 18.957 fps / 21.171 fps

* gcc 6.4.1b – 18.222 fps / 21.191 fps

* sasc –  16.924 fps / 17.727 fps

22.164 fps avec la même commande que Flype

A500+ACA500 - A600+Vampire 2+indivision ECS - A1200+ACA1230+indivision MK2 - A1200+BPPC/060+BVision - A2000 + ROMs 3.1 + IDE4 - Mac Mini 1.42 sous MOS - Just CPC 128k - Atari STE 4Mo/CosmosEx - Atari Falcon CT60/SuperVidel 🙂
C64C + 1541-II + Lecteur K7 + SD - Sharp X68000 CZ-601C 1Mo + CF - Sharp X68000 CZ-611C 4Mo + CF + ext. MIDI


15 sujets de 76 à 90 (sur un total de 101)
1 5 6 7

Vous devez être connecté pour répondre à ce sujet.

                   
Derniers sujetsFraîcheur
 · [MINIMIG] PB écriture sur carte SD il y a 8 heures et 52 minutes
 · [distrib] AmiByss artisanal il y a 9 heures et 34 minutes
 · [demo] Bad apple sur 8088 ;) il y a 9 heures et 40 minutes
 · PSX classic avec 20 jeux il y a 9 heures et 49 minutes
 · (DONNE) 1083s HS il y a 10 heures et 33 minutes
 · probleme de son Amiga 600 il y a 10 heures et 44 minutes
 · [RECHERCHE] Workbench 1.3 pour A500 + jeux il y a 12 heures et 25 minutes
 · j'ai tué mon 1200 il y a 15 heures et 26 minutes
 · Mod player en JavaScript il y a 17 heures et 59 minutes
 · [RECHERCHE] carte mère ou Amiga 2000 rev 6 il y a 19 heures et 48 minutes





RechercheFraîcheur


Copyright © 2004-2018 Amiga Impact. Tous droits réservés. Les marques citées sont déposées par leurs propriétaires respectifs.
Conditions d'Utilisation, Politique de Confidentialité et Information sur les cookies.


Fil RSS WordPressNicolas Gressard, Conseil et développement informatique

Do NOT follow this link or you will be banned from the site!