Je veux mesurer la durée d’éxécution d’un bout de code (un traitment d’image écrit avec brookGPU.
Ceci pour le mettre en face d’un même traitment sur le CPU.
Le timerZen à prériode courte permet de mesurer des temps d’éxécution d’un bout de code s’éxécutant en moins de 54ms avec une précision de 10µs sur les bécanes de l’époque (il parle d’un 8253 :P) dans ce bouquin
Ok ça date un peu et je sais pas si c’est toujours bien utilisable mais ça me parraissais pas mal.
Je recopie une partie du bouquin ici (oui je suis motivé :P)
[quote name=‹ Abrash ›]Utiliser le Timer Zen à partir de C
Le Timer Zen peut être utilisé pour mesurer les performances d’un code programmé en C, mais pas directement.
Comme nous l’avons vu précédemment, le timer est conçu pour être appelé depuis un langage Assembleur. Quelques modifications relativement mineures sont requises avant que les routines ZTimerOn (début de la mesure), ZTimerOff (fin de la mesure) et ZTimerReport (affichage des résultats) soient appelées depuis C. Il existe deux cas distincts pour le modèle small et le modèle large. Je vais commencer par le plus simple, le modèle mémoire small.
Modifier le Timer Zen pour lier un modèle mémoire small à un programme C nécessite de passer par les étapes suivantes : Changez ZTimerOn en _ZTimerOn, ZTimerOff en _ZTimerOff,changez ZTimerReport en _ZTimerReport, changez Code en _TEXT[…] Ces modifications convertissent le code pour utiliser des noms de label externe du style C et le segment de code du modèle mémoire small du C. En C++, utilisez « C » comme ceci :
extern « C » ZTimerOn(void);
En déclarant extern les routines du timer, aucun nom ne sera écorché et l’éditeur de liens pourra trouver les noms de routines C.
C’est tout. Une fois ces modifications faites, vous pourrez utiliser le TimerZen depuis C, par exemple avec :
ZTimerOn();
for(i=0;i<100;i++)
x+=i;
ZTimerOff();
ZTimerReport();
(Je parle ici de Timer de précision. Le Timer à période longue nécessite les mêmes modifications, mais à des lignes différentes)[/quote]
J’ai modifié les lignes du listing ASM (fichier asm) mais je comprend pas son histoire. Car on en fait quoi a la fin du listing ASM ? On le recompile à part ? On le link comme un bourrin à son code appelant comme si la partie de code appelée le sera comme si on faisait de l’asm en ligne ?
Je vois pas trop comment mettre en place ce bazard, je vais étudier tes dires Moktar.
et allez faire un dodo aussi