Quelle est la différence entre un CPU et un GPU ? Lorsque j’allume mon ordinateur, il affiche des informations sur le GPU. Qu’est-ce que cela signifie ?


Une unité de traitement graphique (GPU) est un processeur à usage spécial, optimisé pour les calculs couramment (et répétitivement) requis pour l'infographie, en particulier les opérations SIMD.

Une unité centrale de traitement (CPU) est un processeur à usage général - elle peut en principe effectuer n'importe quel calcul, mais pas nécessairement de manière optimale pour un calcul donné. On peut faire du traitement graphique sur un CPU - mais il est probable qu'il ne produira le résultat nulle part aussi rapidement qu'un GPU correctement programmé.


Les raisons pour lesquelles on a au moins un de chaque dans le système informatique typique de nos jours est:

  • les ordinateurs qui interagissent directement avec les gens (c'est-à-dire. pas les serveurs) utilisent typiquement l'infographie de manière extensive pour le faire, et les calculs impliqués sont nombreux et doivent être faits en Temps Réel;
  • en ayant au moins un de chaque, on gagne un calcul parallèle & une plus grande performance du débit du système informatique : pendant que votre GPU fait des calculs pour les graphiques, votre CPU peut faire d'autres calculs non-graphiques en même temps.
  • La loi de Moore's nous a donné un tel embarras de richesses dans la zone et la capacité des puces de silicium à des prix si bas qu'il'est bon marché d'ajouter des processeurs à usage spécial de divers types presque partout dans l'architecture du système informatique de nos jours - souvent plusieurs d'entre eux, pour obtenir un meilleur débit & de meilleures performances en faisant plus de calculs différents en parallèle (en même temps).

    L'astuce consiste à les programmer tous pour qu'ils fonctionnent bien ensemble.

Il convient de noter qu'à partir de 2014, le GPU typique a un moteur SIMD plus expansif que le CPU typique, et donc si vos calculs non graphiques correspondent à ce type de modèle de calcul parallèle mais qu'ils submergent autrement un CPU's moteur(s) vectoriel(s) (par ex, AVX, Streaming SIMD Extensions (SSE)), vous avez tout intérêt à coder votre application avec Compute Unified Device Architecture (CUDA) et/ou OpenCL et à utiliser les GPU pour compléter votre application. C'est ce qu'on appelle plus génériquement le General Purpose GPU computing, une sous-discipline relativement nouvelle du High Performance Computing.