Publié dans Sciences et espace

13

Zen 3 : AMD détaille une faille du Predictive Store Forwarding (PSF)

Zen 3 : AMD détaille une faille du Predictive Store Forwarding (PSF)

Comme le rapporte Wccftech, le fabricant a publié un document détaillant cette vulnérabilité de type « side channel », qui n’est donc pas sans rappeler Meltdown/Spectre et leurs nombreux variants. 

Dans son document, AMD précise qu’il « ne connaît actuellement aucun code qui serait considéré comme vulnérable en raison du comportement de la PSF », mais il détaille néanmoins les risques et explique comment désactiver cette fonctionnalité. 

Enfin, « AMD estime que pour la plupart des applications, le risque de sécurité lié à la PSF est probablement faible », en conséquence de quoi le constructeur recommande de laisser la fonction Predictive Store Forwarding activée par défaut. 

13

Tiens, en parlant de ça :

Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

CSIRT vs ENISA, égalité balle au centre

08:27 DroitSécu 3

#Flock a sa propre vision de l’inclusion

Retour à l’envoyeur

13:39 Flock 18
Un Sébastien transformé en lapin par Flock pour imiter le Quoi de neuf Docteur des Looney Tunes

Quoi de neuf à la rédac’ #10 : nous contacter et résumé de la semaine

On est déjà à la V2 de Next ?

11:55 37
Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

DroitSécu 3

#LeBrief : fuite de tests AND 23andMe, le milliard pour Android Messages, il y a 30 ans Hubble voyait clair

#Flock a sa propre vision de l’inclusion

Flock 18
Un Sébastien transformé en lapin par Flock pour imiter le Quoi de neuf Docteur des Looney Tunes

Quoi de neuf à la rédac’ #10 : nous contacter et résumé de la semaine

37
Autoportrait Sébastien

[Autoportrait] Sébastien Gavois : tribulations d’un pigiste devenu rédac’ chef

Next 16
Logo de StreetPress

Pourquoi le site du média StreetPress a été momentanément inaccessible

Droit 18
Amazon re:Invent

re:Invent 2023 : Amazon lance son assistant Q et plusieurs services IA, dont la génération d’images

IA 11
Un œil symbolisant l'Union européenne, et les dissensions et problèmes afférents

Le Conseil de l’UE tire un bilan du RGPD, les États membres réclament des « outils pratiques »

Droit 6

19 associations européennes de consommateurs portent plainte contre Meta

DroitSocials 16

#LeBrief : Ariane 6 l’été prochain, Nextcloud rachète Roundcube, désinformation via la pub

Chiffre et formules mathématiques sur un tableau

CVSS 4.0 : dur, dur, d’être un expert !

Sécu 16
Une tête de fusée siglée Starlink.

Starlink accessible à Gaza sous contrôle de l’administration israélienne

Web 35
Fibre optique

G-PON, XGS-PON et 50G-PON : jusqu’à 50 Gb/s en fibre optique

HardWeb 53
Photo d'un immeuble troué de part en part

Règlement sur la cyber-résilience : les instances européennes en passe de conclure un accord

DroitSécu 10
lexique IA parodie

AGI, GPAI, modèles de fondation… de quoi on parle ?

IA 10

#LeBrief : logiciels libres scientifiques, fermeture de compte Google, « fabriquer » des femmes pour l’inclusion

livre dématérialisé

Des chercheurs ont élaboré une technique d’extraction des données d’entrainement de ChatGPT

IAScience 3
Un chien avec des lunettes apprend sur une tablette

Devenir expert en sécurité informatique en 3 clics

Sécu 11
Logo ownCloud

ownCloud : faille béante dans les déploiements conteneurisés utilisant graphapi

Sécu 16
Le SoC Graviton4 d’Amazon AWS posé sur une table

Amazon re:invent : SoC Graviton4 (Arm), instance R8g et Trainium2 pour l’IA

Hard 12
Logo Comcybergend

Guéguerre des polices dans le cyber (OFAC et ComCyberMi)

Sécu 10

#LeBrief : faille 0-day dans Chrome, smartphones à Hong Kong, 25 ans de la Dreamcast

Mur d’OVHcloud à Roubaix, avec le logo OVHcloud

OVHcloud Summit 2023 : SecNumCloud, IA et Local Zones

HardWeb 2
algorithmes de la CAF

Transparence, discriminations : les questions soulevées par l’algorithme de la CAF

IASociété 62

Plainte contre l’alternative paiement ou publicité comportementale de Meta

DroitIA 39
Nuage (pour le cloud) avec de la foudre

Économie de la donnée et services de cloud : l’Arcep renforce ses troupes

DroitWeb 0
De vieux ciseaux posés sur une surface en bois

Plus de 60 % des demandes de suppression reçues par Google émanent de Russie

Société 7
Une vieille boussole posée sur un plan en bois

La Commission européenne et Google proposent deux bases de données de fact-checks

DroitWeb 3

#LeBrief : des fichiers Google Drive disparaissent, FreeBSD 14, caméras camouflées, OnePlus 12

Hubble mission maintenance

Il y a 30 ans, Hubble recevait sa première mission de maintenance

Science 1

Des menottes autour d'un rouleau de billets de banque

Les deux principaux responsables de l’agence de cybersécurité ukrainienne accusés de corruption

DroitÉcoSécu 3

Google Messages

Sur Android, Messages fête son milliard d’utilisateurs, de nouvelles fonctions en approche

WebSoft 3

Une femme en blouse blanche et portant des lunettes adaptées utilise un séquenceur à ADN

Tests ADN : 23andMe avoue que les infos d’un « nombre significatif » d’utilisateurs ont fuité

Sécu 2

13

Commentaires (13)


Wosgien Abonné
Il y a 3 ans

Du coup, il y a un bench sur phoronix, avec et sans PSF. On perd 0,5% de perfs sans…



A quoi il sert ce PSF? Ca fait beaucoup de transistor inutiles :) ? Ou c’est juste les compilos qui ne sont pas prêts?


wanou Abonné
Il y a 3 ans

Toutes les astuces trouvées par les fabricants de processeurs x86 pour tenter de faire fonctionner les application massivement mono cœur sont en train de tomber les unes après les autres manifestement. A peu près tout ce qui est prédictif entre autre si j’ai bien suivi.



En dehors des tares d’origine de cette architecture dégeulasse très discutable (même à l’époque de sa création), il y a les problèmes posés par des millions de lignes de code impératif impossible à paralléliser même quand le langage fait croire que c’est possible (la honte sur python qui sérialise les codes parallèles).



L’avenir, selon moi, est aux processeurs massivement multi-cœurs que l’on pourra éviter de surcadencer et aux langages à paradigme fonctionnel qui permettent aux compilateurs de paralléliser quand cela est possible et pas seulement là où s’est prévu explicitement.



Dans les processeurs actuels, les transistors qui font vraiment le travail sont ceux des cœurs et ceux qui permettent aux données d’être échangées avec l’extérieur: ils sont surexploités et entourés d’une multitude d’autres transistors servants à des fonctions de cache, de prédictions et autres bricolages.



Si on transcrivait la situation actuelle dans les processeurs, on pourrait comparer les transistors aux employés d’une entreprise. On aurait donc, pour une entre prise de 100 employés:




  • Quatre mec qui triment jour et nuit et 365 jours par ans (les unités d’exécution) ;

  • Un magasinier pour gérer les entrées-sorties de matériels (les unités d’entrées sorties) ;

  • Un Chef ordonnanceur (il va chercher les instructions et les dispatche) ;

  • 14 médecins pour administrer les différentes drogues (exta, coke…), nourrir par sonde et couvrir les besoins naturels par sonde également des 6 premiers cités ;

  • 80 pousse bureaux pour échanger à un rythme soutenu les bureaux de chaque unité d’exécution (les mémoires cache).


Salamandar Abonné
Il y a 3 ans

Cette comparaison n’a pas de sens.
Dans tous les domaines, il y a des pièces plus utilisées que d’autres. Ça sera pareil dans un moteur de voiture, et n’importe quel ASIC spécialisé.


Wosgien Abonné
Il y a 3 ans

wanou a dit:


Toutes les astuces trouvées par les fabricants de processeurs x86 pour tenter de faire fonctionner les application massivement mono cœur sont en train de tomber les unes après les autres manifestement.




Ce n’est pas limité aux x86, spectre a touché ARM aussi il me semble. Par ailleurs il semble bien que l’Apple M1 se paye une bonne tranche de prédiction/réordonnancement, il ressemble plus à un Crusoé en tard qu’à un ARM. Wild guess: une bonne part est destinée à mapper ce qui sort de rosetta sur un max de coeurs.



Le monocoeur n’est pas mort, car il est compliqué d’alimenter les coeurs en données au delà de 8. Après,on a des coeurs périphériques mal exploités et des coeurs centraux isolés. La plupart des algos sont difficilement parallélisables. Une archi comme les Arm avec des coeurs type graphique intégrés qui ont accès au cache est plus intéressant qu’un CPU à tout faire.



Et je n’irai pas cracher sur le x86, vu ce qu’AMD en sort dernièrement, c’est impressionnant. Quand aux ARM, ils ajoutent instructions et unités tout comme le x86 l’a fait (même si la base est plus saine au vu des opportunités technologiques actuelles)



Pour rappel, en x86 on pouvait faire du calcul décimal sur des nombres décimaux codés binaires et des comparaisons de chaînes une poignée d’instruction. A l’époque, c’était de bons arguments. Maintenant,c’est juste totalement inutile.


Salamandar Abonné
Il y a 3 ans

wanou a dit:


Toutes les astuces trouvées par les fabricants de processeurs x86 pour tenter de faire fonctionner les application massivement mono cœur sont en train de tomber les unes après les autres manifestement. A peu près tout ce qui est prédictif entre autre si j’ai bien suivi.



En dehors des tares d’origine de cette architecture dégeulasse très discutable (même à l’époque de sa création), il y a les problèmes posés par des millions de lignes de code impératif impossible à paralléliser même quand le langage fait croire que c’est possible (la honte sur python qui sérialise les codes parallèles).



L’avenir, selon moi, est aux processeurs massivement multi-cœurs que l’on pourra éviter de surcadencer et aux langages à paradigme fonctionnel qui permettent aux compilateurs de paralléliser quand cela est possible et pas seulement là où s’est prévu explicitement.




Tu ne dois pas faire beaucoup de bas-niveau.
La parallélisation ça n’est pas gratuit : mémoire partagée, invalidation de caches, transferts de mémoire d’un cœur à l’autre…
Bref, NON on ne fera pas de parallélisation au niveau de la ligne de code, ça n’a aucun sens.


wanou Abonné
Il y a 3 ans

(quote:1865499:brice.wernet)



Le monocoeur n’est pas mort, car il est compliqué d’alimenter les coeurs en données au delà de 8. Après,on a des coeurs périphériques mal exploités et des coeurs centraux isolés. La plupart des algos sont difficilement parallélisables. Une archi comme les Arm avec des coeurs type graphique intégrés qui ont accès au cache est plus intéressant qu’un CPU à tout faire.



Et je n’irai pas cracher sur le x86, vu ce qu’AMD en sort dernièrement, c’est impressionnant. Quand aux ARM, ils ajoutent instructions et unités tout comme le x86 l’a fait (même si la base est plus saine au vu des opportunités technologiques actuelles)



Pour rappel, en x86 on pouvait faire du calcul décimal sur des nombres décimaux codés binaires et des comparaisons de chaînes une poignée d’instruction. A l’époque, c’était de bons arguments. Maintenant,c’est juste totalement inutile.




Coté archi du coeur, avec l’amd64 , on revient aux nombrux registres généreaux comme dans le 68000 et tous les processeurs bien conçus y compris côté microcontrôleurs comme les AVR et bien sûr, les ARM et les R3000. On revient de loin avec l’archi désastreuse du 8086 d’origine.



Côté parallélisation, continuer à utiliser une mémoire unifiée ne permet pas de faire croitre le nombre de coeurs. Perso, j’imagine plus un truc façon transputer mais avec des liaisons sur trois axes soit 6 liaisons au lieu de 4.
Mais il faut pouvoir faire de la prog parallèle, comme je l’ai dit. Et pas mal de choses sont paralélisables en fait. Sauf que, quand une boucle itérative est écrite en C avec un index , le compilateur ne peut pas rattraper le coup.
Le simple fait d’employer des itérateurs dans des languages ayant des syntaxes fonctionnelles permet d’exploser la boucle dès lors que les opérations sont indépendantes comme par exemple les calculs de matrices, les traitements d’images…


wanou Abonné
Il y a 3 ans

Côté calcul décimal, les micro intelhitoriques (8086, 8051, 8048), n’avaient qu’une instruction d’ajustement décimal après adition ou soustractikn de deux nombres codés en bcd. Sur le 68000 il y avait l’équivalent et enplus l’instruction abcd permettant de réaliser des opérations décimales sur des entiers de taille quelconque.
De mémoire une adition 256 bits tient en trois lignes d’assembleur:



           move.l 32, d0


boucle: abcd (a0)+, (a1)+



          dbra d0, boucle


Et le calcul décimal reste utile et très utlisé pour ceux qui veulent compter juste. C’est le cas avec le type decimal en sql qui est indispensable pour tout ce qui touche à l’argent, de la gestion de coûts aux payes, aux taux de change etc



Perso, je haie les flotants binaires qui font que excel n’est pas foutu de restituer proprement un résultat de calcul propre avec seulement deux chiffres après la virgule. Du coup, je fait des calculs de temps avec des entiers.


Wosgien Abonné
Il y a 3 ans

wanou a dit:


Coté archi du coeur, avec l’amd64 , on revient aux nombrux registres généreaux comme dans le 68000 et tous les processeurs bien conçus y compris côté microcontrôleurs comme les AVR et bien sûr, les ARM et les R3000.




Attention, les ISA ne sont qu’une façade pour les micro instructions derrières. Entre les renommages de registre, le out of order et le prédictif, c’est un peu une soupe derrière ce qu’on voit en assembleur. Et ça date du PPC, en RISC.



Par ailleurs, moi je vois plutôt une ISA différente, avec au lieu de registre des lignes de cache de plusieurs dizaines d’octets. Là on peut se lâcher sur le calcul matriciel.




Sauf que, quand une boucle itérative est écrite en C avec un index , le compilateur ne peut pas rattraper le coup.




Si mais pas forcément tout seul. Sur certains compilos fortran, on indiquait simplement quelles variables étaient variables dans la boucle et lesquelles étaient potentiellement différentes, le compilo parallélisait les for tout seul ensuite (SGI, 64 CPU, an 2000 :) )




wanou a dit:




Et le calcul décimal reste utile et très utlisé pour ceux qui veulent compter juste. C’est le cas avec le type decimal en sql qui est indispensable pour tout ce qui touche à l’argent, de la gestion de coûts aux payes, aux taux de change etc





+1, il est essentiel de connaître la différence en decimal et réel, leur limitations (et que en réels, 10000000+10000000* 0,00000001 n’est pas égal à 100000000+10000000 de fois l’addition de 0,00000001)


kannagi
Il y a 3 ans

(quote:1865957:brice.wernet)
Attention, les ISA ne sont qu’une façade pour les micro instructions derrières. Entre les renommages de registre, le out of order et le prédictif, c’est un peu une soupe derrière ce qu’on voit en assembleur. Et ça date du PPC, en RISC.



Cela n’empêche pas que le x86 est pourri , et même pour du superscalaire Out of order , il est handicapant.
Voilà quelque point où un processeur RISC à l’avantage comparé à un x86 :




-le décodage , il est bien plus rapide sur le RISC ce qui fait que la pipeline sur ARM est bien plus courte , et donc moins besoin d’avoir un out of order “efficace”



-on peut décodé plus d’instruction par cycle (c’est le cas du Apple M1 qui décode 8 instructions , contre 4 contre Intel et AMD) et ça ni Intel ni AMD n’arrivera à monté plus à cause du x86 justement :)



-moins de registre signifie que le x86 tape plus souvent sur le cache que sur les registres et comme l’accès au cache est bien plus long…




Par ailleurs, moi je vois plutôt une ISA différente, avec au lieu de registre des lignes de cache de plusieurs dizaines d’octets. Là on peut se lâcher sur le calcul matriciel.



Belle idée , mais non , si tu as un registre de 64 octets , ça poserais pas mal de soucis (et globalement un accès relativement long , même en register).
Et les load/store ont souffrirait , vu qu’en général on préfère unifié le load/store , cela veut dire qu’on aura un ralentissement du load/store pour tout , et donc un load 8 bits serait donc aussi long que le load 64 octets.



Wosgien Abonné
Il y a 3 ans

kannagi a dit:


Cela n’empêche pas que le x86 est pourri , et même pour du superscalaire Out of order , il est handicapant. Voilà quelque point où un processeur RISC à l’avantage comparé à un x86 :




C’est clair que le x86 a un décodage ultra compliqué. Ca paraît complètement idiot de nos jours, et les nouvelles instructions ne sont pas franchement plus simples.



Mais le out of order est apparu dans le grand public aussi avec les RISC, et il était nécessaire pour les perfs (PowerPC à l’époque). Sauf que qu’il fallait pour optimiser le prévoir dans les compilos, car ce n’est pas le CPU qui s’en chargeait. Et les compilos n’étaient pas prêt.



Quand à la “pureté” du RISC: c’est bien parce que l’idée ne résout pas tout et de loin que les ARM/PowerPC n’arrivent sur le devant de la scène que maintenant: depuis le début des années 90, la révolution RISC n’a pas réussi réellement à faire des machines aussi performantes que les CISC, sauf Apple M1… Qui embarque plus de transistors que les x86.



D’après ce que j’ai lu, il a une ISA RISC, mais il ressemble plus à une espèce de VLIW en interne (mais on ne peut que spéculer).
Quelques articles d’il y a quelques années comparaient des RISC à décodage multiple à du VLIW car en réorganisant “de force” les instructions, on pouvait exécuter des “cascades d’instructions” avec moins de cycle qu’il n’y a d’instructions, bloc par bloc.



En gros ce que faisait transmeta en 2000 (les CPU compatibles x86 à 1W contre 20 pour la consurrence - mais à 23 des perfs)




Belle idée , mais non , si tu as un registre de 64 octets , ça poserais pas mal de soucis (et globalement un accès relativement long , même en register). Et les load/store ont souffrirait , vu qu’en général on préfère unifié le load/store , cela veut dire qu’on aura un ralentissement du load/store pour tout , et donc un load 8 bits serait donc aussi long que le load 64 octets.



Belle idée , mais non , si tu as un registre de 64 octets , ça poserais pas mal de soucis (et globalement un accès relativement long , même en register).




C’est un autre façon de penser, plus proche du Cell de la PS3 en fait. Grosses tâches à alimenter. Un peut comme un GPU, mais au lieu de registres, des déplacement sur une ligne plus ou moins grande.
Ca peut coller avec du bytecode Java, puisqu’il déclare d’avance les espaces nécessaires pour une fonction.
Mais mon passé fortran parle :)


kannagi
Il y a 3 ans

(quote:1866111:brice.wernet)
Quand à la “pureté” du RISC: c’est bien parce que l’idée ne résout pas tout et de loin que les ARM/PowerPC n’arrivent sur le devant de la scène que maintenant: depuis le début des années 90, la révolution RISC n’a pas réussi réellement à faire des machines aussi performantes que les CISC, sauf Apple M1… Qui embarque plus de transistors que les x86.




Non , ce n’est pas la raison pour laquelle les procs “RISC” était en retrait , juste que faire un out of order efficace est très complexe, et seul Intel/AMD y arriverai.
Par contre les procs RISC faisait mieux à leur début (les PowerPC était meilleur que la gamme des Pentium ).




D’après ce que j’ai lu, il a une ISA RISC, mais il ressemble plus à une espèce de VLIW en interne (mais on ne peut que spéculer). Quelques articles d’il y a quelques années comparaient des RISC à décodage multiple à du VLIW car en réorganisant “de force” les instructions, on pouvait exécuter des “cascades d’instructions” avec moins de cycle qu’il n’y a d’instructions, bloc par bloc.




Bah , non ça ne fait pas du VLIW en interne :)
Après la comparaison est tout simplement que le VLIW peut être vu comme une version manuelle du Superscalaire , mais en interne , y’a de grosse différence entre eux.




C’est un autre façon de penser, plus proche du Cell de la PS3 en fait. Grosses tâches à alimenter. Un peut comme un GPU, mais au lieu de registres, des déplacement sur une ligne plus ou moins grande. Ca peut coller avec du bytecode Java, puisqu’il déclare d’avance les espaces nécessaires pour une fonction. Mais mon passé fortran parle :)




Le CELL n’était pas novateur , vu que le CELL était une copie parfaite de la … PS2 ou plus précisément de l’Emotion engine.



Sinon tu as mal compris le CELL (qui est pour ma part on va dire ma vision du CPU moderne), il n’avait pas de gros registre , il avait des registres de 128 bits au grand max.
C’est un proc relativement basique (donc qui utilise des registres et des instructions très proche d’un RISC ), la seule différence était qu’il était VLIW et qu’il n’avait pas de mémoire cache (mais un scratchpad memory) , et que donc c’était au programmeur de gérer cette mémoire , et la méthode pour bien l’utiliser était de précharger à l’avance les données (et pas forcément les fonctions , mais aussi et surtout les datas ).


Wosgien Abonné
Il y a 3 ans

kannagi a dit:


Par contre oui les procs RISC faisait mieux (les PowerPC était meilleur que la gamme des Pentium au début ).




Ca n’a pas tenu très longtemps… Et qu’on ne se méprenne pas: je suis pro-RISC! En fait, j’ai rêvé dès le début d’avoir un acorn Archimedes (je faisais de l’assembleur x86, et c’était déprimant comme la moindre instruction coûtait plus d’un - voir plus de 20 cycles).
Mais les ARM ont vite déçu, les PPC aussi…




Bah , non ça ne fait pas du VLIW en interne :) Après la comparaison est tout simplement que le VLIW peut être vu comme une version manuelle du Superscalaire , mais en interne , y’a de grosse différence entre eux.




Disons que le câblage va favoriser une certaine suite d’instructions, l’étage de réorganisation est censé produire ces suites le plus possible. Si on multiplie ces suites précablées, on se rapproche d’un VLIW.




Sinon tu as mal compris le CELL (qui est pour ma part on va dire ma vision du CPU moderne), il n’avait pas de gros registre , il avait des registre de 128 bits au grand max.




Je parlais surtout sur la façon de programmer - isoler des boucles dont on sait qu’elles ont une certaine durée. Et c’est une réflexion qui date de fin des années 90 en fait, en regardant le bytecode java et le fait qu’on s’énerve à le coller sur des machines à registres. Google a réglé le problème je crois en faisant un bytecode à registres.


kannagi
Il y a 3 ans

(quote:1866126:brice.wernet)
Mais les ARM ont vite déçu, les PPC aussi…




Oui , mais bon l’OoO est très complexe aussi




Disons que le câblage va favoriser une certaine suite d’instructions, l’étage de réorganisation est censé produire ces suites le plus possible. Si on multiplie ces suites précablées, on se rapproche d’un VLIW.




Oui , on peut en interne le gérer comme cela , mais cela ne veut pas vraiment dire qu’ils ont l’avantage du VLIW , vu que c’est qu’une petite partie du OoO le dispatch.




Je parlais surtout sur la façon de programmer - isoler des boucles dont on sait qu’elles ont une certaine durée. Et c’est une réflexion qui date de fin des années 90 en fait, en regardant le bytecode java et le fait qu’on s’énerve à le coller sur des machines à registres. Google a réglé le problème je crois en faisant un bytecode à registres.




Ben justement ,le CELL est un proc à registres donc pas sur que cela soit ta “façon de programmer”.
j’ai programmer sur ce genre de proc , et la façon de programmer et comme je l’ai dit , faut juste le voir comem un ARM mais que tu indique par bloc de deux instructions et que t’as pas de cache , le but du CELL est d’éviter au maximun les caches miss ;)
(Et il est VLIW in order pour réduire au maximun le nombre de transistor).