Aller au contenu

PCI Mark


sky99

Messages recommandés

  • Réponses 137
  • Créé
  • Dernière réponse

Dès qu'on utilise une boucle, on ne peut pas utiliser l'HT, puisque le résultats du tour précédent est l'entrée du suivant...

Ou alors, passge en ASM et on se sert du deuxième CPU pour faire les appels, et que le premier veut les données elles sont déjà dans le L1 grâce à l'appel antérieur du deuxième...

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bon ben voilà je suis de retour de vacances, donc je vais pouvoir rechercher...

une distrib linux sur disquette et va falloir y mettre gcc, et les .c et .h ...

Bon je retrouve mon adsl lundi je pourrais plus chercher...

Neo_13 > pour le HT, il faudrais utiliser plusieurs threads, je l'ai déjà fait, mais il faut passer en c++ (avec ma métode à l'arrache avec visual studio) mais concentrons nous déjà sur le début, une fois qu'on a l'algo et gcc ce sera facile de passer à l'HT ...

Lien vers le commentaire
Partager sur d’autres sites

euh calculer les decimales de pi qui sont a une place première :keskidit: (2eme, 3eme, 5,7,9,11,13,17,19,...) et verifier si la somme de cent prenière decimale ainsi recherchées appartient à la suite de Fibionnacci... :pleure: cela nous fait donc 4 processus simultanés à mettre en oeuvre :non:

Lien vers le commentaire
Partager sur d’autres sites

bon pour tout ceux qui n'ont pas fait suffisamment de math :

Toutes les fonctions que vous connaissez sont développables en série entière, ce qui veut dire que quoi que vous mettiez dans votre algo C, le compilateur va le transformer en somme de produit de puissance de la variable par un réel

Donc, qu'on calcul pi ou des horreurs de 50 km de long, pour le cpu, c'est du pareil au moins...

Par contre, avec la suite de fibonacci, pourquoi pas... mais uniquement pour vérifier que c'est juste, la calcul... ou alors calculer sur 10^6 Pi puis sur 10^6 fibonacci puis comparer... pour quoi pas

Lien vers le commentaire
Partager sur d’autres sites

il faudrait aussi optimiser dans le code la gestion des ressources des caches 1 2 et 3 ... (enfin j'ai entendu parler d'un trois chez intel me semble t il mais j'ai peut être mal lu).

Puis il faudrait aussi verifier que le cache lvl2 soit correctement installer sous windows avant de faire le bench!! Sur les athlons xp, windows xp ne detecte pas le cache lvl2 et le met a 0 !!

Lien vers le commentaire
Partager sur d’autres sites

à priori, le processeur s'occupe tout seul des caches...il n'y a pas besoin de s'en occuper... quand le processeur a besoin de données, il les mets dans les caches...

Sinon, c'est quoi cette histoire de cache lvl2 non détecté ?

Un ptit CPU-Z et vous verrez tout !!!

sur mon duron par exemple, il y a 64Ko de données et 64 autres d'instructions en lvl1 et 64 de données en lvl2 (256 sur les XP et 512 sur les bartons)

Pour utiliser les caches à fond, il faut faire passer une grande quantité de données par le processeur (et d'opération)...et le pro se débrouille tout seul...

Lien vers le commentaire
Partager sur d’autres sites

mon code utilise uniquement les registre pour calculer...

et si tu rajoute encore un étage de for... i++, tu feras avec mon code plusieurs heures... c'est juste une question de nombre de tour de boucles puisque dans tous les cas ce ne sont que des boucles

a+bx^1+cx^2....+zx^n avec n entier

Lien vers le commentaire
Partager sur d’autres sites

mon code utilise uniquement les registre pour calculer...

et si tu rajoute encore un étage de for... i++, tu feras avec mon code plusieurs heures... c'est juste une question de nombre de tour de boucles puisque dans tous les cas ce ne sont que des boucles

a+bx^1+cx^2....+zx^n avec n entier

c'est vrai....

mais alors ??? qu'est ce qu'on fait ???? :inpactforce::yes::yes::yes:

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

si vous voulez des fonctions "simples" non développables en séries entières faites signe, ca se retrouve dans mes cours de math spé ça...

sauf que je vois pas pourquoi le proco ferait des DSE de fonctions.... deja parce que les "fonctions" dont on parle, le cpu, il les voit pas...

mais a mon avis le secret de l'algo ultime se trouve bel et bien dans les grands nombres premiers et dans la suite de fibonacci (et consoeurs)

oubliez pas non plus qu'il faut pour que ce soit fiable que ça n'utilise STRICTEMENT RIEN D'AUTRE que le cpu... m'enfin ça je pense que c'est pas la peine de vous le dire...

(arg 3h45 et tj debout.... aïe aïe le partiel a 8h.... :cheat: )

edit: ah non c pas le proco qui fait des DSE c'est le compilo désolé javé po vu :yes:

cela dit je vois pas du tout comment ça peut être systématique. c'est super dur de développer une fonction, surtout si on sait pas a priori si elle est développable ou non...

(pff jsuis vraiment qu'un sale matheux de m***** z'avez vu comme je m'enflamme dès qu'on parle de séries entières.... :yes::yes: )

Lien vers le commentaire
Partager sur d’autres sites

si vous voulez des fonctions "simples" non développables en séries entières faites signe, ca se retrouve dans mes cours de math spé ça...

sauf que je vois pas pourquoi le proco ferait des DSE de fonctions.... deja parce que les "fonctions" dont on parle, le cpu, il les voit pas...

mais a mon avis le secret de l'algo ultime se trouve bel et bien dans les grands nombres premiers et dans la suite de fibonacci (et consoeurs)

oubliez pas non plus qu'il faut pour que ce soit fiable que ça n'utilise STRICTEMENT RIEN D'AUTRE que le cpu... m'enfin ça je pense que c'est pas la peine de vous le dire...

(arg 3h45 et tj debout.... aïe aïe le partiel a 8h....  :yes: )

edit: ah non c pas le proco qui fait des DSE c'est le compilo désolé javé po vu :yes:

cela dit je vois pas du tout comment ça peut être systématique. c'est super dur de développer une fonction, surtout si on sait pas a priori si elle est développable ou non...

(pff jsuis vraiment qu'un sale matheux de m***** z'avez vu comme je m'enflamme dès qu'on parle de séries entières.... :yes:  :yes: )

Moi aussi j'ai fait Spé... :cheat:

Mais le compilo en sait rien... il siat même pas ce que c'est...

On lui a juste dit pour faire un cos, tu fais comme ça...

Les intervalles de convergence, c'est pas son problème, d'autant qu'il travaille sur des nombres et non sur des fonctions...

J'essaye de vous sortir ce soir l'asm d'un cos

Lien vers le commentaire
Partager sur d’autres sites

Bon beh, euh le moment est venu de battre ma coulpe

Dans l'archi IA32, dans le FPU, il y a une fonction fcos qui retourne le cos d'un float entre -2^63 et 2^63...

donc j'ai dit pas mal de conneries... Me suis tapé le guide IA32 pour ça... 596 pages...

Lien vers le commentaire
Partager sur d’autres sites

/*Test pour avoir l'ASM de cos(x)*/

#include<stdio.h>
#include<math.h>

main()
{
int x;
float c;

scanf("%d",&x);
c=cos(x);

printf("%f",c);
}

Donne avec ICC 8 : (GCC ne faisait pas le linkage)

# -- Machine type IA32
# mark_description "Intel(R) C++ Compiler for 32-bit applications, Version 8.0   Build 20031016Z %s";
# mark_description "-S";
.ident "Intel(R) C++ Compiler for 32-bit applications, Version 8.0   Build 20031016Z %s"
.ident "-S"
.file "cos.c"
.text
.data
.align 4
.bss
.align 4
.section .rodata, "a"
.align 4
.section .data1, "wa"
.align 4
.section .text1, "wa"
.align 4
.section .rodata, "a"
.align 4
__STRING.1:
.byte 37	# s8
.byte 102	# s8
.byte 0	# s8
.type	__STRING.1,@object
.size	__STRING.1,3
.space 1	# pad
__STRING.0:
.byte 37	# s8
.byte 100	# s8
.byte 0	# s8
.type	__STRING.0,@object
.size	__STRING.0,3
.data
.text
# -- Begin  main
# mark_begin;
      .align    4,0x90
.globl main
main:
..B1.1:                         # Preds ..B1.0
       pushl     %ebp                                          #7.1
       movl      %esp, %ebp                                    #7.1
       subl      $3, %esp                                      #7.1
       andl      $-8, %esp                                     #7.1
       addl      $4, %esp                                      #7.1
       subl      $64, %esp                                     #7.1
       call      __intel_proc_init                             #7.1
       lea       16(%esp), %eax                                #11.13
       pushl     %eax                                          #11.13
       push      $__STRING.0                                   #11.13
       call      scanf                                         #11.2
                               # LOE ebx esi edi
..B1.6:                         # Preds ..B1.1
       addl      $8, %esp                                      #11.2
                               # LOE ebx esi edi
..B1.2:                         # Preds ..B1.6
       fildl     16(%esp)                                      #12.8
       fcos                                                    #12.4
       fstpl     4(%esp)                                       #14.14
       movl      $__STRING.1, (%esp)                           #14.9
       call      printf                                        #14.2
                               # LOE ebx esi edi
..B1.3:                         # Preds ..B1.2
       xorl      %eax, %eax                                    #15.1
       addl      $64, %esp                                     #15.1
       movl      %ebp, %esp                                    #15.1
       popl      %ebp                                          #15.1
       ret                                                     #15.1
       .align    4,0x90
                               # LOE
# mark_end;
.type	main,@function
.size	main,.-main
.data
# -- End  main
.data
# End

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...