BLOGUI BOULGA

*miam* le blog de Mawwic.

Dual-cores = morts-nés ?

[Précision a posteriori: je parle ici de l'utilisation des dual-cores dans les jeux uniquement]

On parlait procs’ avec un pote, et des nouveautés à sortir: quad-core, 4×4 etc.

Et là, je me suis dit que les dual-core l’avaient vraiment dans l’os.
Aujourd’hui en-core (ha ha !), le "multi-threading" est loin d’être répandu parmi les jeux que nous utilisons.
Et les développeurs, s’ils s’y mettent, semblent traîner un peu la patte car, contrairement au SLi où la répartition de la charge peut se faire automatiquement entre les 2 cartes (sans aucune programmation en amont - même si la création de profils spés’ par Nvidia est préférable pour des résultats optimums), là il faut au minimum diviser le soft’ en différents threads, afin que ces derniers puissent ensuite être assignés à tel ou tel core.
Soit du boulot en plus pour les dévs’ - ou tout du moins, de nouvelles habitudes à intégrer.
Résultat: quand la technologie dual-core commencera à être véritablement exploitée, les dual-core seront peut-être déjà en passe d’être de l’histoire ancienne, tout le monde passant au quad-core etc.
Aussi, la technologie multi-core, lorsqu’elle commencera à être véritablement exploitée dans les jeux, pourraient bien l’être en prenant comme base/référence les dernières évolutions récentes que nous connaissons, qui se seront répandues depuis.

Conséquence: ceux qui, comme moi, ont acheté des dual-core dès leur sortie (ou presque) en pensant faire un pari sur l’avenir (du style: mon proc’ est sous-exploité, mais quand le multi-threading arrivera, sa puissance réelle sera alors révélée), l’ont un peu dans l’os.
Car quand la technologie multi-core ce sera vraiment répandue, il y’a de fortes chances que les dual-cores auront depuis longtemps été supplantés par leurs successeurs quadris, voire octocores, bien plus puissants - les dual-cores seront alors un peu dans la situation des Pentium MMX face au Pentium 2, il y’a quelques années. Un produit intermédiaire qui n’aura jamais véritablement eu l’occasion d’être exploité avant d’être dépassé.

Certains objecteront peut-être que d’ici à ce que les quadricores soient exploités comme il se doit, il faudra peut-être autant de temps que celui qui aura été nécessaire à l’exploitation des dual-cores.
Ben j’en suis pas certain, justement.

[attention, ce qui suit n'est qu'hypothèses, d'après ce que j'ai pu apprendre sur la question: je ne suis pas ingénieur, hein]

Vu qu’à part 2 cores de plus, y’a pas grand changement entre les quadris et duals: aussi, à partir du moment où on a divisé l’application en "threads" qui peuvent être pris en charge par plusieurs cores, qu’il y’en ait 2, 4, 8 ou d’avantage ça ne change pas grand chose.
P’t'être bien même que la répartition entre les cores, une fois le programme saucissonné en threads, peut se faire automatiquement, vu que tous les cores sont semblables: aussi, suffit juste de faire une opération simple du genre nombre de threads / nombre de cores = nombre de threads à mettre par core.
Si y’a moins de cores, y’aura juste plus de "threads" sur un seul core, c’est tout.

Ensuite, on peut affiner la méthode, en considérant que les charges de travail impliquées par les différents threads ne sont pas égales - ce qui est effectivement le cas: ainsi, le thread dévolu à l’IA pourrait davantage pomper que celui dévolu à la physique (ou l’inverse, on s’en fout à vrai dire).
Là encore, pour automatiser une répartition intelligente de la charge de travail, ce serait pas bien dur: ’suffirait de pondérer chaque thread en fonction de la charge de travail qu’il implique.
Ainsi, un même core pourrait soit s’occuper de beaucoup de threads légers, soit de seulement quelques threads lourds; pour, au final, fournir la même quantité travail que son voisin, mais simplement avec un nombre de threads (et une répartition de la charge entre ceux-ci) différent.

Tout le problème, c’est que ce saucissonage systématique des programmes mettra encore quelques temps à s’installer - et d’ici là, la norme risque bien d’être au quad-core.
Les dual-core, eux, seront dépassés: pas assez de core, donc trop de threads par core, d’où surcharge.
Je force un peu le trait, mais vous avez saisi l’idée, je pense.

Voilà.
Et vous, vous en pensez quoi ?

39 commentaires pour “Dual-cores = morts-nés ?”

  1. Piotr dit :

    Ok, j’attends encore pour m’acheter un PC.

  2. Jaspion dit :

    Le problème avec un dual core c’est lorsqu’on fait tourner une application mono core: on a intérêt à ce que chacun des 2 cores soit aussi puissant qu’un ancien processeur mono-core. Dans le cas contraire, on se retrouve avec des performances inférieures et un seul core utilisé…

  3. Castor Troy dit :

    j’en pense que, de toute facon, ils sortiront d’autres évolutions qui t’obligeront encore et encore à changer ta config parce que la nouvelle fait plus mieux mieux l’accélération de l’internet tout en faisant le café et le repassage.
    En fait, peu importe l’innovation (technique), la seule véritable innovation c’est celle que les marketeux te balancent et qui te donnera une raison suffisante pour craquer ta thune.

  4. Mawwic dit :

    @Jaspion: oui, ça, c’est encore un autre problème que celui que j’ai abordé.
    M’enfin, il tend à s’estomper; rien qu’avec mon "vieux" X2 4800+, en utilisation mono-core, je suis pas tant handicapé que ça par rapport à un mono-core.
    Certes, la différence de puissance est réelle en utilisation mono-core entre ça et un FX de dernière génération.
    Seulement, cette différence est pour l’instant de l’ordre du superflu: si elle se voit dans les benchs’, en pratique, dans les jeux, les deux permettent largement de jouer dans des conditions confortables.
    C’est comme jouer avec 80 FPS ou 150 FPS: y’a guère plus grande différence visible passé les 70…
    Bref, c’est un peu de la branlette passé un certain stade ^^.

    Surtout que, pour l’instant, les jeux sollicitent surtout les CGs plus que les proc’: on attend toujours les moteurs physiques poussés tirant parti des multi-core, des routines d’IA plus complexes et j’en passe.
    Par contre, du shaders et des nouveaux effets en "-ing", on en bouffe tous les jours.

    @Castor Troy: nan mais ça je dis pas, le matos est sans-cesse dépassé, c’est d’ailleurs ce que je dis à Piotr dans ce qui suit.
    Mais ce que j’essayais de mettre en avant ici, c’est que certaines technos’, du fait d’une certaine conjoncture, ne sont même pas exploitées avant d’avoir eu le temps de se répendre et d’être dépassée.
    Ca, c’est déjà moins courant.
    Or, j’ai l’impression que ce sera un peu le cas du dual-core, comme le Pentium MMX en son temps (dont la technologie sera d’ailleurs "assimilée" dans le P2; tout comme celle des duals l’est dans les quadris)

    @Piotr:

    *rires*

    En même temps, en informatique, tu peux très bien passer toute ta vie à attendre ;).
    Le matos sera toujours dépassé.
    Mais parfois, c’est vrai qu’on a la chance d’acheter dans une bonne période, et la bécane qu’on s’est faite reste à niveau plus longtemps qui si on avait décidé de s’en monter une à un autre moment, juste avant que quelques évolutions majeures ne se pointent.
    M’enfin, c’est pas facile à estimer - surtout qu’entre le moment où les évolutions apparaissent et celui où elles se sont suffisament répandues que pour être exploitées par les dévs’, il y’a eu de multiples raffinements de ladite évolution qui rendent ses premières versions obsolètes.
    C’est un peu le cas avec l’évolution vers le multi-core ici; le raffinement avant que cette évolution ne soit suivie serait alors le passage du dual-core quad-core et plus.

    Pas évident tout ça.
    Bref, face à tout ce merdier, m’est avis que le critère évident d’achat d’un PC / renouvellement de config’, ce doit avant tout rester:" y’a-t-il suffisament de jeux intéressants qui vont sortir et desquels je ne pourrai pas profiter pleinement à cause de ma config’ actuelle" ?
    Si oui, alors le changement se justifie sans problème, même s’il intervient dans une mauvaise conjoncture.
    Au moins, il t’aura permis de profiter à fond des softs qui t’intéressaient.
    Parce que c’est bien beau d’acheter une bécane au bon moment et qu’elle dure 2 ans; mais si pendant cette période, y’a aucun jeu véritablement intéressant qui se pointe… ben tu n’en auras pas profité tant que ça, de ta machine de guerre.
    Et quand les "bons" jeux arriveront, ta bécane commencera à être dépassée :-p.

    Et les bons jeux se faisant de plus en plus rares, il me semble que cette question revêt toute son importance aujourd’hui.

  5. Zemou dit :

    Quoiqu’il en soit un E6600 vaut largement l’achat, même pour une appli pas forcement adapté pour du multi core.

  6. Llyd dit :

    En même temps ca devient dur de trouver des mono-cores performants. Et le core 2 duo, malgré le peu d’exploitation du multi-threading, reste bien supérieur aux monocores, pour un prix plutot cool je trouve.
    Bon ya pas de core 2 solo pour comparer….

    Enfin pour les gain de performance nuls, je pense que tu parles en temps que joueur. Parce que les applications plus prédictives genre encodage, toshop et compagnie prennent un sale coup de boost il me semble.

    Et puis faut qqun pour essuyer les platres :D

  7. moSk dit :

    Je ne pense pas que les dual-cores soient morts nés. Déjà à l’heure actuelle s’ils sont a peu prés inutiles pour les jeux ils sont quand même très intéressant pour la bureautique, le multimédia et tous les usages multi-tâches… et les jeux intègreront petit à petit des technologies de multithreading. Les utilisateurs ne s’équiperont pas si rapidement que ça en quadri et octo-core, il y a quand même une grosse inertie à ce niveau là et donc les développeurs chercheront surement à tirer partie du dual avant de passer à des choses plus évoluées.

    Mais bon je vois pas trop l’intérêt de tirer des plans sur la comète sans tenir compte des chiffres de ventes, des planning des développeurs et des fabricants de processeurs.

  8. mst dit :

    Si tu veux tirer parti d’un multi core pour jouer, achète une console.
    Sinon dans mon cas, avec Gentoo je suis bien content d’avoir un dual core. Je prends l’exemple Gentoo parce qu’on compile beaucoup et souvent, mais c’est valable pour tout autre OS ou appli tirant partie des X cores.
    Donc le multi core n’est pas mort né, il est juste démocratisé au plus grand nombre même si les gens n’en ont pas forcement besoin. Ce qui est plutot cool vu que les prix eux ne sont pas multipliés par deux par rapport à un simple core de puissance équivalente.

  9. JinRoh dit :

    "C’est comme jouer avec 80 FPS ou 150 FPS: y’a guère plus grande différence visible passé les 70…"

    Pas de différence visible entre 80FPS et 150FPS? Ben putain, ça rentre vraiment pas…

  10. Mawwic dit :

    @Zemou: ah mais je ne dis pas du tout de ne pas acheter de dual-cores, hein; encore moins de multi-cores.
    Surtout que la transition étant en train de s’effectuer…

    @Llyd, moSk et mst: oui, je parlais bien sûr avec un point de vue de joueur - j’aurais du le préciser.
    Je suis absolument d’accord avec ce que vous précisez concernant les autres types d’applications.

    @mst: nan mais j’ai quand même le droit de m’interroger sur la pérennité du dual-core pour le jeu sur PC, non ?
    Y’a pas que les consoles dans la vie, et notamment pour le jeu vidéo (puis ‘vas trouver des Total War et autres ArmA sur console…).
    Et si je me suis fait enc****, je peux quand même le constater, non ^^ ?

    @moSk: "il y a quand même une grosse inertie à ce niveau là et donc les développeurs chercheront surement à tirer partie du dual avant de passer à des choses plus évolué"

    Yep; seulement, d’ici à ce que tout le monde passe vers le multi-core (ce qui est loin d’être encore le cas, excepté pour nous gamers peut-être), les quad-cores auront déjà gagné pas mal de terrain.
    Et on en verra sûrement proposés dans pas mal de configs’.
    Aussi, quand le public "main stream" fera le grand saut vers les multi-cores, il ne le fera peut-être que quand les quad-cores se seront répandus et seront ce que proposent la plupart des constructeurs en terme de plate-forme multi-core.
    Il n’est en effet pas rare qu’une génération de matos passe entre l’apparition de celui-ci et son adoption par une grande partie des utilisateurs: le temps qu’il fasse ses preuves, mais aussi le temps que l’acheteur surmonte le "choc psychologique" (comme on dit) lié à l’apparition d’une nouvelle techno’ par laquelle il lui faudra passer, qu’il le veuille ou non.

    Aussi, si le multi-core ne commenc vraiment à être adopté que dans 6 mois - un an, alors que les quad-cores commenceront peut-être à être monnaie courante, les développeurs qui feront du multi-core par la suite (une fois que ce sera suffisament répandu; y’a toujours ce principe du nivellement par le bas) le feront avec en tête le modèle dominant: celui du quad-core.

    Je dis pas que c’est forcément ce qui va arriver; mais franchement ça m’étonnerait pas.
    Là encore, rappelez-vous du MMX: les gens n’ont pas switché tout de suite de leur Pentium au MMX.
    Quelques uns seulement ont fait le pas.
    Mais la majorité n’a été mûre pour franchir cette étape que plusieurs mois après; et là, bam ! les P2 sont arrivés, et se sont vendus massivement, forcément.
    Et quelques mois après, la plupart des jeux réclamaient des P2, se basant sur la config’ la plus courante.
    Ceux qui avaient acheté un MMX à peine quelques mois plus tôt l’avaient dans l’os… (un de mes potes s’en rappelle encore ^^).

    @JinRoh: ok, alors on va préciser à mort.
    Il y’a infiniment moins de différence entre 30 FPS et 60 FPS qu’entre 80 FPS et 180 FPS.
    Dans les deux cas, c’est fluide.

    C’est comme pour les films projetés à 60 images par seconde: tu sens la différence par rapport à ceux projetés à 24-30, c’est vrai.
    Mais jamais tu n’irais dire du film projeté à 24-30 image par seconde qu’il n’est pas fluide.
    Ben là, c’est pareil.

    Voilà, c’est mieux comme ça, non ;-) ?

  11. Mhraya dit :

    J’en pense que tu penses mal. Ah, et les tetra-core sont aussi déjà obsolète vu qu’Intel a présenté un 88-core récemment. Oui, moi aussi j’peux faire des raccourcies foireux :)

  12. Mawwic dit :

    @Mhraya: non, c’est toi qui a fait un raccourci foireux.
    Je ne dis pas que telle technologie est obsolète parce qu’une nouvelle arrive (ce qui est une évidence).
    Je dis que telle technologie peut être "morte-née" car avant qu’elle ne commence à être exploitée, sa version améliorée arrive sur le marché et est adopté par la majorité des utilisateurs, réticents jusqu’alors.
    Et de fait, les développeurs se basant sur la config’ la plus courante, ils élaborent leurs jeux en prenant comme référence cette nouvelle évolution qui s’est diffusée.

    Dit autrement: les utilisateurs de dual-core ont eu la satisfaction d’avoir des procs’ ultra-puissants, mais ils ne leur étaient pas très utiles.
    Et quand enfin on commence à tirer parti du multi-core, leurs dual-cores sont pour le coup en passe d’être dépassés.
    Au final, il n’auront jamais eu de jeux tirant vraiment parti de leur possibilité.
    C’est ça d’être trop en avance…

    Encore une fois, je ne dis pas que c’est ce qui va arriver - je ne m’appelle pas Paco Rabanne.
    Les prévisions, en informatique, c’est loin d’être évidents, surtout au delà de 6 mois.
    Mais je m’interroge sur un des scénarios possibles.
    Rien de plus.

  13. JinRoh dit :

    Il y’a infiniment moins de différence entre 30 FPS et 60 FPS qu’entre 80 FPS et 180 FPS.
    Dans les deux cas, c’est fluide.
    ——————————-

    Moins de différence entre le 30 et 60 que le 80 et 180? Je ne sais pas. Un scrolling dans un FPS à 30fps, ça le fait pas. A partir de 50/60, ça commence à être bien. Perso je pense que la différence est plus visible, car c’est entre les 30fps et 60fps que se situe, d’après moi, le seuil de "confort" au niveau du feeling.

    Le minimum syndical étant 40 je pense…

  14. lolmao500 dit :

    Ben ya déjà des jeux multi-thread… Half-Life 2 episode 2 le sera, supreme commander, armed assault… Déjà les jeux à venir dans les prochains mois seront multi-cores… et le prix des quad-cores…

    De toute façon, je vais recevoir mon E6300 la semaine prochaine. Alors NA!

  15. Whisper dit :

    @jinRoh

    Si on prend en considération le rafraichissement des écrans (60Hz pour la plus part des LCD, 85 pour les CRT), je crois que tu te trompes lourdement et que effectivement, ca rentre vraiment pas :D

    Pour ce qui est des multi-core, je pense qu’il va y avoir une longue cohabitation dual-core/quad-core avec les jeux des gammes: les dual vont lentement devenir milieu puis bas de gamme, mais ca prendra quelques années.

    Donc je ne crois pas que les acheteurs de dual-core seront laisés, après effectivement si tu es passé au dual dès 2005 ca ne servait un peu à rien, oui. Le passage est encore discutable maintenant d’ailleurs.

    Une information intéressante qui peut donner une idée de la rapidité avec laquelle les développeurs de jeux vont pouvoir pondre du code largement multi-thread :

    http://steampowered.com/status/survey.html

    Les stats de steam, près de 10% des joueurs déjà équipés en dual-core !

  16. mst dit :

    @Mawwic tu t’interroges sur ce que tu veux mais ton raisonnement est biaisé. Tu généralises ton utilisation de ta machine à tout le monde.
    Alors si tu as l’impression de t’être fait mettre en achetant un dual core, je répondrais que tu t’es enfoncé tout seul un manche à balais, il est clair que tu aurais du prendre un simple core.
    D’autres par contre on l’utilité du dualcore au quotidien, et depuis bien longtemps.

  17. WhatTheFuck dit :

    Ce qui est bien c’est qu’a la différence de ton cerveau, il peut faire deux choses a la fois. Enfin bon dans ton sujet tu ne parles que de jeu vidéo donc bon…

  18. Mhraya dit :

    Trop en avance ? Mais sans les doubles core, tu penses sincèrement que les tétra-core existeraient ? Plus rigolo encore, un dév’ quand il fait son appli’, il va d’abord préférer les mono-core car c’est la grande majorité du parc info’ mondial puis le double-core. Ton tétra-core ne sera franchement utilisé qu’au bon vouloir du répartiteur de tâche interne au CPU ou sur les rares applications facilement parallèlisable (compression rar). Et encore, on n’a même pas un ratio de 4 sur les premiers CPU car ils partagent la même bande passante…

    Par contre sur un serveur, j’dis pas :)

    En gros, le mono-core et le dual-core ne sont pas prêt d’être obsolète voir complètement dépassés.

    "Les stats de steam, près de 10% des joueurs déjà équipés en dual-core !"

    Ils comptabilisent aussi les serveurs nan ? ;)

  19. Mawwic dit :

    @mst: WhatTheFuck (qui possède le même sens du tact que toi…) a bien reprécisé que je ne parlais que de l’utilisation vidéo-ludique (et éventuellement grand public) des dual-cores ici.

    Ca a même été réinscrit en haut du billet.
    C’est précisé à plusieurs reprises dans les commentaires.

    Bref.

    @Mhraya: "Trop en avance ? Mais sans les doubles core, tu penses sincèrement que les tétra-core existeraient ?"

    Là encore, je n’ai jamais dit ça, au contraire, relis mes propos et tu pourras le vérifier: sinon, pourquoi je parlerais d’évolution et je ferais un parallèle avec les Pentiums MMX et Pentiums 2 ?

    Bon, je vais tenter de réexpliquer une dernière fois ce que je veux dire, avec un exemple bien con.
    Après, j’abandonne.

    Y’a bien 15 ans, Gilette, le fabricant de rasoirs (j’avais dit que je prendrais un exemple à la con) a tenté de sortir une première version de son rasoir pour femmes.
    Flop totale.
    Quelques années après, ils ressortent un produit similaire, légèrement amélioré, et encore.
    N’empêche que sans le premier, on aurait pas eu le second, qui en est l’évolution.
    Et là, ça marche (oui, c’est Venus, pour ceux qui se le demandent).

    Pourquoi ?

    Pour ma part, je pense simplement que c’est parce que le produit n’a pas rencontré son public.
    Pour autant, et l’exemple le montre bien, c’est pas pour ça qu’on va revenir en arrière ou que sais-je.
    Au contraire, les futures évolutions prendront ce produit comme base.

    Tiens, regarde donc la Smart, un autre exemple: quand elle est sortie, flop.
    Là aussi, le produit était - à mes yeux tout du moins - un poil trop novateur.
    Mais maintenant, il marche, timidement, parce que les consos’ sont prêts à l’acheter pour X raisons (dont on se balance, ce n’est pas le sujet).
    Et ce qui se vend, c’est pas la Smart d’y'a 6 ans: c’est la version améliorée, quand ce n’est pas la déclinaison roadster.

    Le dual-core, pour les jeux et le grand public (donc pas pour le professionnel qui lui trouve une application réelle, on est bien d’accord) qui veut se servir de son PC comme d’une plate-forme polyvalente (faire un peu de tout), ça n’a pour l’instant qu’un intérêt limité.
    Car ce n’est pas encore aussi bien exploité que ça pourrait l’être dans ces domaines, contrairement au milieu pro’.

    Pour ce qui est de ces applications, il semble donc que le multi-threading mettra plus de temps à se généraliser, vu le retard pris.
    Et d’ici là, c’est pas dit qu’on soit pas déjà en train de s’équiper en quad’ cores.
    Le dual-core aura servi de transition dans ces domaines, mais les jeux qui tireront véritablement parti du potentiel du "multi-threading" ne pourraient bien se répendre que bien plus tard, alors qu’une bonne partie des gens sera en train de s’équiper en quads’ et autres.
    Résultat: les jeux, conçus avec cette optique du quad’ comme proc’ multicore le plus répandu, seront vite trop gourmands pour les seulement 2 coeurs qu’à à offrir un dual core.

    Les stats de Steam’ ne vont en rien contre l’hypothèse que j’énonce, au contraire: peu de joueurs (exceptés les hardcore gamers, dont certains d’entre nous font d’ailleurs partie) étant passé au dual-core, quand ils franchiront le pas, on en sera déjà probablement au quad’core. Ce sera le truc proposé plus ou moins de base, et donc ce qu’ils prendront.
    Et c’est lui qui récoltera les fruits du passage aux multi-cores; pas le dual.

    Et ça aura une répercussion sur la conception des jeux en retour.

  20. FredoxNF dit :

    Il y a déjà une amélioration "basique" pour tous les jeux avec les dual cores vu que les drivers de cartes graphiques (ATI et NVidia donc) sont des drivers multithreadés : ils peuvent décharger une part du boulot sur l’autre core. Au delà de 2 cores, c’est beaucoup plus compliqué à gérer et le principal problème est le partage de la même bande passante pour tous les cores comme l’a indiqué Mhraya. Et comme précisé aussi, le dev se doit de faire tourner son appli sur un monocore en premier lieu alors les cores supplémentaires hein, ils le font s’ils ont le temps/les moyens.

    Concernant le futur des cores, Intel part dans l’idée (pour son 80 cores) d’avoir des cores non pas unifiés mais spécialisés, chaque core s’occupant d’une tâche bien spécifique (un pour le traitement de la vidéo, un autre pour les textures etc…). Très intéressant en pratique, il faut voir ce que ça va donner réellement en action (surtout qu’il va falloir les applis, les OS et tout le bazar qui supportent l’architecture pour que ça soit pleinement efficace).

  21. Mawwic dit :

    "Et comme précisé aussi, le dev se doit de faire tourner son appli sur un monocore en premier lieu alors les cores supplémentaires hein, ils le font s’ils ont le temps/les moyens".

    Je n’ai jamais dit le contraire; et ça ne s’oppose en rien à ce que j’ai pu dire d’autre par ailleurs.

    "Il y a déjà une amélioration "basique" pour tous les jeux avec les dual cores vu que les drivers de cartes graphiques (ATI et NVidia donc) sont des drivers multithreadés : ils peuvent décharger une part du boulot sur l’autre core".

    Si t’avais plus de précisions, je serais preneur: je dois admettre que j’ai pas tout compris.
    En tout cas, j’avoue, j’ignorais que les drivers des CGs prenaient en compte les différents cores du CPU.

    "Concernant le futur des cores, Intel part dans l’idée (pour son 80 cores) d’avoir des cores non pas unifiés mais spécialisés, chaque core s’occupant d’une tâche bien spécifique (un pour le traitement de la vidéo, un autre pour les textures etc…). Très intéressant en pratique, il faut voir ce que ça va donner réellement en action (surtout qu’il va falloir les applis, les OS et tout le bazar qui supportent l’architecture pour que ça soit pleinement efficace)."

    Yep, très intéressant tout ça.
    Mais là, on passe à une étape au dessus.

    Le "problème" dont je parlais, c’était simplement, sur le moyen-court terme, la multiplication des cores, toute bête (sans spés’) à venir.
    Le 80 cores spécialisés, on a encore un peu de temps avant de le voir venir ^^.

  22. Ash_95 dit :

    Mais quel intense débat !

    D’hab les longs débats ça porte sur des sujets qui fachent, genre des questions bien saignantes, bref des trucs ou chaque partie se sent comme physiquement aggressé. Mais là…

    QUESQU’ON EN A FOUTRE DES DUAL CORE ET QUADRICOLORE CORE §§§

    Mawwic tu touches des thunes pour chaque quadri truc core vendu ? Ou alors t’as une haine interieur envers les dual core, faut consulter et vite !

  23. EkinoX dit :

    Faites qu’il se trompe, mon Dieu, faites qu’il se trompe.

    Et après on pourra bien se foutre de sa gueule, ou pas.

  24. darjul dit :

    Mono-Dual-Quadri-Hyper-Machin-Truc je laisse ça aux passionnés. En revanche je vais vous parler d’une légende du jeux vidéo, celle qui veut que les jeux ne soient pas ou peu multithread.

    Faites le test suivant:
    - Lancez n’importe quel jeu
    - Faites ALT+TAB pour revenir sous Windows (pour avoir le jeu en tâche de fond !)
    - Allez dans le Gestionnaire de tâches
    - Allez dans "View" puis "Select Columns" (désolé mons Windows est en anglais)
    - Selectionnez "Thread Count" dans la liste
    - Consultez le Thread Count correspondant à l’executable de votre jeu
    - Que concluez vous ?

    Je pondère toutefois le nombre que vous obtiendrez. Il peut y avoir des threads qui dorment en attendant un évênement, comme le thread DirectInput qui ne fait que checker si la fenêtre du jeu a le focus pour mettre à jour le status des devices. Mais un thread est un thread, et tous ne dorment pas, loin de là. Faites l’expérience avec des jeux comme "Need For Speed", "Counter Strike", "Les Sims", "Flight Simulator X", "Starcraft" ou même "Tetrinet", et vous obtiendrez un nombre largement supérieur à 1.

    Ca fait des années qu’on vous dit que les jeux sont pas ou peu multithread, et vous y croyez parce que c’est ce que "tout le monde" dit. Mais on vous a menti par stupidité et ignorance, car "tout le monde", ce sont les "journalistes" et, n’ayant pour la plupart jamais vu un compilateur de leur vie, ils ne savent pas de quoi ils parlent et se contentent donc de répéter ce que les développeurs leur disent. J’était mort de rire à l’annonce (reprise mondialement) que "Quake 3" était le premier jeu multithread (encore plus depuis que les sources sont publiques, mais ce n’est pas du tout une critique du code, je ne me permettrais pas de dénigrer le Dieu Carmack ;)). Pour info, le premier jeu commercial auquel j’ai eu accès au code source par l’intermédiaire d’un stage entreprise c’était Pod Arcade en 1997, et déjà à l’époque il était multithread.

  25. EkinoX dit :

    Donc même un mono-core peut lire plusieurs thread en même temps ?

    Ca y est, il commence à se tromper, il commence.

  26. WhatTheFuck dit :

    Vous croyez qu’il faudrait lui dire qu’un processeur (mono coeur) ne fait qu’une tache à la fois, qu’un dual core deux à la fois, soit une par coeur… Révise tes cours sur l’ordonnancement.

  27. QQQ dit :

    Pas le temps de tout lire mais juste pour être sur:
    même en 2.4ghz mon 6600 est plus performant que mon p4 3ghz dans une application mono.

  28. golan8x dit :

    C’est pour ça que je garde mon athlon 64 1 mo @ 2.85 ghz, parcequ’en dehors des benchs il assure. (c’est à dire en utilisation courante).

  29. Major-ElitE dit :

    désolé, j’ai pas tout lu, je me refère juste au titre…

    Alors voilà,

    moi qui vient de refaire ma config y a moins d’un mois de cela avec un E6600, un matin en consultant les news du net je lis quoi…

    Que Valve recommande les quadCore car pour la gestion de la physique ca sera mieux…

    Après ca, comment voulez vous ne pas etre deçu de lire une telle badnews un lundi matin…

    Donc pour ce qui est du titre, ca m’ fait penser de suite que j’ai acheté un produit mort né…

    Mais bon, vu le prix des quad….le C2D est quand meme bien faut le dire…

    Mais bordel ! Voilà, maintenant que Valve à parler tout le monde va suivre…

    o_O

  30. Mawwic dit :

    @Ash_95: si on ne devait parler que des "grandes causes", j’crois qu’on aurait pas grand chose à se dire.
    Tu ne veux que des questions de fond, des trucs qui te paraissent être capitaux ? Et ce genre de sujets t’emmerde ?
    Je te comprends parfaitement - mais qu’est-ce que tu fous ici, alors ?

    Nan parce qu’en plus, je veux pas être méchant, mais si tu veux parler sujets de fond, je crois que t’es au mauvais endroit.
    Les blogs de NoFrag, ça se prête avant tout aux trucs légers, parfois au troll; et forcément, vu le site, ça tourne souvent autour de l’informatique et des jeux vidéo.

    Par ailleurs, je n’ai aucune haine envers les dual-cores, et je ne dis pas que les dual-cores c’est de la merde ou que sais-je.
    D’abord parce que, comme le rappelle je sais plus qui, c’est une étape nécessaire de l’évolution des procs’. Sans ça, on aurait pas eu la suite. C’est comme pour savoir courir: ‘faut déjà avoir appris à marcher.
    Par ailleurs, un produit n’est jamais bon ou mauvais en soi (ce serait débile de penser ça), il l’est par rapport à ce qu’il y’a en face et au contexte.
    Or, en ce qui concerne l’utilisation ludique des PCs, si les dual-cores étaient très nettement une avancée incontestable en terme de puissance potentielle… ils ont peut-être été un beau gâchis pour ce qui est de leur utilisation réelle.
    Car en face, il n’y'avait pas de produits spécifiquement adaptés pour tirer parti de leur spécificité (nième précision pour les pointilleux: je parle de l’utilisation ludique et grand public, pas professionnelle, on est bien d’accord).
    Là encore, c’est bien beau de s’acheter un bolide qui carbure à 250 km/h; mais si les autoroutes sont limités à 110…
    Par contre, si après la vitesse sur autoroute devient illimitée, alors là ça devient intéressant; mais entre temps, d’autres bolides roulant plus vite seront sortis.
    Et le type qui a acheté, il y’a X années, une caisse roulant à 250 pour le même prix auquel on achète une caisse bien plus performante aujourd’hui se dit que, forcément, quelque part, il y’a eu du gâchis.
    Car quand il était en possession du top, il ne lui servait à rien; et quand enfin il a eu la possibilité de pousser le bouzin dans ses derniers retranchements, sa caisse avait été dépassée depuis un certain temps déjà.
    Résultat: en théorie, il a tenu le haut du pavé; mais jamais en utilisation pratique.

    Et, non, je ne fais pas de tuning et j’abhorre la course à la puissance moteur.
    Mais bon, avec une comparaison aussi basique, je me suis dit que ça devrait être plus parlant.

    @EkinoX: j’ai jamais dit que j’avais raison: je peux pas prédire le futur, je ne suis pas Nostradamus.
    J’avançais une hypothèse qui me paraissait plausible.
    D’ailleurs, c’est pas pour rien que y’a plein de conditionnels et autres modalisateurs du style "peut-être".

    @WhatTheFuck: j’ai absolument rien contre le fait qu’on s’oppose à moi; au contraire, je ne demande pas mieux.
    Sinon, je garderais tout ça pour moi et je ne viendrai pas l’écrire ici et vous demander votre avis. CQFD.
    Seulement, l’agressivité et la condescendance, ça va bien deux secondes.
    Alors soit tu te montres un peu plus "courtois" (je te demande même pas d’être aimable mon vieux, juste pas désagréable), soit tu fous le camp.
    Je me demande d’ailleurs ce que tu fous ici, puisque tu sembles considérer que cette question n’en est pas une et que c’est tout faux (c’est bien beau de le dire, mais c’est encore mieux quand on prend la peine de l’expliquer, tu penses pas ?).
    Soit. Tu l’as dit dès ton premier commentaire.
    Mais si tu ne veux pas dialoguer/développer, si t’es juste là pour troller sans apporter d’eau au moulin, alors casses-toi.
    Ca va, j’ai été assez clair comme ça ?

    Par ailleurs, si un proc’ ne peut faire qu’une seule tâche par coeur (j’imagine que tu veux parler des threads)… alors tu voudras bien m’expliquer comment les monos’ font pour gérer des jeux multi-threads depuis bien plus longtemps qu’on ne le pense (cf. le commentaire de darjul, juste au dessus) ?
    Ou tu préfères te contenter de troller et continuer à te montrer méprisant (j’avoue que c’est tentant: c’est tellement plus facile) ?

    @darjul: tu m’intéresses vachement là.
    Mais je me demande un truc, du coup.
    Quand les dévs’ de jeux disent qu’il faut qu’ils programment leurs jeux de sorte à tirer parti du multi-core, il ne font donc pas la division en threads, puisqu’elle est déjà faite.
    Mais alors, ils font quoi ? Ils déterminent quels threads seront gérés par quels cores ?

  31. darjul dit :

    C’est une partie de la solution seulement. Si c’était aussi simple, il suffirait d’employer ces fonctions à bon escient, et le tour serait joué:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/multiple_processors.asp
    Si c’était le cas, ça voudrait dire que Valve te vendrait un HL2 Source soi-disant optimisé multicore alors que tout ce qu’ils auraient fait par rapport au non optimisé multicore, ce serait d’ajouter ces fonctions au bon endroit dans leur code. D’une part ces fonctions existent depuis longtemps, d’autre part ils savaient très bien où les mettre bien avant l’apparition du muticore.

    Non, le truc c’est d’employer les cores comme il faut, en leur dédiant une part de travail aussi équitable que possible, afin que la machine déploie toute sa puissance en utilisant le plus possible tous les cores/processeurs dont elle dispose.

    Considère un jeu ayant 2 modules, un Physique et un IA (oublie le reste pour simplifier). Idéalement tu es tenté de te dire que tu devrais dédier un proc/core à chaque module. Pas trop mal pensé, sauf que si ton jeu utilise peu de Physique et beaucoup d’IA, le premier proc/core va tourner à faible régime par rapport au deuxième. S’ils sont en plus synchronisés (la Physique attend que l’IA ait fini pour passer à l’étape suivante), c’est la cata, ton premier core ne va rien faire tant que le deuxième n’a pas fini. La solution c’est de décharger une partie du boulot du deuxième core en la faisant faire par le premier. Donc le premier core va s’occuper de la Physique mais aussi (au pif) de la partie Pathfinder de l’IA. Attention, tout ceci n’est qu’un exemple !

  32. EkinoX dit :

    Non mais même avec tes "peut-être" et ton conditionnel, si tu te plantes, je te raterais pas ;)

    C’est le risque quand on avance des trucs comme ça, peu importe les pincettes que tu prends, s’il s’avère que, malgré tes mises en garde sur le caractère purement spéculatif de ce que tu avances, tu t’es trompé, personne ne se souviendra que ce n’était qu’un scénario parmi d’autres.

    QSSU;;E FFS §§§

    En même temps c’est tellement bien argumenté et raisonné que j’ai bien "peur" que tu aies raison ( je te l’ai déjà dit ça ;) ) maintenant, je ne veux pas que tu aies raison, car je vais changer ma config’ pour un dual core bientôt ( pénélope, toussa ), c’est pour ça que je prie pour que tu aies tort. :p

  33. ecaheti dit :

    Moi je me pose les meme questions a propos de mon übber Athlon 64.
    J’ai constaté que sur Splinter Cell Chaos Theory (acquis il y a peu) il y a pas mal de pub pour l’athlon 64 FX (et pour les chewing gums Airways, mais on s’eloigne).
    Ce jeu tire t’il parti de mes super registre de données 64bit?
    D’ailleurs c est quand meme foutrement de la merde cette histoire de 64 bits!
    Vous me faites marrer avec vos Dual Core, à moi, qui n’est pas osé franchir le cap (pour une raison bassement financiere), mais dejà est ce que les proco 64 bits sont exploités? Faut il forcement avoir un winxp 64 pour ça? Quel temps fera t’il demain? Vais je encore passer a 2 doigts de me faire bannir (ouh j’ai peur) de ce blog pour violation de propriété intellectuelle?

  34. Mawwic dit :

    @darjul: ok, ben merci pour ces précisions.
    De fait, j’ai une autre question: après avoir effectué ce travail de répartition équitable des tâches entre les cores (en fonction de la charge, forcément différente, qu’implique chacune des tâches), une fois qu’on l’a calculé pour deux cores, ça doit être possible, à l’aide de quelques variables, de pondérer tout ça pour que ça s’applique plus ou moins automatiquement à un nombre de cores supérieur, non ?
    Si je demande ça, c’est parce que c’est un des points sur lesquels je m’interrogeais dans mon billet; et c’est de là que découlait en grande partie la suite.

    @EkinoX:
    "C’est le risque quand on avance des trucs comme ça, peu importe les pincettes que tu prends, s’il s’avère que, malgré tes mises en garde sur le caractère purement spéculatif de ce que tu avances, tu t’es trompé, personne ne se souviendra que ce n’était qu’un scénario parmi d’autres."

    C’est pas faux… c’est même plutôt vrai.
    Bien vu pour le Mawstradamus, sinon ;).

    "j’ai bien "peur" que tu aies raison ( je te l’ai déjà dit ça ;) ) maintenant, je ne veux pas que tu aies raison, car je vais changer ma config’ pour un dual core bientôt ( pénélope, toussa ), c’est pour ça que je prie pour que tu aies tort. :p"

    Bah, en même temps, comme je le disais à Piotr, je pense qu’en tant que joueur, ‘faut pas tant choisir sa bécane en se disant "elle va me durer X temps" qu’en se demandant si, durant le temps où elle restera à niveau (peu importe la durée de ce créneau), y’aura suffisament de bons jeux à sortir.
    Bon, avec les retards tout ça, c’est pas évident à prévoir non plus - mais tout de même davantage que pour ce dont on parlait précédemment ^^.
    Parce que bon, si tu t’achètes une super bécane, mais qu’aucun jeu intéressant en tirant parti ne sort avant qu’elle soit dépassée…
    Alors que si tu achètes une bécane à l’avenir certes limitée, mais dont tu sais qu’elle te permettra de jouer à une tripotée de titres que tu attends et qui te dureront longtemps, sans compter les titres que tu as pu louper auparavant (car t’avais pas la bonne config’ pour y jouer confortablement…).

    J’pense que ça a d’autant plus de sens d’agir de la sorte que tout se démode de plus en plus vite, quand une génération de matos ne risque pas de se retrouver carrément morte-née (comme je me le demande ici).
    Sans compter que les bons jeux se font peut-être plus rares qu’avant: non seulement, parce qu’à force de jouer, on a tendance à devenir plus exigeants. Mais aussi parce que la production vidéoludique augmentant massivement, comme pour l’industrie cinématographique, ce sont surtout les jeux merdiques qui en profitent le plus et qui se multiplient.
    Les bons jeux restent rares et ne connaissent pas une expansion similaire à celle des jeux pas terribles - mais ‘faut voir que c’est aussi la plus grande rentabilité de ces derniers (grâce à des coûts de développement bien moindres, notamment), qui permet ensuite de financer des projets plus audacieux - un mal nécessaire quoi.

    @ecaheti: le 64 bit, c’est encore un peu autre chose, et pas tout à fait le même problème - je veux dire par là que s’il semble mal exploité (mais peut-être même qu’il est de toute façon sans intérêt dans les jeux, en fait), il n’est pas sur le point d’être potentiellement remplacé par un éventuel 128 bit qui ne demanderait aucun travail supplémentaire de mise en place en amont, mais serait juste plus puissant.

    Quant au "Vais je encore passer a 2 doigts de me faire bannir (ouh j’ai peur) de ce blog pour violation de propriété intellectuelle?"
    Ce n’est pas tant ça que la flame-war que ça cachait (ma boîte mail s’en rappelle encore) qui aurait pu te valoir d’être banni.
    Mais bon, là n’est pas le sujet.
    Ici, on parle de toute autre chose, et en l’occurence tu n’as absolument rien fait qui pourrait justifier de telles mesures de ma part.
    Si jamais j’en venais à te bannir, ce serait pas parce que c’est toi ou parce que t’es le copain de X ou Y. Mais juste parce que tu aurais trollé à mort ou que sais-je.
    Bref, j’vais pas te bannir pour ce que tu es (ce serait con), mais pour ce que tu fais.
    Et comme là tu n’as rien fait, aucun problème.

    On arrête là et on clot le hors-sujet, si tu le veux bien.

  35. ecaheti dit :

    Ma demande sur le banissement etait plus une private (ouais, c est super private de troller sur un blog!) reference qu’autre chose tu sais!

    Pour en revenir au vif du sujet, meme si mes questions derivent hors du sujet "dual core", quel est le reel interet du 64bit?
    Je suis revenu dans la course a l armement bien apres la sortie des bouzins 64bit, et j’ai loupé pas mal de chose. Mon experience de programation sur microprocesseur m’a montré que le premier truc a augmenté pour ameliorer un processeur est la taille de son bus d’adresse : plus grand espace memoire adressable (je peu detailler si d’aucuns le souhaitent) donc plus de RAM, de disque, de périphérique and so on.
    Mais quand on parle de proco 64bit, c’est bien de la taille de ses registres de données dont on parle. On peut donc alors manipuler des données 2 fois plus grosses (64/32=2, pour ceux du fond qui suivent pas). Mais en pratique?
    Comment windows en tire parti? Si un programme a comme instruction "manipuler la donnée sur 32bit", aucun gain ne peux etre observé.
    On retombe donc sur le probleme classique : les programmes doivent etre adapté.

    Or quels sont ils ces putains de prog?

    Ca fait maintenant plusieurs années que les premiers 64bits sont sortis, et quel est l’état des lieux?
    Vista? Office 2007? les jeux? les applis pro?

  36. Mawwic dit :

    Ben dans les jeux, le 64 bits, pour l’instant (avec Vista, ça devrait changer, forcément) c’est clairement pas utilisé: à part FarCry et UT2004 qui ont connu des déclinaisons de ce type… et encore, la différence était pas démentielle; ‘faut dire aussi que la carte graphique intervient pour beaucoup, et qu’elle, le 64 bits, je suis pas certain que ça lui apporte beaucoup.

    Quant aux applis’ plus professionnelles, là, j’avoue que je n’en sais trop rien - j’crois bien avoir entendu que, sur des plate-formes "tout 64 bits" (Windows XP x64 etc.) on pouvait y gagner; mais bon, je me demande si c’est pas aussi très variable en fonction du logiciel.
    Bref, si quelqu’un a davantage d’infos’ sur ce point…

  37. darjul dit :

    "une fois qu’on l’a calculé pour deux cores, ça doit être possible, à l’aide de quelques variables, de pondérer tout ça pour que ça s’applique plus ou moins automatiquement à un nombre de cores supérieur, non ?"
    C’est loin, très loin, d’être aussi simple. Chaque moteur (et chaque jeu) a ses propres besoins. L’équilibrage du temps de travail de chaque proc/core ne se fait pas en direct-live mais à la conception. C’est d’ailleurs pour ça que ça sera toujours mieux optimisé sur console que sur PC. Le matériel étant fixe sur console, on sait parfaitement à l’avance sur quel proc/core on va faire tourner tel thread. Sur PC, il peut y avoir X processeur(s) à Y core(s). Donc, soit tu codes en fonction de toutes les possibilités (oublie de suite), soit tu codes en dur pour une seule possibilité. Et cette possibilité, c’est évidemment celle dont tu es sûr et certain qu’elle marche partout: mono-processeur mono-core, puisque même un PC bi-quadricore fonctionne aussi quand on utilise seulement … 1/8ème de sa capacité. C’est con mais c’est comme ça. Après attention à ne pas tout prendre au pied de la lettre! Dans la réalité, le programmeur va (ou devrait, n’oublie pas que ça dépend des moteurs et des jeux) s’apercevoir qu’il y a tant de procs/cores et tâcher de mettre au boulot tout le monde quand c’est possible. Mais souvent c’est laissé à l’appréciation du système (Windows). Le problème c’est que les threads ne sont généralement pas équilibrés correctement. Souvent on a plein de petits threads à la con qui font pas grand chose et un gros thread principal qui fait tout le boulot. Dès lors, avec un dualcore tu constates peu ou pas d’évolution des performances, puisque le second core passe son temps à gérer plein de threads qui font pratiquement rien. Typiquement, si tu as un core qui s’occupe d’un thread qui fait tout (IA, Physique, Graphique, Son, etc) et l’autre core qui s’occupe d’un thread qui checke si tu as pas débranché ton pad, d’après toi qu’est ce qui se passe? Bah c’est simple, toi exploites ton premier core à 100% et l’autre à 0.1%. C’est pas équilibré, et sur http://www.LaVéritéSurLeHardware.com on lit des trucs comme "le dualcore n’apporte rien". En apparence oui (les benchs qu’ils ont fait sur des jeux non optimisés multicore), mais en fait non. Faut que ça soit programmé pour et c’est pareil pour le 64bits. L’idéal c’est de réussir à découper le traitement du jeu en au moins autant de threads qu’on a de procs/cores, et surtout qu’ils nécéssitent tous la même charge de travail, le tout synchronisé pour qu’aucun thread n’attende un autre. Mais ça, c’est plus difficile à faire qu’à dire évidemment.

    Si tu veux en savoir plus, je te conseille ces documents:
    http://www.xbox.com/NR/rdonlyres/3FCB65F9-E9E5-45DB-B7F9-59A5EE265B8F/0/Xbox360Preparation.doc
    http://download.microsoft.com/download/5/b/e/5bec52bd-8f96-4137-a2ab-df6c7a2580b9/Coding_for_Multiple_Cores.ppt
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/coding_for_multiple_cores.asp

  38. jye dit :

    Un des probleme des xCores c’est la difficulté de gerer les bus de communication. Plus on augmente plus il faut s’assurer qu’on respecte des contraintes de synchro, de repartitions des traitements en memoire, de concurrences etc. Ca deja été dit peut etre mais j’ai la flemme de lire vos pavés. Donc le truc c’est que plus on augmente (dual core, quadri core etc) plus ca devient complexe au niveau de la gestion de la communication entre leurs caches etc

  39. Mawwic dit :

    @darjul: merci beaucoup !
    C’est donc effectivement plus complexe que ce que je pensais.

Laisser un commentaire

Si vous avez un compte sur WeFrag, connectez-vous pour publier un commentaire.

Vous pouvez, entre autres, utiliser les tags XHTML suivant :
<a href="" title="">...</a>,<b>...</b>,<blockquote cite="">...</blockquote>,<code>...</code>,<i>...</i>