Se connecter avec
S'enregistrer | Connectez-vous

Intel : Haswell va gérer la mémoire transactionelle

Par - Source: Hardware.fr | B 1 commentaire

Intel a annoncé que Haswell, le processeur qui va succéder à l'Ivy Bridge, proposera un jeu d'instructions permettant de gérer la mémoire transactionnelle. Les instructions TSX feront partie d'AVX2 et devraient permettre de simplifier le travail des développeurs en cas de programmation avec plusieurs threads.

Expliquons. Actuellement, si vous avez un nombre fini de calculs à faire et que vous décidez de paralléliser les calculs, des problèmes de gestion de la mémoire se posent rapidement. En effet, il faut éviter que des threads aillent modifier des données à la place d'un autre threads et surtout essayer de gérer correctement les compteurs. Les solutions classiques consistent à bloquer la mémoire et à faire attendre certains threads, ce qu'on appelle un lock. Le défaut de la technique, c'est que c'est coûteux en temps CPU et dépendant du compilateur, du système d'exploitation ou même simplement du programmeur lui-même.

Hardware Lock Elation

La première solution permet de simplifier la gestion du lock. Haswell permet d'intégrer deux instructions qui encadrent les calculs à effectuer sans arrêt. Elles impliquent que les instructions seront exécutées en une fois. Le programmeur gère ses verrous de la même façon qu'auparavant, mais Haswell va permettre d'améliorer le parallélisme. En temps normal, le verrou va bloquer un second thread, quoi que ce dernier fasse. Avec Haswell, le processeur peut détecter si les threads se bloquent et — le cas échéant — permettre aux threads de s'exécuter simultanément, même avec le lock. L'avantage de la technique est que le code reste le même pour les anciens processeurs : c'est dans le meilleur des cas plus rapide avec Haswell, dans le pire des cas il n'y a pas d'effet.

Restricted Transactional Memory

La seconde solution est plus efficace — c'est le processeur qui va gérer les verrous —, mais nécessite de penser le programme pour Haswell directement. Et comme le x86 est un jeu d'instructions composé littéralement de bric et de broc, la gestion est un peu compliquée.

Au final, reste à voir si les instructions seront adoptées : il faut que les compilateurs suivent, tout comme les développeurs. Et il n'est pas sûr qu'AMD propose des instructions compatibles dans ses futures puces...


 


 

Afficher 1 commentaire.
Cette page n'accepte plus de commentaires
  • Johan_et_Pirlouit , 9 février 2012 15:17
    Citation :
    Au final, reste à voir si les instructions seront adoptées : il faut que les compilateurs suivent, tout comme les développeurs. Et il n'est pas sûr qu'AMD propose des instructions compatibles dans ses futures puces...

    En clair, ils vont nous refaire le coup du SSE4.x (Intel) / SSE4a (AMD). Des jeux d'instructions incompatibles qui ne sont toujours pas ou peu exploitées pour n'être au final que des arguments marketing passés (tiens, ça me rappelle le MMX et le 3Dnow!). D'ailleurs, quid du "SSE5" (ou du moins ce qu'il en reste) qu'AMD a essayé de nous "vendre" avec son Bulldozer ? Encore un jeu qui ne servira (probablement) pas.