Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
989 connectés 

  FORUM HardWare.fr
  Hardware
  HFR

  [HFR] Focus : Haswell et mémoire transactionnelle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HFR] Focus : Haswell et mémoire transactionnelle

n°8211870
C_Wiz
Profil : Equipe HardWare.fr
Posté le 08-02-2012 à 18:00:02  profilanswer
0Votes positifs
 

C'est par l'un de ses blogs qu'Intel vient d'annoncer une mise à jour de sa spécification AVX2 concernant Haswell, le prochain "Tock" d'Intel attendu pour 2013.Cette extension
Lire la suite ...

mood
Publicité
Posté le 08-02-2012 à 18:00:02  profilanswer
 

n°8212228
renozyx
Posté le 08-02-2012 à 22:45:27  profilanswer
0Votes positifs
 

Eviter le partage d'une ligne de cache entre 2 CPU pour des raisons de performance est assez classique..

n°8212336
C_Wiz
Profil : Equipe HardWare.fr
Posté le 09-02-2012 à 02:06:50  profilanswer
0Votes positifs
 

renozyx a écrit :

Eviter le partage d'une ligne de cache entre 2 CPU pour des raisons de performance est assez classique..

En l'occurrence ce n'est pas le problème, ici n'importe quel autre thread sur le système qui accède une ligne de cache sur lequel il y'a un lock l'invalidera.

n°8212415
NoradII
Il y a 17 ans naquit un PC
Posté le 09-02-2012 à 10:03:36  profilanswer
0Votes positifs
 

des pertes de performances d'accès mémoire en applicatif, sont à prévoir ?
Ou le mécanisme à une élaboration pour le Miss-rate ?
(j'ai pas encore tout lu [:the geddons])


Message édité par NoradII le 09-02-2012 à 10:04:32
n°8212695
Le Goulu
Posté le 09-02-2012 à 14:55:45  profilanswer
0Votes positifs
 

Pourquoi donc avoir remplacé "elision" par "elation" dans votre description du HLE (cf première illustration) ? "elation" voulant dire "allégresse", ça n'a pas trop de rapport avec le sujet !

n°8212747
C_Wiz
Profil : Equipe HardWare.fr
Posté le 09-02-2012 à 15:51:16  profilanswer
0Votes positifs
 

Corrigé

n°8213200
jdemouth
Posté le 10-02-2012 à 04:59:12  profilanswer
0Votes positifs
 

Bonjour,  
Je ne voudrais pas défendre Intel mais je ne suis pas forcément d'accord avec vous sur le fait que ces nouvelles instructions n'apporteraient pas de facilités en terme de programmation (paragraphe sur HLE). L'auteur de la note sur le blog d'Intel prend le cas d'une table de hachage pour laquelle il explique qu'avec TSX il pourrait implémenter cette table avec la performance d'une table "lock-free" (implémentation sans mutex mais thread-safe ; à la manière des tables implémentées dans Intel TBB) et la facilité de programmation d'une table utilisant des locks. C'est non négligeable. Dans le cas de votre exemple de compteur, il est vrai qu'on voit mal ce que TSX apporte par rapport aux instructions atomiques.

n°8213493
C_Wiz
Profil : Equipe HardWare.fr
Posté le 10-02-2012 à 14:36:37  profilanswer
0Votes positifs
 

jdemouth a écrit :

Bonjour,  
Je ne voudrais pas défendre Intel mais je ne suis pas forcément d'accord avec vous sur le fait que ces nouvelles instructions n'apporteraient pas de facilités en terme de programmation (paragraphe sur HLE). L'auteur de la note sur le blog d'Intel prend le cas d'une table de hachage pour laquelle il explique qu'avec TSX il pourrait implémenter cette table avec la performance d'une table "lock-free" (implémentation sans mutex mais thread-safe ; à la manière des tables implémentées dans Intel TBB) et la facilité de programmation d'une table utilisant des locks. C'est non négligeable. Dans le cas de votre exemple de compteur, il est vrai qu'on voit mal ce que TSX apporte par rapport aux instructions atomiques.


Vous faites référence à cela : http://software.intel.com/en-us/bl [...] explained/ ?
 
Je ne pense pas qu'avec cet exemple l'on puisse dire que HLE facilite la programmation. En pratique utiliser un seul lock global sur la hashtable n'est pas une technique nouvelle, c'est même probablement l'implémentation la plus basique et classique qui existe.  
 
La différence à mes yeux est que HLE rend cette implémentation basique et lente très performante sur Haswell, c'est d'ailleurs ce que l'on a écrit en conclusion, en permettant un contrôle au niveau matériel des locks, un code qui n'a pas été écrit de manière optimale (avec des locks dont le scope est beaucoup trop large) va devenir performant via HLE.  
 
Dire que HLE apporte des facilités de programmation dans ce cas me parait un sacré raccourci. Si les performances de la hashtable sont critiques, implémenter un lock unique à scope large avec HLE ne sera efficace que sur Haswell. Dans le monde réel, c'est une mauvaise solution. Utiliser une lib tierce est probablement un meilleur choix.  
 
Si à l'inverse les perfs de la hashtable ne sont pas critiques, alors un lock à scope large tournera plus vite sur Haswell, avec un impact final sur les performances qui pourra être limité.

n°8213505
BlueScreen​Junky
Posté le 10-02-2012 à 14:44:46  profilanswer
0Votes positifs
 

Merci pour l'article très complet comme toujours (pas tout tout compris mais je relirai à tête reposée ce soir ^^). Par contre je note quelques anglicisme dans l'usage de certains verbes :
"une ressource partagée peut être accédée de manière concurrente par plusieurs autres ressources. "
et
"Au lieu de lire 2, notre compteur lira toujours 1"
 
C'est peut être juste moi mais je trouve que ça sonne bizarre (alors que "can be accessed by" et "the counter reads 1" ça passe tout à fait en anglais).
 
Bref, pas bien grave mais j'avais envie de poster un commentaire XD


Message édité par BlueScreenJunky le 10-02-2012 à 14:45:11
n°8213615
jdemouth
Posté le 10-02-2012 à 16:13:50  profilanswer
0Votes positifs
 

C_Wiz a écrit :

jdemouth a écrit :

Bonjour,  
Je ne voudrais pas défendre Intel mais je ne suis pas forcément d'accord avec vous sur le fait que ces nouvelles instructions n'apporteraient pas de facilités en terme de programmation (paragraphe sur HLE). L'auteur de la note sur le blog d'Intel prend le cas d'une table de hachage pour laquelle il explique qu'avec TSX il pourrait implémenter cette table avec la performance d'une table "lock-free" (implémentation sans mutex mais thread-safe ; à la manière des tables implémentées dans Intel TBB) et la facilité de programmation d'une table utilisant des locks. C'est non négligeable. Dans le cas de votre exemple de compteur, il est vrai qu'on voit mal ce que TSX apporte par rapport aux instructions atomiques.


Vous faites référence à cela : http://software.intel.com/en-us/bl [...] explained/ ?
 
Je ne pense pas qu'avec cet exemple l'on puisse dire que HLE facilite la programmation. En pratique utiliser un seul lock global sur la hashtable n'est pas une technique nouvelle, c'est même probablement l'implémentation la plus basique et classique qui existe.  
 
La différence à mes yeux est que HLE rend cette implémentation basique et lente très performante sur Haswell, c'est d'ailleurs ce que l'on a écrit en conclusion, en permettant un contrôle au niveau matériel des locks, un code qui n'a pas été écrit de manière optimale (avec des locks dont le scope est beaucoup trop large) va devenir performant via HLE.  
 
Dire que HLE apporte des facilités de programmation dans ce cas me parait un sacré raccourci. Si les performances de la hashtable sont critiques, implémenter un lock unique à scope large avec HLE ne sera efficace que sur Haswell. Dans le monde réel, c'est une mauvaise solution. Utiliser une lib tierce est probablement un meilleur choix.  
 
Si à l'inverse les perfs de la hashtable ne sont pas critiques, alors un lock à scope large tournera plus vite sur Haswell, avec un impact final sur les performances qui pourra être limité.


 
Je fais effectivement référence à cet article.  
 
Je suis tout à fait d'accord avec vous sur le fait qu'une table de hachage implémentée avec un unique lock n'est pas un truc nouveau et que ce n'est pas efficace en cas de forte contention.
 
Ce que je dis en revanche c'est que si on peut écrire un code aussi simple qu'une table de hachage avec un lock en obtenant la performance d'une implémentation bien plus évoluée, de type "lock-free", ça ressemble bien à une forte simplification de la programmation de la table efficace.  
 
J'ai l'impression que nous sommes d'accord mais que nous prenons la question depuis des points de vue différents. Nous sommes d'accord que HLE ne rend effectivement pas l'implémentation d'une table de hachage avec un lock plus simple. Ceci dit, ça l'est déjà assez. Par contre ça permet d'éviter la complexité d'une implémentation plus évoluée.


Message édité par jdemouth le 10-02-2012 à 16:14:26
mood
Publicité
Posté le 10-02-2012 à 16:13:50  profilanswer
 

n°8213664
C_Wiz
Profil : Equipe HardWare.fr
Posté le 10-02-2012 à 16:59:12  profilanswer
1Votes positifs
 

jdemouth a écrit :

Ce que je dis en revanche c'est que si on peut écrire un code aussi simple qu'une table de hachage avec un lock en obtenant la performance d'une implémentation bien plus évoluée, de type "lock-free", ça ressemble bien à une forte simplification de la programmation de la table efficace.

Penser qu'il s'agit d'une simplification de la programmation revient à dire qu'il faut uniquement se préoccuper des performances sous Haswell et non sur les autres architectures, alors même que l'intérêt de HLE est de proposer des binaires simplement compatibles avec les architectures qui n'implémentent pas TSX.  
 
Le programmeur qui prendrait la décision de "simplifier" son code de la sorte prendrait la décision d'agrandir l'écart de performances entre les architectures existantes et Haswell (ce qui, à n'en point douter, ravirait Intel dont on peut comprendre qu'ils militent pour que l'on présente les choses de la sorte sur leur blog ;)). Cela ne me semble pas cependant être une décision qu'un programmeur consciencieux doive prendre. Pour moi il ne s'agit donc pas d'une simplification. Si la zone de code est critique, c'est un mauvais compromis. Si par contre elle ne l'est pas, on aura un petit gain de performances gratuit sans avoir à implémenter mieux. Mais le programmeur ne l'aurait de toute façon pas fait.
 
HLE benifieciera a mon avis beaucoup aux programmeurs "qui ne cherchent pas a optimiser", et en cela Intel propose une réponse interessante.
 

jdemouth a écrit :

Par contre ça permet d'éviter la complexité d'une implémentation plus évoluée.

D'une vous assumez que les performances de l'élision soient aussi bonnes que d'autres libs, de deux, il s'agit d'une solution qui ne marchera que sur une plateforme.

n°8214067
jdemouth
Posté le 11-02-2012 à 00:29:08  profilanswer
0Votes positifs
 

@C_Wiz: J'imagine que ma façon de penser est une sorte de déformation professionnelle... :).

n°8214100
C_Wiz
Profil : Equipe HardWare.fr
Posté le 11-02-2012 à 02:48:03  profilanswer
0Votes positifs
 

Trop de CUDA ? ;)

n°8214228
jdemouth
Posté le 11-02-2012 à 11:39:48  profilanswer
0Votes positifs
 

Trop de CUDA sur Kepler...

n°8339741
ATorG
Posté le 06-06-2012 à 18:46:45  profilanswer
0Votes positifs
 

Edit : Ok 2013.
 
Je cherche à monter ma configuration , budget maximum 2700 euros , comme le Haswell sort en 2013 , autant ne pas partir sur du X79 ? et partir sur du Z77 ?


Message édité par ATorG le 06-06-2012 à 18:49:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Hardware
  HFR

  [HFR] Focus : Haswell et mémoire transactionnelle

 

Sujets relatifs
[HFR] Actu : Deux nouveaux Athlon II en socket FM1conseil pour reparation config AMD X2 4200+memoire DDR3
[HFR] Actu : G.Skill lance les Ares, des DDR3 de 3.2cmChoix mémoire + carte graphique
Compatibilité barrette mémoire??[HFR] Actu : IBM et AMD
[HFR] Focus : Intel SSD 520 Series : les 1ers testsDifferent Timing de Memoire
[HFR] Actu : Concours : PC HardWare.fr Power User à gagner ! 
Plus de sujets relatifs à : [HFR] Focus : Haswell et mémoire transactionnelle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR