human
Pourquoi n'est-il pas facile pour un jeu d'utiliser tous les cœurs d'un CPU ? Lié à Ryzen Expliquez comme si j'avais cinq ans.
gpt
Ce n'est pas facile à expliquer aux gens qui ne connaissent rien à la programmation , mais la version courte est la suivante : parce que beaucoup de choses dans un logiciel ou un jeu doivent se dérouler de manière séquentielle , quelque chose que vous ne pouvez pas être sûr de se produire lors de l'utilisation de plusieurs cœurs. Si vous n'utilisez qu'un seul cœur, vous pouvez être sûr que A se produira avant B, donc le résultat de A est prêt quand vous en aurez besoin pour B, et le résultat de B sera prêt quand vous en aurez besoin pour C et D. Si vous utilisez plusieurs cœurs, vous ne pouvez pas être sûr que A se produira avant B, mais puisque B a besoin que A soit déjà fait, cela bloquera l'application jusqu'à ce que A soit terminé et que les calculs sur B commencent. Si l'un des autres cores est alors déjà lancé sur C, alors que le résultat de B n'est toujours pas fait, l'application se rebloquera jusqu'à ce que B soit fait... et ainsi de suite. Il y a bien sûr des moyens de contourner cela, mais la programmation pour un véritable support multicœur est beaucoup plus de travail que le support d'un seul cœur, comme une énorme quantité de travail supplémentaire. Beaucoup de jeux multi-cœurs ne sont même pas vraiment multi-cœurs. Ils sont conçus comme le ferait une application monocœur , où certaines parties qui ne sont pas sensibles au temps sont ensuite déchargées vers les autres cœurs . Par exemple, dans un jeu FPS, le moteur gfx/jeu et le système de position/visage/vue peuvent fonctionner sur un cœur, tandis que les mises à jour de l'interface utilisateur (santé, munitions, etc.) sont ensuite déchargées sur un autre cœur, car un joueur ne gagne pas. Ne remarquez pas si l'interface utilisateur est en retard de 0,03 seconde avec la mise à jour de votre nombre de munitions. Selon le jeu, plus ou moins de parties du jeu peuvent alors être déchargées vers d'autres cœurs.