human
Pourquoi les CPU approchent de 4,5 gigahertz mais les GPU autour de 1 gigahertz sont encore assez courants mégahertz Veuillez expliquer comme si j'avais cinq ans.
gpt
Les GPU et les CPU sont des bêtes très différentes. Et tant qu'on y est, la vitesse d'horloge n'est pas un très bon indicateur des performances réelles d'un CPU. Il y a beaucoup de facteurs. la vitesse d'horloge nous indique la vitesse à laquelle les électrons traversent le circuit et s'installent. C'est ce qu'on appelle un cycle machine. Les processeurs ont un jeu d'instructions, c'est-à-dire un ensemble d'opérations de base qu'ils peuvent effectuer. Chaque opération nécessite un certain nombre de cycles machine. Ces opérations sont des choses comme " additionner " , " multiplier " , " et logique " ou " lire en mémoire " . attention à la dépendance vis-à-vis d'autres instructions ! (si l'instruction A ajoute deux nombres et que l'instruction B ajoute le résultat à un 3ème nombre, B doit attendre A ! mais si A ajoute deux nombres et B ajoute deux nombres différents, ils peuvent être capables de s'exécuter simultanément. Bon pipelining/optimisation peut le détecter ) Ainsi , le pipelining et l' optimisation sont importants . De nombreuses instructions , en particulier les lectures de mémoire , qui sont extrêmement importantes , et une bonne partie de ce qu'un programme fait à un moment donné , nécessitent plusieurs cycles machine pour s'exécuter . Et les lectures de mémoire sont très courantes. La vitesse de communication entre le processeur et la mémoire est donc très importante, car si les lectures de mémoire prennent moins de cycles machine, des programmes entiers s'exécuteront plus rapidement. Il existe également une mémoire spéciale sur la puce du CPU, appelée registres. La taille et le nombre de registres sont également extrêmement importants. Mais surtout, le programme en cours d'exécution et la façon dont il est optimisé pour le processeur auront probablement le plus d'impact sur les performances. La parallélisation est également importante , et de plus en plus , et c'est là que nous nous rattachons aux GPU . Un processeur exécute une instruction après l'autre (avec un peu de pipelining, mais le nombre de choses que vous pouvez faire en même temps avec le pipelining est limité, vous avez toujours besoin que les instructions se déroulent dans l'ordre). De nos jours, il existe plusieurs cœurs, ce qui signifie qu'il y a deux processeurs ou plus qui peuvent exécuter leurs propres instructions en séquence. Vous pouvez faire deux ou plusieurs choses à la fois. Cela nécessite une branche de programmation plus complexe appelée " programmation parallèle " pour en tirer pleinement parti . (Les processeurs peuvent également avoir des threads, ce qui signifie essentiellement qu'un processeur exécute deux listes d'instructions en les entrelaçant rapidement). Les GPU sont les processeurs parallèles ultimes. Contrairement à un CPU, un GPU ne repose pas sur l'exécution rapide d'une liste d'instructions dans l'ordre, mais exécute BEAUCOUP d'instructions simultanément. Potentiellement des milliers à la fois. Cela signifie que les choses pour lesquelles ils sont adaptés sont différentes. Tandis qu'un processeur convient aux opérations séquentielles (série) où les instructions ultérieures dépendent des résultats des instructions précédentes, les GPU conviennent aux problèmes où il n'y a pas beaucoup de dépendance. Comme les graphismes. Si vous souhaitez mettre à jour rapidement chaque pixel à l'écran en 1/60e de seconde, ou faire un tas de calculs matriciels pour les jeux 3D (avez-vous vu le premier article sur /r/askscience sur l'algèbre linéaire aujourd'hui ?), vous ne Je ne veux pas qu'un processeur effectue des millions d'opérations séquentielles. Vous voulez qu'un GPU effectue quelques opérations massivement parallèles. C'est une description de haut niveau de la différence