Réponse de TL; DR: les GPU ont beaucoup plus de cœurs de processeur que de processeurs, mais comme chaque cœur de processeur fonctionne beaucoup plus lentement qu'un cœur de processeur et ne possède pas les fonctionnalités nécessaires aux systèmes d'exploitation modernes, ils ne conviennent pas à la plupart des traitements quotidiens l'informatique. Ils conviennent mieux aux opérations gourmandes en ressources informatiques telles que le traitement vidéo et les simulations physiques.
GPGPU est encore un concept relativement nouveau. Les GPU étaient initialement utilisés pour le rendu des graphiques; à mesure que la technologie évoluait, le grand nombre de cœurs des GPU par rapport aux CPU était exploité en développant des capacités de calcul pour les GPU afin qu’ils puissent traiter simultanément de nombreux flux de données parallèles, quelles que soient leurs données. Bien que les GPU puissent avoir des centaines voire des milliers de processeurs de flux, ils fonctionnent chacun plus lentement qu'un cœur de processeur et ont moins de fonctionnalités (même s'ils sont complets et peuvent être programmés pour exécuter tout programme qu'un processeur peut exécuter). Les fonctionnalités manquantes dans les GPU incluent les interruptions et la mémoire virtuelle, nécessaires à la mise en œuvre d'un système d'exploitation moderne.
En d'autres termes, les CPU et les GPU ont des architectures très différentes qui les rendent mieux adaptés à différentes tâches. Un GPU peut traiter de grandes quantités de données dans de nombreux flux, en effectuant des opérations relativement simples, mais ne convient pas au traitement lourd ou complexe sur un ou plusieurs flux de données. Un processeur est beaucoup plus rapide sur chaque base (en termes d'instructions par seconde) et peut effectuer plus facilement des opérations complexes sur un ou plusieurs flux de données, mais ne peut pas gérer efficacement plusieurs flux simultanément.
Par conséquent, les GPU ne sont pas adaptés à la gestion de tâches ne bénéficiant pas ou ne pouvant pas être mises en parallèle de manière significative, y compris de nombreuses applications grand public courantes telles que les traitements de texte. De plus, les GPU utilisent une architecture fondamentalement différente. il faudrait programmer une application spécifiquement pour un GPU afin que celui-ci fonctionne, et des techniques très différentes sont nécessaires pour programmer les GPU. Ces différentes techniques incluent de nouveaux langages de programmation, des modifications de langages existants et de nouveaux paradigmes de programmation mieux adaptés à l'expression d'un calcul en tant qu'opération parallèle exécutée par de nombreux processeurs de flux. Pour plus d'informations sur les techniques nécessaires à la programmation de GPU, consultez les articles de Wikipedia sur le traitement de flux et le calcul parallèle .
Les GPU modernes sont capables d'effectuer des opérations vectorielles et de l'arithmétique à virgule flottante, avec les dernières cartes capables de manipuler des nombres à virgule flottante double précision. Des frameworks tels que CUDA et OpenCL permettent d’écrire des programmes pour les GPU, et leur nature les rendent plus adaptés aux opérations hautement parallélisables, telles que le calcul scientifique, où une série de cartes de calcul GPU spécialisées peut remplacer utilement un petit grappe de calcul comme dans NVIDIA Tesla Personal Supercomputers . Les consommateurs disposant de GPU modernes et expérimentés dans Folding @ home peuvent les utiliser pour contribuer aux clients GPU , qui peuvent effectuer des simulations de repliement de protéines à des vitesses très élevées et contribuer davantage de travail au projet (assurez-vous de lire la FAQd’abord, en particulier ceux liés aux GPU). Les GPU peuvent également permettre une meilleure simulation physique dans les jeux vidéo avec PhysX, accélérer l'encodage et le décodage vidéo et effectuer d'autres tâches gourmandes en ressources de calcul. Ce sont ces types de tâches que les GPU sont les mieux à même de réaliser.
AMD est à l’avant-garde d’une conception de processeur appelée unité de traitement accélérée (APU) qui combine des cœurs de processeur x86 classiques avec des GPU. Cette approche permet des performances graphiques largement supérieures aux solutions graphiques intégrées à la carte mère (bien qu’elles ne puissent pas être comparées à des GPU discrets plus onéreux), et permettent de créer un système compact et économique offrant de bonnes performances multimédias sans recourir à un GPU séparé. Les derniers processeurs Intel offrent également des graphiques intégrés sur puce, bien que les performances du GPU intégré concurrentiel soient actuellement limitées aux quelques puces avec Intel Iris Pro Graphics. Au fur et à mesure que la technologie progresse, nous verrons un degré croissant de convergence de ces composants autrefois distincts. AMD envisageun futur où CPU et GPU ne font qu'un, capable de travailler ensemble de manière transparente sur la même tâche .
Néanmoins, de nombreuses tâches exécutées par les systèmes d’exploitation et les applications PC conviennent toujours mieux aux processeurs, et il faut encore beaucoup de travail pour accélérer un programme à l’aide d’un GPU. Étant donné que de nombreux logiciels utilisent l’architecture x86 et que les GPU exigent différentes techniques de programmation et qu’il leur manque plusieurs fonctionnalités importantes nécessaires aux systèmes d’exploitation, il est très difficile de passer d’un processeur à l’autre à un GPU.