Exynos 7420: multitâche, multi-core et multitraitement

Exynos 7 OctaL'un des processeurs de smartphones les plus populaires à l'heure actuelle est le Samsung Exynos 7420, principalement parce qu'il est le processeur utilisé par Samsung pour sa gamme actuelle des appareils haut de gamme, y compris le Galaxy S6 Samsung, le Samsung Galaxy S6 + Edge, et le Samsung Galaxy Remarque 5. Le Exynos 7420 est un processeur OCTA-core qui signifie qu'il a 8 cœurs de processeurs, dont chacun est capable d'exécuter une tâche en parallèle avec d'autres tâches en cours d'exécution sur les autres noyaux.

Avec 8 cœurs et la possibilité d'exécuter 8 tâches en parallèle, il est important de comprendre le niveau de parallélisation est offert par cette CPU de haute performance.

Résumer

Plus tôt cette année je l'ai écrit deux articles de fond sur la nature de multitraitement sur Android et spécifiquement sur les processeurs ARM. Le premier article a démystifié le mythe que Les applications Android utilisent un seul cœur de CPU, tandis que le second a regardé comment le Galaxy S6 Samsung utilise son processeur OCTA-core.

Les deux bits de la recherche ont montré comment Android utilise la nature parallèle (multi-core) de processeurs modernes. Exynos de Samsung 7420 est un processeur à base ARM avec haut-hétérogène Multi-Processing (HMP). En général, les processeurs quad-core trouvés dans tout ce que des ordinateurs de bureau pour les smartphones ont un ensemble de noyaux qui sont tous égaux en termes de leur performance et de consommation d'énergie. Dans un processeur de HMP, tous les noyaux sont égaux (d'où hétérogène). L'Exynos 7420 a un cluster de cœurs Cortex-A57 et une grappe de cœurs Cortex-A53. Le A57 est un noyau de haute performance, tandis que l'A53 a une plus grande efficacité énergétique. Cet arrangement est connu comme big.LITTLE, où les "grands" cœurs de processeur Cortex-A57 () sont combinées avec des cœurs de processeur «petit» (Cortex-A53).

Mec Parfait 2: grand vs PEU (avec des reflets)

Mec Parfait 2: grand vs PEU (avec des reflets)

Lorsque les tâches sont exécutées sur les noyaux peu qu'ils utilisent moins d'énergie, ils drainent la batterie moins, mais ils peuvent courir un peu plus lent. Lorsque les tâches sont exécutées sur les grands noyaux, ils terminent plus tôt, mais ils utilisent plus de batterie pour le faire.

Une fois que nous comprenons que tous les noyaux sont égaux, il est alors intéressant de voir comment Android utilise ces noyaux et quel niveau de traitement simultané se produit, et sur lequel noyaux, grand ou petit?

Workload Automation

Mes tests précédents utilisent un outil, que je moi-même écrit, afin de déterminer comment la CPU est utilisé. Il utilise les différents éléments d'information sur l'activité du noyau Linux qui sont rendues disponibles par l'intermédiaire du / proc / stat fichier. Cependant, il présente un inconvénient. Étant donné que les données sur l'utilisation du processeur est généré par scrutin / proc / stat cela signifie que certaines tâches peuvent sembler être parallèle quand en fait ils ne sont pas.

L'intervalle d'interrogation est d'environ un six de seconde (soit environ 160 millisecondes). Si un noyau affiche son utilisation est de 25% en ce que 160 millisecondes et rapporte un autre noyau son utilisation est de 25% alors les graphes montrera les deux cœurs fonctionnant simultanément à 25%. Toutefois, il est possible que le premier noyau a couru à 25% d'utilisation pendant 80 millisecondes, puis le second noyau a couru à 25% d'utilisation pour 80 millisecondes.

Pour approfondir la nature parallèle des Exynos 7420, je suis passé d'utiliser mon propre outil à l'open source Outil Workload Automation. Écrit par ARM il est conçu pour exécuter les tests qui exercent le CPU sur les appareils Android et Linux. L'essentiel est qu'il supporte le traceur interne du noyau Linux connu comme ftrace.

Cela signifie que les informations sur la programmation exacte des cœurs de processeur peut être extrait directement du plus profond de lui-même le noyau Linux. Le résultat est que l'intervalle scrutin faiblesse de mon outil de l'utilisation du processeur est éliminé.

navigation sur le Web

Si je devais vous demander quelle est la tâche la plus ardue que le CPU de votre smartphone exécute, vous pourriez penser qu'il serait un jeu comme Modern Combat 5 ou 8 asphalte, et vous auriez raison dans une certaine mesure. Cependant, la chose à propos de grands jeux 3D est qu'ils chargent le GPU tout autant (voire plus) que le CPU. Bien que le CPU est utilisé assez fortement pendant les jeux 3D, une grande partie de la charge de travail est traitée ailleurs. Si nous sommes à la recherche d'un emploi qui rend la CPU suer un peu, il est en fait la navigation web!



Voici une série de graphiques qui montrent comment la CPU est utilisé lorsque vous naviguez sur le site Autorité Android utilisant Chrome:

wa-parallèle-chrome-aa

Il existe trois graphes. Le premier sur le haut à gauche montre comment les quatre cœurs Cortex-A53 sont utilisés pendant 90 secondes de navigation sur le Web. Comme vous pouvez le voir par 18% du temps aucun des noyaux sont utilisés, de manière efficace le cluster de cœurs Cortex-A53 est inactif. Pour 19% de la base de temps 1 est utilisé, 18% du temps 2 noyaux sont utilisés en parallèle, 3 noyaux pour 19%, et 4 cœurs pour 24% du temps.

Le graphique en haut à droite montre les mêmes données, mais maintenant pour le groupe de grands cœurs Cortex-A57. Pour près de 60% du temps un gros noyau est utilisé et 14% du temps 2 noyaux sont en cours d'utilisation. En fait, plus de 80% du temps 1 ou plusieurs cœurs Cortex-A57 sont utilisés.

Le graphique en bas montre le niveau global de parallélisation dans tous les cœurs de processeur. Pour moins de 4% du temps l'ensemble de la CPU est inactif, pour 15% de la base de temps 1 est utilisé, 2 carottes 16%, et ainsi de suite. Ce qui est intéressant est que plus de 20% du temps 5 conducteurs sont utilisés en parallèle.

Si l'Exynos 7420 est un processeur quad-core puis l'ordonnanceur au cœur du noyau Linux ne serait pas ont la possibilité d'utiliser 5 conducteurs simultanément.

Si l'Exynos 7420 est un processeur quad-core puis l'ordonnanceur au cœur du noyau Linux ne serait pas ont la possibilité d'utiliser 5 conducteurs simultanément. Plus que cela, il ya des moments où 6, 7 et tous les 8 cores du CPU sont utilisées en parallèle.

La situation est similaire pour Firefox, mais pas la même:

wa-parallèle-firefox-aa

Comme vous pouvez le voir, Firefox utilise principalement 2 et 3 noyaux en parallèle, mais pour environ 10% du temps, il utilise plus de 4 cœurs. Pour Chrome, grands cœurs Cortex-A57 ont été utilisés plus de 80% du temps, pour Firefox qui nombre grimpe à plus de 90% du temps.

Nous ne devrions pas sous-estimer les capacités des coeurs Cortex-A53.

À ce stade, vous pensez peut-être, si bien Chrome et Firefox utilisent les grands noyaux fortement alors pourquoi ne pas construire une unité centrale avec seulement quatre cœurs Cortex-A57 et laisser le Cortex-A53 noyaux sur tout? La réponse est que les grands noyaux utilisent plus de vie de la batterie et de la façon dont fonctionne big.LITTLE est qu'ils ne sont appelés en cas de besoin. Les petits noyaux sont encore utilisés pour environ 75% de la charge de travail et, comme nous le verrons bientôt, certaines charges de travail ne sont même pas utiliser les grands cœurs!

Youtube

Bien que nous parlons de grands noyaux et peu de noyaux, nous ne devrions pas sous-estimer les capacités des coeurs Cortex-A53. Ils sont 64 bits complètes unités de traitement qui peut effectuer exactement les mêmes opérations que les plus grands cœurs Cortex-A57, mais ils ont été conçus pour avoir une plus grande efficacité énergétique. Cependant, pour certaines tâches, le Cortex-A53 est plus que suffisant.

Voici les données capturées lors de la diffusion d'une vidéo 720p YouTube sur Wi-Fi:



wa-parallèle-youtube-aa

Comme vous pouvez le voir, tout le travail est effectué par des noyaux Cortex-A53. Depuis le décodage vidéo est effectivement réalisé par le GPU ou un décodeur vidéo matériel, la CPU est seul responsable de la connexion Wi-Fi, pour obtenir les données de transmission en continu à partir d'Internet, et pour charger les bons bits de mémoire pour le décodeur vidéo pour attaquer la trame suivante. Le résultat de cette charge "relativement facile" est que les grands noyaux dorment essentiellement tout le temps. En fait, les cœurs Cortex-A53 passent près d'un quart de leur temps de repos ainsi!

Jeux

Donc, si l'application YouTube utilise uniquement les cœurs Cortex-A53, car une grande partie du travail de la vidéo se fait par un matériel dédié, ce qui ne signifie que pour les jeux? Utilisent-ils le Cortex-A57 du tout? Ci-dessous trois ensembles de graphiques pour trois applications de jeux: 8 asphalte, Epic Citadel, et Crossy routières:

Si vous regardez ces graphiques, vous verrez qu'il ya une tendance générale. Pour la plupart des jeux utilisent 1 à 3 noyaux du processeur et parfois haute à l'aide de 4 ou 5 conducteurs simultanément. Les noyaux Cortex-A53 sont utilisés pour environ 60% à 70% du temps, avec les noyaux ralenti pendant un quart et un tiers du temps. Toutefois, les grands noyaux ne sont pas assis les bras croisés, comme YouTube. Ce que nous voyons est que Asphalt 8 et Epic Citadel utilisent une grande base pour au moins la moitié du temps, et que même Crossy route a tendance à pencher sur au moins un grand coeur. Ceci est parce que le jeu est une activité plus complexe que le streaming vidéo. Beaucoup d'objets de jeu pour créer, manipuler et de suivre. Il est probable que le noyau Cortex-A57 actif est utilisé pour les tâches les plus complexes réalisées par la CPU et les petits noyaux pour le reste.

Autres charges de travail

Je ai également testé Gmail, Amazon Shopping, et Flickr. Cependant, avant de nous regardons ceux qui, je tiens à attirer votre attention sur l'application Microsoft Word pour Android:

wa-parallèle mot-aa

Comme vous pouvez voir l'application Parole se comporte comme beaucoup d'autres applications. Il utilise un mélange des noyaux Cortex-A53 et Cortex-A57 et il passe beaucoup de temps au ralenti, en raison de la nature de l'application. Cependant, ce qui est intéressant est que lorsque l'application a quelque chose à faire, comme la création d'un nouveau document, il peut utiliser les 8 cœurs de processeur. En fait, il semble que lorsqu'il est occupé, il saute directement à partir de l'utilisation de deux ou trois noyaux jusqu'à 8. La quantité de temps qu'il utilise 5, 6, 7 ou noyaux est bien inférieur au temps qu'il utilise 8 noyaux.

Comme pour les autres applications, voici leurs graphiques pour votre lecture:

Conclure

Les résultats de ce test est globalement en ligne avec mes tests précédents et encore souligne le caractère parallèle de Android et Android. Il met également en évidence la puissance de hétérogène Multi-Processing et comment les petits noyaux sont utilisés pour la plupart des emplois et les grands noyaux sont appelés pour le levage de charges lourdes.

Ne sous-estimez le rôle du GPU et autre matériel vidéo.

Ces données montrent également à quel point un puissant processeur Exynos 7420 est la. A aucun moment l'Exynos 7420 étant invité à travailler trop dur, et il ya beaucoup de moments d'attente (qui sont bons car il signifie que la puissance de la batterie minimale est utilisé). Cela étant le cas, il serait intéressant de voir comment fonctionne HMP dans d'autres combinaisons autres que seulement 4 + 4. Par exemple, la LG G4 utilise un processeur hexa-core, le Snapdragon 808, plutôt que d'un processeur OCTA-core. La 808 utilise deux cœurs Cortex-A57 et A53 quatre noyaux. Ou à l'autre extrême, comment travaille dans HMP le deca-core Helio X20 de MediaTek.

Enfin, nous ne devons jamais sous-estimer le rôle de la GPU et autre matériel vidéo. Tant le test YouTube et les tests de jeux montrent l'importance de la partie graphique du SoC.

Alors, quelles sont vos pensées sur hétérogène Multi-Processing, big.LITTLE, processeurs OCTA-core, les processeurs hexa-core, les processeurs déca-Core et l'Exynos 7420? S'il vous plaît laissez-moi savoir dans les commentaires ci-dessous.




» » Exynos 7420: multitâche, multi-core et multitraitement