Les smartphones dotés de huit cœurs (octo-core) ont le vent en poupe ces derniers temps. Il suffit d’arpenter un salon dédié à la mobilité (ou tout simplement une boutique) et jeter un coup d’œil aux fiches techniques pour s’apercevoir que de nombreux mobiles intègrent un SoC composé d’un processeur octo-core. C’est en fait grâce à MediaTek, qui a permis – par l’intermédiaire de ses puces à bas coût – d’inclure des processeurs octo-core dans des smartphones bon marché. Malheureusement, on aurait aimé voir le département R&D de MediaTek se pencher sur d’autres sujets comme l’efficacité énergétique de chaque cœur. Pour mieux comprendre la problématique des processeurs multi-cœur sous Android, commençons par les bases.
L’augmentation des performances
Il y a différentes manières pour augmenter les performances d’une architecture processeur. La première, et la plus simple, est d’augmenter le nombre de cœurs. De cette manière, le processeur est capable de traiter plus d’informations en un cycle d’horloge (exprimé en Hz). Un processeur octo-core est ainsi capable, en théorie, de traiter 8 fois plus d’informations qu’un processeur mono-core. L’autre manière d’augmenter facilement les performances est d’augmenter la fréquence du processeur. Ainsi, un processeur cadencé à 2000 MHz est capable, en théorie, de traiter deux fois plus d’informations qu’un processeur cadencé à 1000 MHz. Mais c’est sans compter sur l’architecture même des cœurs et du processeur, capable d’influencer le nombre de tâches réalisables en un cycle d’horloge : on appelle ça l’IPC (Instructions Par Cycle). Ce dernier type d’optimisation réclame de longues heures et de nombreux dollars de R&D et on comprend donc mieux pourquoi les concepteurs de SoC préfèrent multiplier les cœurs plutôt que de créer leur propre cœur hautement optimisé.
Pourtant, un cœur optimisé vaut mieux que plusieurs cœurs peu optimisés. Nous l’avons déjà vu avec les cœurs Krait de Qualcomm qui disposent de performances plus élevées par cycle d’horloge comparé aux cœurs Cortex d’ARM, bien que les cœurs Krait soient basés sur le même jeu d’instruction que les Cortex. De nombreux éléments différencient ces cœurs, par exemple le fonctionnement du sous-système mémoire ou encore une meilleure prédiction de branchement. Ce sont notamment eux qui améliorent l’IPC d’un cœur (le nombre d’instructions réalisables en un cycle d’horloge).
Android et le multi-core
Android n’est pas le meilleur ami des processeurs multi-core. Il les supporte très bien, mais réclame un travail de la part des développeurs pour les prendre en charge de manière optimale. Lorsqu’un développeur crée son application, il découpe les différentes fonctionnalités en différentes tâches (thread). Chaque tâche sera réalisée par un seul et même cœur. Si plusieurs tâches sont réalisées en même temps, le processeur pourra faire appel à plusieurs cœurs. Encore faut-il que les développeurs multiplient les tâches, ce qui n’est pas toujours le cas. De plus, il est impossible de diviser son application en des milliers de tâches. Au final, les applications et les jeux disposent de quelques tâches en simultanées et exploitent donc assez mal les 8 cœurs d’un processeur octo-core.
Prenons le cas de Real Racing 3 qui constitue notre suite de benchmarks : le jeu n’utilise pas l’ensemble des cœurs d’un processeur octco-core et se limite plutôt à une lourde tâche et quelques petites tâches simultanées. Toutefois, OpenGL (l’API graphique du moteur graphique) a un comportement particulier puisque l’API parvient à se décomposer en de multiples tâches. Mais sur Real Racing 3, le processeur est loin d’être limitant puisque sa puissance est utilisée à moins de 50 % quel que soit le smartphone. C’est alors la puce graphique qui n’est pas assez puissante pour réussir à saturer le processeur. Sur les applications plus standards, comme Word, les tâches simultanées sont plus nombreuses, jusqu’à 8 sur le Kirin 930 du Huawei P8. Malgré tout, l’utilisation totale du processeur ne dépassait pas 30 %, ce qui prouve que la puissance disponible des cœurs n’est pas totalement utilisée et qu’il aurait été possible d’obtenir les mêmes performances avec un nombre de cœurs réduit.
Pour les performances, les octo-core ne sont pas forcément l’idéal
En 2013, Qualcomm se moquait ouvertement des concurrents qui proposaient huit cœurs quand le géant de San Diego se limitait à des processeurs quad-core. Une vidéo résume plutôt bien la situation. Pourtant, avec le Snapdragon 810, Qualcomm a mis de côté son argument marketing puisque c’est le premier processeur octo-core de la marque, équipé de cœurs Cortex d’ARM peu optimisés face aux Krait. Et les quelques mois de recul nous permettent aujourd’hui d’affirmer que ce SoC était une mauvaise idée, sortie de manière précipitée pour contrer la concurrence du point de vue marketing et proposer un processeur octo-core 64 bits.
https://www.youtube.com/watch?v=qdauwqhmsas
Il est donc clair que, pour les performances, il vaut mieux privilégier quelques cœurs performants à une multitude de cœurs peu performants sous Android. Mais les problématiques de consommation pourraient-elles changer la donne ? On peut se poser la question puisque les concepteurs de puces octo et déca-core mettent en avant l’efficacité énergétique de telles puces.
Des processeurs octo-core pour réduire la consommation
Prenons l’exemple du Helio X20 de MediaTek : on trouve deux cœurs Cortex-A72 pour les performances et deux groupes de quatre Cortex-A53 pour les tâches moins gourmandes. Les Cortex-A72 sont les plus énergivores et seront donc uniquement utilisés pour les tâches très gourmandes pour lesquelles les Cortex-A53 ne seraient pas adaptés, puisqu’ils mettraient trop de temps à réaliser l’opération, ce qui pourrait avoir pour effet une consommation finale plus élevée par rapport à celle des Cortex-A72. Les deux groupes de Cortex-A53 se distinguent par la fréquence des cœurs : 2 GHz pour le premier et 1,4 GHz pour le second. Ces derniers cœurs consommeront moins d’énergie que les premiers grâce à une tension (exprimée en volts) plus faible, car plus la fréquence est réduite et moins la tension nécessite d’être élevée pour alimenter les cœurs.
Mais pourquoi avoir créé ce deuxième groupe de faible consommation alors que le premier groupe aurait très bien pu fonctionner lui aussi à 1,4 GHz à la demande, selon la charge ?On imagine que MediaTek a agi de la même manière que HiSilicon avec le Kirin 930 qui utilise des Cortex-A53e à 2 GHz parallèlement à des Cortex-A53 à 1,5 GHz : les modifications physiques (mineures) réalisées pour atteindre une fréquence élevée ont conduit à augmenter mécaniquement la consommation des cœurs, même utilisés à faible fréquence.
L’architecture big.LITTLE pour réduire la consommation
L’intérêt n’est donc pas d’avoir des processeurs octo ou déca-core mais de posséder différents groupes de cœurs, utilisables selon la charge du système. Avec une faible charge processeur, seuls les Cortex-A53 sont utilisés tandis que les Cortex-A72 sont en veille, sans consommer d’énergie. A contrario, lors des fortes charges, ce sont les Cortex-A72 (ou A57) qui entrent en piste, laissant les Cortex-A53 se reposer. C’est là tout l’intérêt de l’architecture big.LITTLE d’ARM. Certaines fois, il est même possible de faire fonctionner l’ensemble des cœurs, lorsque cela se révèle nécessaire, avec la technologie HMP (Heterogeneous Multi-Processing).
On a pu voir sur l’Exynos 7420 qu’une telle architecture était plutôt efficace, avec de bonnes performances et une consommation contenue. Pourtant, Samsung n’utilise pas de cœurs maison, mais simplement les Cortex A53 et A57 d’ARM. On imagine alors que la gravure en 14nm a permis d’éviter une consommation excessive. Mais la multiplication des cœurs physiques à la manière du Helio X20 de MediaTek ne semble pas la meilleure solution, sur le long terme pour le rapport performance – consommation. On ne peut pas multiplier à l’infini le nombre de cœurs, notamment à cause des problématiques relatives à l’espace physique occupé sur le PCB.
Le multi-threading et le GPU Computing
Une piste d’amélioration serait l’arrivée du multi-threading au sein des cœurs mobiles, à l’image de ce qui se fait dans le monde PC avec l’hyper-threading d’Intel. L’idée est plutôt simple : un cœur multi-threadé est capable de traiter deux tâches simultanées, à la manière de deux cœurs. Un tel cœur est complexe à réaliser, mais a le mérite de consommer bien moins d’énergie que deux cœurs utilisés en simultané. ARM ne prévoit pas – sur le court terme – de développer des cœurs Cortex multi-threadés. On aimerait alors voir arriver ce type de cœur avec le Snapdragon 820 et ses futurs cœurs Kryo, remplaçants des Krait.
Sur le moyen terme, il est possible que le GPU Computing (aussi appelé Portable Heterogeneous Computing) permette de pallier l’absence de cœurs multi-threadés. Ici, l’idéée est d’utiliser la puce graphique pour réaliser des tâches normalement prises en charge par le processeur. Encore faut-il que l’efficacité énergétique soit bonne dans ces conditions. Il y a donc encore de nombreuses améliorations à venir dans le domaine de l’efficacité énergétique sans révolutionner le fonctionnement même d’un processeur.
Plus de cœurs = meilleure efficacité énergétique
En attendant l’arrivée du multi-threading et du GPU Computing dans la sphère mobile, on se contentera des processeurs massivement multi-cœurs. Mais attention à ne pas faire d’amalgame puisque les concepteurs de puces utilisent les nombreux cœurs afin d’augmenter l’efficacité énergétique et non pas pour augmenter les performances. Avec davantage de cœurs différents, le processeur est capable d’adapter sa puissance – et donc sa consommation – à différentes situations. Ainsi, il ne sera pas rare de croiser un processeur quad-core largement plus performant que le futur Helio X20 de MediaTek. On pense notamment aux excellents Snapdragon 801 et 805 de Qualcomm. En revanche, en termes de consommation instantanée, il est possible que le Helio X20 repasse devant. Pour l’efficacité énergétique (le rapport performances – consommation), c’est une autre histoire et il sera très difficile de réaliser des mesures précises. Il sera intéressant de voir si Qualcomm a développé deux types de cœurs différents pour son Snapdragon 820 pour proposer une puce octo-core ou si l’entreprise repart sur des processeurs quad-core dotés d’une très bonne efficacité énergétique.
Retrouvez un résumé du meilleur de l’actu tech tous les matins sur WhatsApp, c’est notre nouveau canal de discussion Frandroid que vous pouvez rejoindre dès maintenant !
salut, moi je voudrais savoir le plus puissant entre un qualcomm et un octa core? htc one m9 et tekno c9? merci
C'est quoi In order pour les consoles ? avantages.
Et merci pour cela !
En résumé les processeurs chaque année évolue et subissent de belle modification donc au final chaque année un processeur est théoriquement bien meilleurs . Après faut voir si l'OS en a vraiment besoin sachant que Android est au final très peu gourmand (tant pis pour ceux qui pensent le contraire) . On sais que par exemple sur bench si ton score antutu fait au moin 26 000 point c'est largement suffisant pour l'OS en général . Après ça ce joue surtout sur les jeux vidéo , gestion caméra et autre truc gourmand . Mais après on en a pas tous le même usage de notre appareil . Par exemple si tu joue qu'a Candy crush et surf sur le net (ainsi que passer des coup de fil sms et MMS) pas besoin d'un truc de malade quoi ;-)-------Envoyé depuis l'application Humanoid pour smartphone
Très bon article merci ! ça fait du bien ;-). Pour ceux celle qui défendent la pomme à ce que je vois vous avez toujours pas compris . Une puce 4 core consommera moin qu'une puce 2 coré c'est pour ça que nos appareil Android tiennent bien plus longtemps en autonomie qu'un iphone . Certe performance peut être similaire (ce dont je doute car nos puce 4Core sont en fait utiliser à peut être 40% de leurs capacité) tandis qu'un dual coré iPhone est utiliser a au moin 80% . C'est pour ça que j'ai jamais étais convaincu par les test bidon iphone vs Android (on va dire HTC One) . Je pense que nos processeur depuis 2013 sont largement suffisant et encore très mal exploité !! Après le reste c'est marketing faut toujours faire mieu chaque années même si ont laisse de coter les ancien excellent processeur de nos appareil . C'est prouver que du S600 au s800 au s805 les performance sont encore excellente . Mais y'a quand même des nouveautés comme le GPU qui est réviser ou qui évolue , la gestion RAM , ou même le passage du DDR 3 au DDR 4 et j'en passe . Mais on sais aussi que le multicore (plus de 4core) consomme moin c'est un fait ! Mediatek ont toujours était un poil meilleurs que Qualcomm niveau Conso énergétique mais Qualcomm explose Mediatek niveau performance etc !!! bref c'est un chemin sans fin . J'utilise depuis 2 mois un vieux moto X 2013 l'OS et le reste tourne à merveille mis a part qqe lag sur certain jeux (mais en online donc on ne sais pas vraiment si ça vient du serveur ou du mobile) sachant qu'il est en dual core Qualcomm s4 pro (réputé pour chauffé pas mal puis remplacer par les S600) . Bref avoir toujours plus c'est pas forcément utile mais ça fait avancer la technologie rapidement ;-).-------Envoyé depuis l'application Humanoid pour smartphone
Par puissance, j'entendais bien puissance / performances et non pas compatibilité matérielle avec les différentes API :)
Ca c'est si le jeux veut monter au max des FPS possible donc et du coup il va au taquet du GPU ? En fait quand je lisai "puissance" je l'interprétai en terme de capacité du GPU à couvrir plus ou moins de fonctions OpenGL nativement car il peut arriver que le CPU soit mis à contribution pour effectuer certains calculs OpenGL à la place du GPU et là ça bouffe du CPU. Parfois le jeu le détecte et réduit de lui même la qualité du rendu/effets pour ne garder ceux que le chipset OpenGL de la machine est capable de supporter nativement, soit il veut quand même utiliser un max d'effets et c'est le CPU qui va ramer pour effectuer le boulot à la place du GPU, enfin je sais pas si ça fonctionne encore comme ça aujourd'hui parceque ça fait un bail que j'ai pas mis le nez dans OpenGL (ou DirectX Windoze) D'où mon "si la puce graphique est suffisamment puissante pour que le CPU ne soit pas trop sollicité".
En l'état actuel, je dirais le S805 vu l'intégration désastreuses du 810. Mais l'Exynos 7420 est très bon.
Oui voilà :)
C'est exactement ma conclusion : de nombreux coeurs (peu puissants) pour l'éco d'énergie, des coeurs puissants (par ex un 4 + 4) pour les perfs et l'éco d'énergie. Et peu de coeurs (4) pour la puissance. Même si ces derniers tendent à disparaitre.
Pour la consommation, je faisais référence à la tension appliquée au CPU en volts, qui se traduit par une hausse, ou une baisse de la consommation. Pour le reste, le travail de simplification nécessite de passer à côtés de certains détails et situations à la marge. J'ai surtout voulu rendre accessible la compréhension des CPU multi-core au plus grand nombre et non pas en faire un article technique de référence pour les développeurs qui ont déjà les docs :D
Pour la deuxième partie (Real Racing 3), c'est ce qu'on appelle un système GPU limited.
Comme expliqué dans l'article, plus de 4 coeurs servent en général à améliorer l'efficacité énergétique du processeur, pas à augmenter la puissance (quoiqu'en utilisant le multi-fenêtres par exemple, cela peut être très utile).
C'est bien de faire des estimations à la louche, mais sans source, ça n'apporte rien. Si je suis d'accord qu'aucune (ou à peu près) application n'est monothreadée aujourd'hui (Android refuse de faire du réseau sur le thread de l'UI), sur toutes les applications dont j'ai pu voir le code source (certaines open-source, d'autres non, certaines de SSII, d'autres de grandes entreprises internationales…), l'écrasante majorité utilise deux threads. Un pour l'UI, un pour le reste, sans distinction. Passer d'un à deux cœurs, ok, c'est utile. Passer à 4 avec le système et les applications en arrière plan, passe encore, même si l'intérêt commence déjà à être vachement limité (si les applications en arrière-plan ou le système monopolisent un cœur, il y a un gros souci de conception). Mais 8 ?
Un fantroll :-)
Concernant le multithread, quasiment toutes les applications qu'on peut trouver sur un smartphone Android aujourd'hui utilisent plusieurs coeurs simultanément... et quand je dis quasiment, c'est qu'il faut chercher très longtemps sur le Play Store pour en trouver des monothreadées qui pourraient être accélérées en multithread. Donc augmenter le nombre de coeurs accélère effectivement un smartphone Android dans la plupart des cas (En passant de 2 à 4 coeurs, je dirais qu'on accélère 90% des applications, à la louche).
Je suis sûr que c'est un fanboy-troll. Il postait déjà avec se pseudo depuis un moment avant de faire ces publicités pourries...
Non, il a déjà posté sur d'autres topics et à chaque fois c'était pour lâcher des commentaires de gamins de 12 ans (avec la grammaire qui allait avec) pour vanter les bienfaits de son ZenFone 2 --'
Ça existe pas.
cf la phrase juste avant la Caméra. Si même le soft est différent entre les deux versions de HTC, aucun doute que le hard est différent, et je parle pas juste du SoC. Le combo RAM/eMMC est sans aucun doute différent entre les deux modèles, avec des timings différents, peut-être même un type de bus MMC différent. À lui seul, ce changement suffit à expliquer plus les latences observées que le scheduler.
PAVÉ CÉSAR, celui qui te lira quand il sera motivé te salue !
Lol :-) c'est un troll ou c'est vraiment Asus, tu penses ?
Oui A7 est in-order, tu ne m'apprends rien, tout comme A8 ou A53 ou nVidia Denver (grosse erreur à mon avis)...j'ai marqué qu'il était out of order quelque part? faute de frappe dans ce cas. A7 n'est pas un A8 allégé...il est 2 générations plus jeune. bien qu'il ne soit pas spécialement plus puissant, il intègre des choses absentes sur A8. Notamment une FPU plus moderne (que n'a d'ailleurs pas A9), un bus plus moderne permettant le multicoeur et big.LITTLE...Cherche des dual-core Cortex A8, ça n'existe tout simplement pas. A9 est out-of-order et ça se sent sur un dual-core face à A7...un puissance brute A7 à 1.2Ghz est à peu près équivalent à A9 à 1.0Ghz...Mais le dual A9 n'a pas les ralentissements ponctuels que tu constates sur un dual A7 Par contre quand tu prends un octo A7, le in-order, tu ne le sens plus du tout face au A9 Pour la caméra ce n'est pas la même application, soit, mais les autres applications? Je ne pense pas que ce soit le stagiaire de HTC qui ait pondu la machine virtuelle sur la version Qualcomm
La deuxième vidéo ne sert à rien. (ah de base je déteste les vidéo) C'est pas parce que les deux produits ont le même nom, que c'est les même. Des milliards de différences expliquent ces changements de vitesses autre que le CPU. Ce n'est même pas la même application Caméra ! À gauche on a l'application fournie par MTK, à droite, une application conçue par HTC (probablement codée à l'arrache par un stagiaire) Le seul intérêt d'avoir des coeurs asynchrones est de pouvoir réduire la consommation en usage "léger". Le S615 n'a clairement pas l'air de souffrir de ce genre de problèmes, donc on s'en fout. Et pour info, le Cortex-A7 est in-order... Le Cortex-A7 est un Cortex-A8 allégé. Si tu sens un Cortex-A7 comme plus performant qu'un Cortex-A9, c'est pour des milliards d'autres raisons que le CPU. (assez souvent, la RAM et l'eMMC)
Alors, c'est une question assez complexe, il y a plusieurs point de vue à prendre. C'est un cours de M1 à part entière, donc je vais essayer de faire au plus simple. Déjà, un programme "classique" a des dépendances entre chaque étape assez importante, par exemple on peut avoir comme suite d'instructions: f(b, c) = { 1. d = 0; 2. a = b+c 3. si(a == 0) d = 5; 4. sinon b = 3; 5. c = d + b; } On peut exécuter les lignes 1 et 2 en même temps, mais la 3 doit attendre la 2. La 3 doit être garantie d'être appliquée après la 1. La 4 doit attendre la 2, la 5 doit attendre la 3 et 4. Dans un processeur, il y a plusieurs niveau de mémoires (la question étant, où va-t-on stocker a,b,c,d ?): On a les registres du processeur, le niveau 0, local à un coeur, dont l'accès est instantané. On a le cache de niveau 1, local au coeur aussi, dont l'accès se fait en disons 10 cycles (donc à 1GHz, ça fait 10ns, là où faire le calcul b+c avec b et c en registre prend 1ns), le cache de niveau 2 partagé entre les coeurs dont la latence est disons de 40 cycles. Si on veut exécuter 1 et 2 en même temps chacun sur un coeur différent, ça va nous prendre donc 40 cycles, au lieu d'en prendre 2 si on attendait. Il faut savoir, que quand on dit qu'une instruction prend un cycle, c'est faux. Tous les processeurs modernes (entre autre tous les Android ayant existé, depuis le HTC G1) ont ce qui s'appelle un pipeline. Sur une machine dont le pipeline est désactivé (c'est purement fictif, en vrai c'est impossible à désactiver), le calcul effectif de l'instruction a = b + c va prendre plusieurs cycles, coupé en différentes étapes séquentielle, disons étape 1, étape 2, étape 3. Chaque étape correspond à un bout de silicum indépendant des autres étapes. Pour exécuter l'étape 2, on a besoin que du résultat de l'étape 1, donc pendant qu'on exécute l'étape 2, le silicum de l'étape 1 reste inutilisé. L'idée du pipeline est que au lieu de laisser l'étape 1 inutilisée, on envoie l'instruction suivante dans l'étape 1, comme ça quand l'étape 2 aura fini sur son instruction suivante, elle pourra repartir directement. Un petit schéma d'un pipeline à 5 étages: http://static.commentcamarche.net/www.commentcamarche.net/faq/images/1UTgg39b1YjV5ql6.png Chaque ligne, correspond à une instruction, chaque colonne correspond au numéro de cycle en cours. À la 5e colonne (t=5), la première instruction en est à l'étape ER, la deuxième à MEM, la troisième à EX, etc... Cette coupure de pipeline, permet de pouvoir augmenter la fréquence. Sans pipeline, le calcul de la fréquence max dépend du temps de l'ensemble (étape 1, étape 2, étape 3), alors qu'avec, c'est le max de (temps étape 1, temps étape 2, temps étape 3). En équilibrant bien le pipeline, on multiplie la fréquence de fonctionnement par trois. Mais, sur des architectures "haut de gamme" (Cortex-A9, Cortex-A15, Krait, Cortex-A57, Tegra, Intel Core iX, mais pas les atom, pas les Cortex-A7, pas les Cortex-A53), on a ce qui s'appelle une architecture superscalaire ( https://fr.wikipedia.org/wiki/Processeur_superscalaire ). On a plusieurs fois le silicium pour exécuter les étapes 1,2,3, mais en gardant les registres (le niveau 0) commun entre chaque morceau de silicium. Ensuite il existe des algorithmes implémentés en silicium (celui qu'on m'a appris est https://en.wikipedia.org/wiki/Tomasulo_algorithm), qui permettent de détecter quelles instructions peuvent être exécutées simultanément. Typiquement, le Cortex-A57 est "3-way superscalar", ce qui veut dire qu'il peut exécuter trois instructions simultanément. Néanmoins, ce que j'ai dit au début reste vrai: on ne peut pas toujours paralléliser à cause des dépendances, donc être 3-way superscalar ne permet pas d'être trois fois plus rapides, sauf à avoir des programmes conçu spécifiquement pour. Un Cortex-A57 a donc trois fois le silicium d'un Cortex-A53 rien qu'en pipeline, auquel on doit rajouter l'algorithme de gestion de dépendances (algorithme de Tomasulo), de la logique pour synchroniser les différents pipelines. J'ai pas réussi à trouver l'info, mais un Cortex-A57 doit à la louche être 5 fois plus gros (en terme de place occupée sur la puce (le prix d'une puce est directement proportionnel à la surface de la puce)) qu'un Cortex-A53, pour un doublement de performance le vent dans le dos. En performance mono-coeur, le Cortex-A57 explose un Cortex-A53, mais en ratio performance multi-thread sur surface, il se fait exploser. Pendant que j'y suis, le concept d'hyper-threading est orthogonal à ça: Le concept est de mettre des registres (le stockage niveau 0) en double, pour que quand le côté super-scalaire du processeur n'est pas complètement utilisé, on puisse essayer de le remplir avec d'autres instructions. TL;DR, c'est pas possible de répartir un programme sur plusieurs coeurs sauf à détruire les perfs, mais y en a qui font ça à l'intérieur même d'un coeur :-)
Pour le processeur bloqué, c'est la notion in-order/ou-of-order qui est importante...si tu as déjà eu des single core Cortex A8 en main, tu dois voir de quoi je parle, c'est assez flagrant. De même quand tu prends un mt6572 dual A7 à 1.2ghz et un vieux mt6577 dual A9 à 1.0ghz...les performances sont assez proches, mais le vieux mt6577 a beaucoup moins de toussotement que le 6572. Quand tu passes sur du quad A7 type mt6582, tu prends une première claque par rapport au 6572...et quand tu passes à l'octo 6592 tu en prends encore une petite. Effectivement, le problème ce n'est pas la PLL, c'est le Scheduler...un "in-demand" a de la latence...tu peux toujours changer en "performance", mais là ta batterie va pleurer! Pour illustrer la chose, un Cortex A7 est loin d'avoir les performance d'un Krait...et pourtant -> Vidéo https://www.youtube.com/watch?v=Ed1DBJEKezk Pour S615, il y a plusieurs problèmes...big.LITTLE de base avec seulement 2 clusters asynchrones Gestion de la mémoire moins efficace (on retrouve la même chose sur le S801, quand tu fais un test pur GPU type GFX-Bench, il écrase 6595...quand tu fais des tests in-game ou le CPU et le GPU fonctionnent, les 2 se retrouvent à égalité) Mt6752 c'est de l'asynchrone complet. La partie CPU chauffe probablement moins que sur S615 malgré une fréquence plus haute. Les résultats sont sans appel https://www.youtube.com/watch?v=NvJ5xnaO89Y Sur cette vidéo tu vois très clairement que la puce Mediatek retourne sur des applications déjà ouvertes beaucoup plus rapidement que S615 Par contre Mediatek a encore du boulot sur Android 5.0, parce que les performances ont baissé par rapport à 4.4
ce que je remarque surtout c'est que cet article confirme fait les bons choix en terme de processeur et qu'ils sont beaucoup plus performant que ces pseudos 8-coeur à plus de 2 ghz. Et que justement les fanboys android n'y connaissent que ça soit en programmation qu'en micro-électronique
Intéressant comme point de vue. À te lire, la multiplication des petits coeurs permet de faire ce que fait l'hyper-threading d'intel, ne pas monopoliser les ressources pour des tâches "bloquantes", ce qui parait pas aberrant (j'ai du mal avec le concept de processeur "bloqué", mais bon) Du coup, que penses tu du Snapdragon 620 (2x Cortex-A72 + 4x Cortex-A53 en HMP), ça parait être une bonne idée non ? (À condition qu'ils arrivent à avoir un scheduler qui tienne évidement). En ce qui concerne la fréquence de démarrage, je dis pipo. Une PLL ça met moins d'une milliseconde à se stabiliser. La seule latence qui peut apparaître du fait de ne pas démarrer à la bonne fréquence est au niveau du "scheduler" (je sais pas si y a un terme plus à propos pour parler du machin qui décide quel processeur allumer), ce qui se change très facilement. En ce qui concerne S615 vs MT6752, pour moi c'est plus ou moins les même problèmes que le S810. Mauvaise gestion de la châleur.
Pour moi, ARM a rattrapé les Krait avec leur Cortex-A57 (le C-A57 est donné pour 4.7DMIPS, le Krait 3.3DMIPS (https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures)), donc c'est un faux argument. Le throttling a l'air mal réglé sur les démos de gens qui sont pas content des S810 (ils ont pas l'air de savoir ce que c'est un assservissement les constructeurs), mais c'est tout. (À mon avis ils feraient mieux de couper des coeurs)
"C'est dépendant de l'architecture plus qu'autre chose. Dans la plupart des cas, les processeurs fonctionnent à une tension égale sur une architecture donnée, seule leur consommation (via l'intensité, et non pas la tension) augmente ou diminue." Là tu nous parles d'architectures qui ont 20 ans. Tous les smartphones Android depuis toujours ont eu des tensions variables, depuis le HTC G1.
sur chauffe non ? plus de coeur avec une fréquence basse chauffe moins qu'un coeur à haute fréquence ?<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
bravo pour le papier ( méme si certains ont relevé des erreurs...Champion les gars ^^ ) Mais voila l'exemple fragrant d'une fuite en avant.vous critiquez a longueur de journée les "mougeons" sur iPhone d'étre des teubés,de ne pas ouvrir les yeux sur ce systéme fermé. Mais lorsqu'on lit ce genre d'articles,je peux comprendre que certains soient pour le :" je m'occupe de rien,j'ai confiance et je veux que ça marche out the box". C'est assez hardu d'aller balancer cet article sur son mur FB ( 90% des amis vont étre largués ) Bref,cela fait partie de la sphére Android et c'est ainsi ( je ne critique pas,c'est trés interessant ) Funk sur Lumia 930.
Le souci, c'est que si on élève les multiples "sous Android", on se retrouve obligé de parler de ce qui se passe ailleurs. Tu sais, le monde moins debile ou deux cœurs permettent de faire plus de boulot, plus vite et en chauffant moins. C'est vexant. Gardons donc le "sous Android".
C'est peut etre pas la cas sur mobile, mais il me semble que la chose suivante est assez vraie sur PC : ce qui va déterminer les performances de ta machine, ce ne sera pas le composant le plus "costaud", mais au contraire le plus "faible". On parle d'un "bottleneck". Dans un jeu en particulier, le puce graphique et le processeur réalisent des opérations bien distinctes, et on ne peut pas "répartir la charge" entre les deux. Du coup, le premier des deux à atteindre les limites de ses performances (ici la puce graphique) va limiter les performances (FPS) de l'ensemble du systeme (Puisque le processeur ne peut pas réaliser les opérations propres à la puce graphique, il ne sert a rien de le faire travailler au maximum de ses capacités puisque l'on devra de toute facon attendre que la puce graphique finisse son travail pour afficher l'image). J'espere que c'est pas trop confus ^^.
le S810 est foireux ... Aurais tu le courage de dire le contraire ? La chauffe excessif du proco bride de énormément ses performances . Le S801 lui na pas ce problème il tourne a plein rendement et de plus se sont des Coeur krait
lourf<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
très bonne explication, avec beaucoup d'informations a traité mais je valide
clairement non.
même un S801 est plus performant qu'un S810
Utilité ? Aucune. Pourquoi alimenter plusieurs coeurs alors qu'un seul peut gérer la tâche ?
L'article transpire l'amateurisme malheureusement. On est vraiment dans la branlette geek-qui-apprend-nimportecomment-sur-le-web.
bravo pour cet article, en espérant en voir BEAUCOUP plus comme ça !!!!!! ☁☁☁☁☁☁☁ ☁??☁??☁ ??????? ??????? ??????? ☁?????☁ ☁☁???☁☁ ☁☁☁?☁☁☁ ☁☁☁☁☁☁☁ <i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
C'est étonnant qu'il n'y ait pas un processus qui repartissent les informations à traiter équitablement sur tous les cœurs... 0_o<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
donc Un S805 c'est mieux qu'un S810 ? Sachant que le S805 est basé sur des coeur krait alors que le 810 sur des coeur Arm.<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
De nombreuses chose avec lesquelles je ne suis pas d'accord... Et pas mal de précisions sont également manquantes....mais l'exercice n'est pas franchement facile La première : les Krait sont clairement moins bons que les Cortex A15 sortis quelques mois plus tard...c'est pour cela que Qualcomm utilise des fréquences importantes. Un S805 à 2.7hz (geekbench singlecore 1050pts) et par exemple moins bon qu'un Cortex A17 à 2.2Ghz (geekbench singlecore 1100pts)...et encore, les coeurs Qualcomm sont optimisés Geekbench qui est benchmark court souvent pris en référence...d'autres tests leurs sont plus désavantageux. Fréquence+coeur out-of-order (je vais y revenir) = montée en température plus importante...et du throttling même sur les S800/801/805. Mais bon tout le monde applaudit, du coup ils vont nous pondre du Kryo à 3.0Ghz!... Si Qualcomm a pris le pouvoir et fait disparaitre nombre de concurrents, c'est grâce à ses quelques mois d'avance gagnés du fait de ses coeurs propriétaires et surtout de la 4G (l'objet de l'enquête de la commission européenne pour abus de position dominante?) Et sur des tests Javascript ou html5, des Krait à 2.5Ghz se font même bouffés par des A17 à 1.8Ghz (test Vellamo édité par Qualcomm justement) ------------- L'efficacité CPU des octocores type Mt6592 est excellente...il suffit de mettre l'appareil en veille dans un coin et il tiendra très très longtemps. L'efficacité globale de la puce est par contre moins bonne, la faute au vieux Mali450mp4 qui est un gouffre au niveau consommation. ---------- Qualcomm a fait de la grosse propagande avec sa promotion guitar-hero-like. Ils négligent volontairement un tas de processus car ceux-ci demandent très peu de puissance et sont traités par les coeurs Krait out-of-order. Cette répartition est gérée logiciellement par le Scheduler...et le Scheduler d'une puce octocore in-order répartit bien plus les tâches que le Scheduler des quad-core out-of-order. Même dans des tâches très courantes et peu intensives, il n'est pas rare de voir 5 ou 6 coeurs fonctionner ------- Out-of-order = capacité à traiter les instructions du pipeline dans le désordre In-order = obligation de traiter les instructions du pipeline dans l'ordre Cette notion in-order/out-of-order est très importante car elle a plusieurs conséquences : - les pipelines ultra simplifiés des coeurs in-order en font des coeurs beaucoup plus petits : la surface occupée par un cortex A15 suffirait à intégrer 6 Cortex A17 pour moins de la moitié des performances à fréquence égale...la consommation et le coût sont liés à la surface du coeur...un octo A7 coute moins cher qu'un dual A15! - la saturation des coeurs in-order entraine des ralentissement, d'où l'intérêt plus grand d'en avoir 8 ------ Un autre point important est que certains octocores (mt6592 ou mt6752 puisque je les ai) sont tout à fait capable de couper totalement 7 coeurs sur les 8 présents...il en résulte que la consommation s'en retrouve encore diminuée. Justement, Qualcomm sur S615 n'arrive pas à ce résultats...sur les captures CPU-Z on voit clairement 2 groupes de fréquence...donc non, il n'est pas forcément facile de multiplier les coeurs. On voit que Qualcomm a beaucoup de foisonnement sur ses puces octocores, les résultats geekbench en multi sont mauvais. Un S615 avec 8 A53 (4x1.5ghz+4x1) fait environ 2600pts Mt6732 avec 4A53 (1.5Ghz) en fait 2100...à peine moins Mt6752 8A53 (1.7Ghz) en fait 4000 -------- Autre point, les consommation inférieure des A7 face à des Krait ont d'autre conséquences. La possibilité d'offrir des fréquences de démarrage supérieures..."Rien ne sert de courir, il faut partir à point". Quand un Krait de S600 démarre à 384Mhz, un mt6592 démarre à 728Mhz...Ceci donne une bonne réactivité sur l'ouverture des applications, certaines démarreront plus vite avec les petits Cortex A7 qu'avec les gros Krait "170% faster CPU performances", ouaip, mais par exemple, ta caméra s'ouvre plus vite sur un mt6592! -------- Ensuite l'IPC ne fait pas tout, on le voit bien sur nVidia K1...malgré 7 IPC et une fréquence de 2.5Ghz, les coeurs ont un rendement qui n'est pas extraordinaire. geekbench 1900/3200 L'iphone 6, 6 IPC à 1.4Ghz 1600/2800...en extrapolant la fréquence et les IPC on arriverait à 1600x7/6x2.5/1.4=3333pts sur un coeur!!!.....et non ce n'est pas l'OS qui est en cause, il suffit de regarder les résultats d'un iPad Mini avec les Cortex A9 d'Arm, il ne se comporte pas mieux que des puces équivalentes sous Android ------- Beaucoup de choses à dire...peut-être trop pour en faire un article... La conception relève de choix techniques (et stratégiques/commerciaux) avec chacun leurs avantages et leurs inconvénients.
Article très complet, il a du prendre du temps à faire ;-) "il vaut mieux privilégier quelques cœurs performants à une multitude de cœurs peu performants sous Android."... je suis d'accord sauf pour le "sous Android" peu importe les OS, que l'on soit sur smartphone ou PC la multiplication des coeurs ou pseudo-coeurs nécessite un certain boulot en terme de développement car toutes ces threads doivent se synchroniser "proprement" et travailler de concert sinon c'est la cata et on se retrouve avec des lenteurs là où l'on aurait espéré un gain de performances. Pour le Real Racing "C’est alors la puce graphique qui n’est pas assez puissante pour réussir à saturer le processeur", je ne suis pas d'accord (ou j'ai mal interprété la phrase) c'est plutôt l'inverse, la puce graphique est suffisamment puissante pour que le CPU ne soit pas trop sollicité.
Bon alors c'est quoi le mieux entre un Quad Core 2.7ghz ( S805 ) et un S810 ?? d'ailleur le schéma avec l'évolution des proco chez Samsung , je crois qu'il y a une erreur : d'ou le S600 fait 2.3ghz ? Pcq on a 1*1ghz/ 2*1,2ghz / 4*1,4ghz / 4*2,3ghz? ça c'est le S5 non ?<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
Ça a plus l'air d'être un gars de chez ASUS qu'un fanboy...-------Envoyé depuis l'application Humanoid pour smartphone
[…] Source: Frandroid Lien : Quelle utilité pour les processeurs multi-cœur sous Android ? […]
Clairement il y a un gros boulot qui a été fait sur l'article, je ne nie pas ça, au contraire. C'est juste dommage de laisser quelques petites erreurs ;-)
L'article se base essentiellement sur des architectures 4+4 au lieu des vrais 8 coeurs de mediatek L'article est donc biaisé et incomplet notamment dans la pratique ou, par exemple, un mt6592 fera tourner 6 coeurs sur certains jeux et mois dans d'autres. Et real racing étant le seul jeu benché et de plus un jeu très mal optimiser c'est pas la dessus qu'il faut compter Pour terminer un kirin 930 n'est pas équivalent à un helio x10 ou mt6752 puisque c'est du 4+4 et non du 8 vrais coeurs comme sur les mediatek. L'ensemble est censé faire la balance entre eco d'énergie et performances Il n'y a qu'à comparer un mt6582 et 6592, le constat est sans appel...
Je trouve super cette vulgarisation. C'est pas facile. Le travail est plutôt bien fait même s'il y a les approximations que vous soulevez. De même ce qui ma fait tiquer c'est : "Android n’est pas le meilleur ami des processeurs multi-core. Il les supporte très bien, mais réclame un travail de la part des développeurs pour les prendre en charge de manière optimale. Lorsqu’un développeur crée son application, il découpe les différentes fonctionnalités en différentes tâches (thread)" Je ne connais pas d'OS ou autre environnement qui ne demande pas de penser son code à base de thread pour profiter de cela.
Article très complet et intéressant. Je ne suis pas un expert en la matière donc il est parfois compliqué de tout suivre mais en étant attentif on apprend beaucoup de choses Bref, je suis POUR plus d'articles de ce genre . <i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour tablette</a></i>
Mec, on peut être un fan boy mais il y a un moment où il faut savoir s'arrêter --'
"Il y a différentes manières pour augmenter les performances d’une architecture processeur. La première, et la plus simple, est d’augmenter le nombre de cœurs." Techniquement, c'est faux. De plus, c'est potentiellement vrai dans le contexte d'une application multithreadée, mais une application monothread (calcul intensif par exemple) se comportera mieux sur un simple cœur à plus haute fréquence. " Malgré tout, l’utilisation totale du processeur ne dépassait pas 30 %, ce qui prouve que la puissance disponible des cœurs n’est pas totalement utilisée et qu’il aurait été possible d’obtenir les mêmes performances avec un nombre de cœurs réduit." Si un thread est bloquant, un cœur ne pourra pas forcément basculer. En multithread, une architecture multicore est plus optimale, et deux cœurs ne sont pas équivalents à un cœur à une fréquence deux fois plus importante. "car plus la fréquence est réduite et moins la tension nécessite d’être élevée pour alimenter les cœurs." C'est dépendant de l'architecture plus qu'autre chose. Dans la plupart des cas, les processeurs fonctionnent à une tension égale sur une architecture donnée, seule leur consommation (via l'intensité, et non pas la tension) augmente ou diminue. Si l'article soulève des points intéressants, il y a beaucoup d'approximations (pardonnables), et quelques erreurs (qui le sont moins)...
Mais casse-toi avec ta pub de merde !
Exclusivement sur FrAndroid Profitez jusqu'au 21 juillet 2015 d'une ZenPower à 1€ pour tout achat d'un ZenFone 2 ZE550 ou ZE551 sur l'ASUS Shop. N'attendez plus et faites-vous plaisir! (Ajoutez dans votre panier le ZenFone 2 ET la ZenPower pour bénéficier de l'offre.) Offre limitée, profitez en vite!<i>-------<a href="https://play.google.com/store/apps/details?id=com.frandroid.app">Envoyé depuis l'application FrAndroid pour smartphone</a></i>
Ce contenu est bloqué car vous n'avez pas accepté les cookies et autres traceurs. Ce contenu est fourni par Disqus.
Pour pouvoir le visualiser, vous devez accepter l'usage étant opéré par Disqus avec vos données qui pourront être utilisées pour les finalités suivantes : vous permettre de visualiser et de partager des contenus avec des médias sociaux, favoriser le développement et l'amélioration des produits d'Humanoid et de ses partenaires, vous afficher des publicités personnalisées par rapport à votre profil et activité, vous définir un profil publicitaire personnalisé, mesurer la performance des publicités et du contenu de ce site et mesurer l'audience de ce site (en savoir plus)
En cliquant sur « J’accepte tout », vous consentez aux finalités susmentionnées pour l’ensemble des cookies et autres traceurs déposés par Humanoid et ses partenaires.
Vous gardez la possibilité de retirer votre consentement à tout moment. Pour plus d’informations, nous vous invitons à prendre connaissance de notre Politique cookies.
Gérer mes choix