Backup

mercredi 16 avril 2014Par : CyrIng

Bonjour,

Vous parcourez la copie de blog.cyring.fr

CyrIng













Topologie du Processor Core

mercredi 12 mars 2014Par : CyrIng

x2topology

Le programme x2topology énumère la topologie du processeur Core.
La collecte des informations relatives à chaque coeur s’appuie sur des appels itératifs à l’instruction CPUID.

Illustrations

  • Topologie avec l’Hyperthreading et 4 x Coeurs activés.
    topology-with-htt-4xcores
  • Topologie avec l’Hyperthreading désactivé et 4 x Coeurs activés.
    topology-without-htt-4xcores
  • Topologie avec l’Hyperthreading et 2 x Coeurs activés.
    topology-with-htt-2xcores
  • Topologie avec l’Hyperthreading désactivé et 1 seul Coeur activé.
    topology-without-htt-1xcore

Mise en oeuvre

Les instructions pour la compilation du code source et l’exécution du programme sont détaillées dans le wiki:

  1. Télécharger le code source x2topology.c
  2. Compiler la source avec gcc pour Linux
  3. Exécuter le programme
    ./x2topology

    via le script Shell, sur l’ensemble des coeurs,

    ./x2topology.sh

x2topology_np

x2topology_np.c est une nouvelle version du programme qui effectue une affinité des Coeurs au moyen d’un appel à la fonction pthread_setaffinity_np()

topology_np-with-htt-4xcores

L’algorithme est le suivant:

  1. Obtenir le nombre maximum de Coeurs au sein du Processeur dans le registre EAX, position des bits [31-26], en retour de la fonction 04h de l’instruction CPUID. Ce nombre sera désigné ThreadCount.
  2. Allouer, à la dimension ThreadCount, un tableau de la structure des données.
  3. Boucler de 0 (zéro) à ThreadCount (exclut), en créant une fonction thread au moyen de pthread_create().
    Les caractéristiques de cette fonction seront passées en argument, en particulier l’indice du tableau sur lequel la fonction portera son traitement.

    1. Au sein de la fonction thread, commencer par un changement d’affinité sur le numéro de CPU qui est recupéré des arguments d’appel.
    2. Si l’affinité est validée, c.à.d. pthread_setaffinity_np() retourne 0, alors invoquer la fonction 0Bh de CPUID sur 2 niveaux :
      1. au niveau Thread du Processeur, valeur 1 dans le registre ECX
      2. au niveau Core, valeur 2 dans ECX
      • la collecte est terminée, dès lors que les registres EAX et EBX ont la valeur 0 en sortie de la fonction 0Bh du CPUID.
      • Pour tout niveau validé (Thread et Core), ranger dans le tableau, à l’indice du numéro CPU, les valeurs de Topologie :
        1. l’identifiant étendu APIC
        2. l’identifiant APIC du Core
        3. l’identifiant APIC du Thread
  4. Boucler à nouveau de 0 à ThreadCount pour y attendre la fin de traitement des fonctions thread en appelant pthread_join()




Formule de calcul des ratios Turbo

mardi 18 février 2014Par : CyrIng

Dans le programme xfreq.c , la formule employée pour calculer les ratios du processeur Intel Core i7 est la suivante :

Ratio = TR × { d(URC) ÷ d(TSC) } × OR

où :

TR est le TurboRatio = d(UCC) ÷ d(URC)
OR est l'OperatingRatio = MSR(MSR_PLATFORM_INFO[15-8])
UCC est Unhalted Core Cycles = MSR(IA32_FIXED_CTR1)
URC est Unhalted Reference Cycles = MSR(IA32_FIXED_CTR2)
TSC est le Time Stamp Counter = MSR(IA32_TIME_STAMP_COUNTER)

La fonction Delta d(N) calculant la différence de la valeur N échantillonnée à l'instant T(t) et à l'instant T(t-1)

illustration :
                                                                          (t-1)           (t)
Cycles:  .......... T0 .......... T1 .......... T2 .......... T3 .......... T4 .......... T5 .......... T6
OR    :  .......... 12 .......... 12 .......... 20 .......... 12 .......... 12 .......... 20 .......... 12
TSC   :  ........ 2660 ........ 5320 ........ 7980 ....... 10640 ....... 13300 ....... 15960 ......  18620
                                                                         [ d(TSC) = 2660   ]
URC   :  ......... 200 .... "halted" ......... 201 ......... 202 ....... 2862 ......... 5522 ..... "halted"
                                                                         [ d(URC) = 2660   ]
UCC   :  ......... 100 .... "halted" .... "halted" .... "halted" ....... 2760 ......... 4090 ..... "halted"
                                                                         [ d(UCC) = 1330   ]

Le Ratio à l'instant (t) est :

Ratio = (2660 ÷ 2660) × (1330 ÷ 2660) × 20
Ratio = 10.0

Pour une horloge BCLK réglée à 133 MHz, la fréquence du Core Processeur est déterminée par :

Fréq = 133 x 10
Fréq = 1330 Mhz

CyrIng





Un Live CD pour XFreq

lundi 17 février 2014Par : CyrIng

XFreq est livré avec son Live CD !

archlinux-xfreq.iso 510Mo à télécharger puis à graver sur un CD ou une clé USB.

Redémarrez l’ordinateur en choisissant le CD ou la clé USB comme disque d’amorce, puis sélectionnez votre code langue, parmi anglais, français, allemand ou espagnol.
Vous êtes alors automatiquement conduits jusqu’au Terminal X.

ArchLinux-XFreq_1ArchLinux-XFreq_2

Entrer les commandes suivantes :

  1. install-xfreq.sh : pour installer XFreq depuis son archive.
  2. xfreq : pour exécuter XFreq (avec l’argument -D 1 pour un mode fenêtre MDI)
  3. update-xfreq.sh : pour télécharger la dernière version qui sera aussitôt compilée !

Nb. Le NMI Watchdog est désactivé car il interfère XFreq dans sa lecture des compteurs :

echo "0" > /proc/sys/kernel/nmi_watchdog
cat /proc/sys/kernel/nmi_watchdog
0

Si vous souhaitez contribuer, le Live CD est préparé pour le développement de XFreq, il contient :

  • Code::Blocks 13.12
  • The Data display Debugger 3.3.12
  • gdb 7.7
  • gcc 4.8.2
  • Linux kernel 3.13.5 (et sa documentation)

ArchLinux-XFreq_3

Le repertoire de travail de XFreq se structure comme suit :

src/XFreq/xfreq.c [source code]
src/XFreq/xfreq.h [entête]
src/XFreq/Makefile [compilation en ligne de commande]
src/XFreq/README [historique du projet]
src/XFreq/XFreq.cbp [projet codeblocks]
src/XFreq/bin/xfreq [le programme exécutable]

Merci de nous faire part du déroulement du Live CD XFreq en mentionnant dans votre commentaire les caractéristiques de votre système (processeur Intel, Timings RAM, réglages BIOS)

 

— Edition —
Des outils de performance sont présents :

  • Phoronix Test Suite 4.8.6
  • Linpack (avec son code source)
  • cpuburn 1.4
  • 7-Zip 9.2 (et son Benchmark intégré 7zFM)
  • X11 Perf 1.5

Au clavier, la touche [Windows] est associée au gestionnaire de fenêtrage dwm et les combinaisons suivantes :

  • [Win] + [R] pour lancer un Terminal X
  • [Win] + [Menu] pour dérouler la liste des programmes
  • [Win] + bouton gauche de la souris déplace la fenêtre
  • [Win] + bouton droit pour redimensionner
  • [Win] + [Ctrl] + [F4] termine dwm et retourne à la console (entrer poweroff pour eteindre l’ordinateur)

Faîtes une capture d’écran, enregistrez une vidéo de vos résultats de performance avec scrot et recordmydesktop.

filezilla et firefox inclus.

 

CyrIng





XFreq 0.17-1

dimanche 16 février 2014Par : CyrIng

Version 0.17-1

  • Amélioration apportée au calcul des coefficients Turbo.
  • Gestion des icônes et buttons.
  • Ajout d’un Widget Dump de registres MSR.

xfreq_17-1