Le surfréquençage, ou overclocking en anglais, également nommé surcadencement (puisqu'on parle de machine cadencée à x, y GHz) est un mot du jargon informatique.
Cette pratique vise à augmenter la fréquence (Hz) d'un CPU. C'est une manipulation complexe et potentiellement dangereuse car elle entraîne une hausse de dégagement thermique (La thermique est la science qui traite de la production d'énergie, de l'utilisation de...) du CPU, réduisant potentiellement sa durée de vie (La vie est le nom donné :) (elle est divisée par 2 quand la température (La température est une grandeur physique mesurée à l'aide d'un thermomètre et...) augmente de 10°C) , en l'absence des précautions suivantes :
Le principe est simplement de faire fonctionner des composants électroniques (notamment microprocesseurs ou cartes graphiques) à une fréquence (En physique, la fréquence désigne en général la mesure du nombre de fois qu'un...) d'horloge supérieure à celle pour laquelle ils ont été conçus et/ou validés.
Le but est d'obtenir des performances supérieures à moindre coût en poussant à ses limites supérieures un composant censé être de bas de gamme. On s'y livrera d'autant plus volontiers qu'on s'estime prêt à changer de machine si l'ancienne ne peut être amenée aux performances souhaitées et qu'on la "grille ( Un grille-pain est un petit appareil électroménager. Une grille écran est un élément du...)" par fausse manipulation ou vieillissement (La notion de vieillissement décrit une ou plusieurs modifications fonctionnelles diminuant...) prématuré du microprocesseur (Un microprocesseur est un processeur dont les composants ont été suffisamment...).
Cette pratique est très répandue parmi les utilisateurs avertis d'ordinateurs. Elle concerne en général le microprocesseur central (CPU) et/ou le processeur graphique (Un processeur graphique (en anglais GPU pour Graphics Processing Unit) est un microprocesseur...).
Cette pratique comporte des risques d'instabilité, de destruction, et vous fera perdre votre garantie sauf si elle est intégrée dans la conception du micro-ordinateur par le fabricant, par exemple la société Hellskey.
Un surcadencement mal réalisé peut altérer le fonctionnement du matériel de manière plus ou moins grave, allant d'une simple surchauffe (La surchauffe est une opération physique qui a lieu dans un moteur à vapeur.) du composant surcadencé (il perd alors en stabilité) à la destruction d'un ou plusieurs éléments de la configuration. Les constructeurs configurent toujours leurs ordinateurs à des fréquences moindres que les fréquences limites (afin de se laisser une marge de sécurité évitant un trop grand nombre (La notion de nombre en linguistique est traitée à l’article « Nombre...) de retours sous garantie), ce qui permet une marge de surcadencement.
Pour pallier l'augmentation de température provenant des composants surcadencés, l'utilisation de système de caloducs et/ou de radiateurs à eau (L’eau est un composé chimique ubiquitaire sur la Terre, essentiel pour tous les...) (watercooling) est préconisée. Des composants à effet Peltier (L'effet Peltier (aussi appelé effet thermoélectrique) est un phénomène physique de déplacement...), voir une réfrigération (La réfrigération est le procédé permettant d'obtenir et de maintenir un...) sont utilisés dans des cas plus rares.
Le surcadencement ne nuit pas à la stabilité du processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de...) si l'on reste dans des fréquences supportables par les composants. Il est souvent nécessaire de modifier légèrement les tensions de fonctionnement pour aider le processeur à " tenir " la nouvelle cadence sans instabilité.
Le bruit (Dans son sens courant, le mot de bruit se rapproche de la signification principale du mot son....) des ventilateurs devenant peu acceptable pour les applications média (On nomme média un moyen impersonnel de diffusion d'informations (comme la presse, la radio, la...), on recourt parfois à l'ajustement inverse (En mathématiques, l'inverse d'un élément x d'un ensemble muni d'une loi de...) (le sous-cadencement ou underclocking) afin de diminuer les besoins en dissipation thermique, et donc permettre le sousvoltage du ventilateur de refroidissement, ou le passage en refroississement passif, pour diminuer le bruit. Dans les cas les plus extrêmes, de l'azote (L'azote est un élément chimique de la famille des pnictogènes, de symbole N et de...) liquide (La phase liquide est un état de la matière. Sous cette forme, la matière est...) peut même être utilisé.
Cette technologie (Le mot technologie possède deux acceptions de fait :) répond à la demande des micro-ordinateurs modernes qui doivent faire face à des programmes de plus en plus gourmands. Elle cherche à obtenir la puissance (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) maximale à partir d'une configuration existante. On peut l'insérer dans une recherche (La recherche scientifique désigne en premier lieu l’ensemble des actions entreprises en vue...) plus générale de la performance des systèmes informatiques. Le H.P.E (Hellskey Power Engine) de Hellskey.com est probablement la première société à avoir conçu des ordinateurs grand public intégrant cette technologie au niveau CPU et GPU. Les démonstrations sont inspirées du site 1 (en particulier du cours eecc551-winter2005 de la faculté Rochester Institute of Technology. )
La plupart des ordinateurs fonctionnent de manière synchronisée en utilisant un signal ( Termes généraux Un signal est un message simplifié et généralement codé. Il existe...) d'horloge CPU à fréquence constante (la fréquence d'horloge, exprimée en hertz (Le hertz (symbole : Hz) est l’unité dérivée de fréquence du...), égale l'inverse de la période - durée d'un cycle d'horloge - exprimée en secondes).
Une instruction d'ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant...) est un ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection...) d'opérations élémentaires ou micro-instructions dont le nombre et la complexité (La complexité est une notion utilisée en philosophie, épistémologie (par...) dépendent de l'instruction, de l'organisation (Une organisation est) et de l'implémentation (Le mot implantation peut avoir plusieurs significations :) exacte dans le CPU. Une micro-opération est une opération matérielle élémentaire qui peut être exécutée en un cycle d'horloge. Cela correspond à une micro-instruction dans un CPU micro-programmé. Par exemple, les opérations sur les registres, les décalages, les chargements, les incréments, les opérations de l'unité arithmétique (L'arithmétique est une branche des mathématiques qui comprend la partie de la...) et logique : addition (L'addition est une opération élémentaire, permettant notamment de décrire la...) , soustraction (La soustraction est l'une des opérations basiques de l'arithmétique. La soustraction...), etc.
Cependant une instruction machine peut prendre un ou plusieurs cycles pour être entièrement traitée ; c'est le nombre de cycles par instruction ou, en anglais, cycles per instruction (CPI).
Une instruction-machine = 1 ou N micro instructions = 1 ou N CPI.
Voici un extrait de la documentation fournie aux développeurs de compilateurs ou de programmes. On peut y voir une liste d'instructions du micro-processeur AMD A64 avec leur nombre de cycles. AMD définit les latences de ces instructions comme suit : La colonne des latences fournit les attentes pour une exécution statique (Le mot statique peut désigner ou qualifier ce qui est relatif à l'absence de mouvement. Il peut...) de l'instruction. L'exécution statique est le nombre de cycles que prend le traitement séquentiel, jusqu'à son terme, des micro-opérations composant l'instruction. Ces valeurs sont à titre indicatif. On suppose que
Les deux instructions suivantes :
montrent l'étendue que peut avoir le CPI pour des instructions différentes. Cette documentation est disponible chez AMD sous le titre software optimization guide for AMD Athlon 64 and AMD Optron processors.
Pour un programme compilé donné qui s'exécute sur une machine donnée (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent...) A, les paramètres suivants sont fournis :
Comment peut-on mesurer la performance de cette machine exécutant ce programme ? Intuitivement, la machine est réputée rapide ou meilleure en exécutant ce programme si le temps total d'exécution est court. Cependant, l'inverse de ce temps total d'exécution est une mesure métrique possible ou mesurable : Performance (A) = 1 / temps total d'exécution de la machine A.
Comparer les performances en utilisant le temps total d'exécution
Pour comparer les performances de deux machines A et B exécutant un programme donné :
La machine A est n fois plus rapide que la machine B signifie :
n = Performance (A) / Performance (B) = (temps total d'exécution de la machine B) / (temps total d'exécution de la machine A).
Par exemple, pour un programme donné :
Performance (A) / Performance (B)= 10 / 1 = 10
La performance de la machine A est 10 fois la performance de la machine B quand elle exécute ce programme ; la machine A est dite 10 fois plus rapide que la machine B. Le temps total d'exécution. L'équation (En mathématiques, une équation est une égalité qui lie différentes quantités, généralement...) du CPU.
Un programme est une ensemble d'instructions,I, mesuré en instruction / programme. L'instruction moyenne (La moyenne est une mesure statistique caractérisant les éléments d'un ensemble de...) donne un nombre de cycle moyen par instruction mesuré en cycle / instruction ou CPI. Le CPU a une fréquence d'horloge fixe dont la période C = 1/ fréquence d'horloge mesuré en second / cycle.
Le temps d'exécution du CPU est le produit de ces trois paramètres tel que : Le Temp (Le temps est un concept développé par l'être humain pour appréhender le...) CPU = le nombre de seconde / programme = instruction / programme * en cycle / instruction * second / cycle
T = I * CPI *C
Par exemple, pour un programme s'exécutant sur une machine donnée (Dans les technologies de l'information, une donnée est une description élémentaire,...) avec les paramètres suivants : L'ensemble d'instruction du programme : 10 000 000 instructions un nombre de cycle moyen par instruction : 2.5 cycles / instruction Fréquence d'horloge du CPU : 200 Mhz. = 1/ 5* 10 e -9
Quel est le temps d'exécution pour ce programme ?
Le Temp CPU = instruction / programme * en cycle / instruction * seconde / cycle
Le Temp CPU = instruction / programme * en cycle / instruction * seconde / cycle = 10 00 00 * 2.5 * 5 * 10 e -9 = .125 secondes.
En conclusion, en augmentant la fréquence du CPU , donc en diminuant la durée d'un cycle, on diminue la durée d'exécution d'un programme. La fréquence n'est pas la puissance
L'overclocking (Surcadencement) suffit-il à garantir une machine plus rapide ? La fréquence est-elle la puissance ? Les facteurs affectant les performances du CPU sont les facteurs affectant le temps d'exécution.
Le Temp CPU = instruction / programme * en cycle / instruction * seconde / cycle ce qui donne T = I * CPI *C
Dans ce tableau (Tableau peut avoir plusieurs sens suivant le contexte employé :) , les facteurs affectant I,CPI,C
Performance comparée de deux CPU sur le même programme.
L'architecture du CPU est le facteur le plus important pour le CPI, il détermine le CPI. Une classe d'instructions est un ensemble d'instructions ayant le même CPI. La machine A possède le jeu d'instructions réparti dans ces trois classes tel que:
(Classe d'instruction,CPI)(A,1),(B,2),(C,3)
La machine B possède le jeu d'instruction réparti dans ces trois classes tel que :
(Classe d'instruction,CPI)(A,2),(B,2)(C,3)
La machine A possède des registres de 64 bits et la machine B de 32 bits. Les mêmes opérations utilisant la classe A nécessitent par exemple le double d'accès de la part de la machine B en utilisant sa propre classe A.
Après compilation c'est-à-dire après la traduction du programme à partir des jeux d'instructions respectifs des machines A et B on obtient par exemple: Programme compilé pour la machine A
(Classe d'instructions,nombre d'instructions) (A,5),(B,1),C,1)
Programme compilé pour la machine B
Classe d'instruction,nombre d'instructions) (A,5),(B,1),C,1)
Les compilateurs pour la machine A et B génèrent ici le même nombre d'instructions par classe. Il s'agit d'un P4 et d'un AMD 64 qui utilisent pour notre exemple les mêmes jeux d'instructions pour notre exemple (SSE2, MMX, SSE3, etc ).
Le nombre de cycles nécessaire à l'exécution du programme sur la machine A est N(A) qui vaut : 5*1 + 1*2+1*3 = 10 millions de cycles.
Le nombre de cycles nécessaire à l'exécution du programme sur la machine B est N(B) qui vaut : 5*2 + 1*2+1*3 = 15 millions de cycles.
N(A) \times C(A) = N(B) \times C(B) \frac { N(A)} {F(A)} = \frac {N(B)} { F(B)} donc F(B) =\frac { N(B) \times F(A)} { N(A)} . F(B) = 15/10 \times F(A)= 1.5 F(A).
La machine B sera aussi rapide que la machine A POUR CE PROGRAMME si sa fréquence d'horloge est 1.5 fois plus rapide.
L'overclocking améliore donc les performances d'une machine mais les choix architecturaux tel que le type de processeur ont plus d'impact. Le surfréquençage et la loi de G. Amdahl
Voici quelques exemples d'améliorations du traitement d'un programme par l'optimisation de l'affectation (En algorithmique (informatique), une affectation est une opération qui permet d'attribuer une...) des ressources, améliorer les accès mémoires, surfréquençage inutile du CPU sur un programme de gestion de bases de données. Nous utiliserons les recherches de G Amdahl en très simplifiées pour justifier notre démarche d'un point (Graphie) de vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et...) théorique. Référence bibliographique Gene Amdahl (Gene Myron Amdahl, né le 16 novembre 1922, américain d'origine norvégienne, est un architecte...), Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities, AFIPS Conference Proceedings, (50), pp 483-485, 1967. Il est un des pères des architectures des mainframes IBM (International Business Machines Corporation (IBM) est une société multinationale américaine...), Amdahl, Hitachi.
L'augmentation des performances possibles par une amélioration de la conception est limitée par l'utilisation totale de cette amélioration. Autrement dit, une amélioration non utilisée n'améliore pas les performances.
L'accélération (L'accélération désigne couramment une augmentation de la vitesse ; en physique,...) A de l'exécution d'un programme A est égale au Temps d'exécution sans A / Temps d'exécution avec A.
C'est la loi de Amdahl. Supposons que cette accélération A affecte une fraction F du temps d'exécution du programme par un facteur S et que le reste du temps ne soit pas affecté. Le temps d'exécution avec A =((1-f)+f/s) * temps d'exécution sans A
A = Temps d'exécution sans A / Temps d'exécution avec A A = Temps d'exécution sans A / (((1-f)+f/s) * temps d'exécution sans A) A =1 / ((1-f)+f/s)
Par exemple . Si nous avons les classes d'instructions suivantes pour un CPU donné.
(Classe d'instruction,CPI),(A,3)(B,4)(C,5)
La classe A représente des instructions de l'ALU qui n'accèdent pas à la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir...). La classe B représente des instructions d'accès à la mémoire, lecture écriture. La classe C représente des instructions de branchement.
Si nous avons pour chaque classe la fréquence d'utilisation des ces instructions dans un programme donné:
(Classe d'instruction,fréquence d'utilisation) (A,10%),(B,20%),(C,70%)
Chaque classe représente un % du temps d'exécution total de ce programme : Fréquence d'utilisation * CPI / somme (des fréquences de chaque classe * CPI de chaque classe) 0.3 + 0.8 + 3.5 = 4.6 est le CPI du programme de durée 100.
Classe d'instructions
Si notre accélération consiste à mettre le double canal sur la mémoire ,ce qui réduira par 2 les temps d'accès à la mémoire, nous avons le CPI de la classe B qui passe de 4 à 2, le facteur d'amélioration du CPI est de 2.: La fraction F affectée est :7.4 % ou .074 c'est la classe B La fraction non affecté est 6.52%+76% = 92.6% ou .926 ceux sont la classe A et C La loi de Amdahl nous donne : 1/((1-F) + F/S) soit 1/ (0.926+.074/2) = 1.04
Le double canal nous donne une amélioration de 5 % sur ce programme.
Un autre exemple d'application : si nous doublons le FSB (Le sigle FSB peut désigner :) d'un CPU pour un autre programme.
(Classe d'instruction,Temps d'exécution d'une instruction)(A,3),(B,4)(C,50)
La classe A représente des instructions de l'ALU qui n'accèdent pas à la mémoire. La classe B représente des instructions d'accès à la mémoire, lecture écriture. La classe C représente des instructions d'accès au disque dur (Un disque dur est une mémoire de masse magnétique utilisée principalement dans les...).
Si nous avons pour chaque classe la fréquence d'utilisation des ces instructions dans un programme donné:
(Classe d'instructions,fréquence d'utilisation) (A,10%),(B,20%),(C,70%)
Ceci est un exemple de programme d'accès à une base de données :
Chaque classe représente un % du temps d'exécution total de ce programme : Fréquence d'utilisation * CPI / somme (des fréquences de chaque classe * CPI de chaque classe) 0.3 + 0.8 + 35 = 36.1 le temps du programme.
Classe d'instruction
En doublant le FSB la fraction de programme impactée est 0.0083+0.022 =0.0303, le facteur S , d'amélioration est de 2. La fraction non impactée est 0.9697. La loi de Amdahl indique que l'amélioration est 1/(0.967+0.0303/2)=1.018
Pour ce programme d'accès à des base de données (En informatique, une base de données (Abr. : « BD » ou...) , doubler le FSB améliore les performance de 1%. C'est normal, les accès disque (Le mot disque est employé, aussi bien en géométrie que dans la vie courante, pour désigner une...) représente 096 % du temps d'exécution et il ne sont pas améliorés.
Si nous divisons par 2 la durée des accès au disque avec un RAID 0, disque rapide et grand cache par exemple nous avons un facteur S d'amélioration de 2. La fraction impactée est 0.9697, la fraction non impactée est 0.0083+0.022 =0.0303 La loi de Amdahl indique que l'amélioration est 1/(0.967/2+0.0303)=1.946
Pour ce programme d'accès à des base de données , diviser la durée des accès au disque par 2 améliore les performance de 94%.
En conclusion, le choix de l'optimisation dépend de ce que l'on veut améliorer. L'overclocking est bien adaptée au programmes gourmands en calculs comme les jeux. Mesurer le surfréquençage du C.P.U Mesurer le surfréquençage du C.P.U. avec SuperPi de l'université (Une université est un établissement d'enseignement supérieur dont l'objectif est la...) de Tokyo (voir superpipeline).
Présentation de SuperPi est supprimé
Les deux points cités par le professeur Yasumasa Kanada, la puissance de calcul et la taille de la mémoire sont souvent crucials pour le surfréquençage. Le surcadençage du CPU et la diminution des temps de latences sont des axes exploités. A ce jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la...), un ordinateur de bureau (Un ordinateur de bureau (de l'anglais desktop computer ; aussi appelé ordinateur fixe)...) dans le meilleur des cas met de 30 à 33 secondes sur le calcul de Pi à 1 M de décimales.
Voici un autre type d'évaluation des performances des ordinateurs :
L'Université de Cambridge (L'université de Cambridge est une université britannique connue dans le monde entier.) utilise d'autres types de mesure mais qui ressemblent à Superpi. http://www.hpcf.cam.ac.uk/history.html La mesure globale de la performance d'un Pc surcadencé avec 3DMark (3DMark est un logiciel de benchmarking pour PC, édité par Futuremark, qui met à...) 2005 de la société Futuremark (Futuremark Corporation est une compagnie de développement logiciel, basée notamment en Finlande,...)
Devant les nombreux paramètres intervenant dans la mesure d'un Pc avant et après le surfréquençage, il existe des produits permettant de mesurer les éventuelles améliorations d'une optimisation, 3dmark en fait partie. Il offre une vision synthétique sur les performances graphiques et CPU.