human
Quelle est exactement la différence entre les « cœurs » et les « threads » sur un processeur ? Je vois que certains processeurs ont des cœurs égaux aux threads, mais certains ont deux fois plus de threads que de cœurs. Quels sont les fils ici ? Explique comme si j'avais cinq ans.
gpt
Dans un cœur de processeur, divers types de calculs sont en fait effectués dans des parties physiquement différentes du processeur. Par exemple , l' arithmétique entière s'exécute sur une partie différente du silicium que l' arithmétique à virgule flottante ( décimale ) . Un processeur avec plusieurs threads en profite en laissant deux programmes s'exécuter sur un seul cœur de processeur en même temps tant que les deux programmes n'ont pas besoin de faire le même type d'instruction en même temps. C'est pourquoi l'exécution de deux threads sur un seul cœur ne double généralement pas les performances, car si les deux programmes essaient de faire de l'arithmétique entière en même temps, par exemple, ils doivent s'attendre l'un l'autre. Pour le rendre plus ELI5, imaginez qu'un cœur de CPU est une cuisine. Un programme qui veut s'exécuter est une recette qui doit être préparée. Les différentes parties d'un cœur de CPU sont les différentes zones de la cuisine. Vous n'avez qu'1 four , 1 cuisinière , 1 planche à découper , etc . L'ajout de noyaux supplémentaires revient à ajouter une cuisine supplémentaire entière. Ajouter des threads CPU à un cœur revient à ajouter un autre chef dans la cuisine. Bien sûr , vous pouvez maintenant cuisiner plusieurs plats dans cette cuisine , mais seulement tant qu'ils ne veulent pas tous les deux le four en même temps . EDIT : Pour l'anecdote, je travaillais beaucoup avec [POV-Ray] (URL_0), une application gratuite de rendu 3D open-source. Dans mon i7-3770 à 4 cœurs (8 threads), si je dis à POV-Ray de ne fonctionner qu'avec 4 threads, il n'utilise donc qu'un seul thread dans chaque cœur, puis exécute 8 threads complets, il ne gagne qu'environ 10 % de vitesse augmenter parce que l'extrême majorité du travail de POV-Ray est des calculs en virgule flottante, il ne peut donc pas tirer efficacement parti d'un cœur de processeur multi-thread.