Les gens ont donné ici d'excellentes réponses qui répondent directement à votre question, mais j'aimerais donner une réponse complémentaire pour expliquer plus en détail pourquoi les GPU sont si puissants pour cette application et d'autres.
Comme certains l'ont souligné, les GPU sont spécialement conçus pour être rapides avec les opérations mathématiques car dessiner des choses sur votre écran est entièrement mathématique (traçage des positions des sommets, manipulations de la matrice, mélange des valeurs RBG, lecture de l'espace de texture, etc.). Cependant, ce n'est pas vraiment le principal moteur du gain de performances. Le principal moteur est le parallélisme. Un processeur haut de gamme peut avoir 12 cœurs logiques, où un GPU haut de gamme contient quelque chose comme 3072.
Pour faire simple, nombre de cœurs logiques est égal au nombre total d'opérations simultanées pouvant avoir lieu sur un ensemble de données donné. Disons par exemple que je veux comparer ou obtenir la somme des valeurs de deux tableaux. Disons que la longueur du tableau est de 3072. Sur le processeur, je pourrais créer un nouveau tableau vide de la même longueur, puis générer 12 threads qui itéreraient sur les deux tableaux d'entrée à un pas égal au nombre de threads (12) et simultanément déverser la somme des valeurs dans le troisième tableau de sortie. Cela prendrait 256 itérations au total.
Cependant, avec le GPU, je pourrais à partir du CPU télécharger ces mêmes valeurs dans le GPU puis écrire un noyau qui pourrait avoir 3072 threads générés contre cela noyau en même temps et que l'opération entière soit terminée en une seule itération.
C'est pratique pour travailler sur toutes les données qui peuvent, de par leur nature, supporter le "travail" de manière parallélisable. Ce que j'essaie de dire, c'est que cela ne se limite pas aux outils de piratage / maléfiques. C'est pourquoi GPGPU devient de plus en plus populaire, des choses comme OpenCL, OpenMP et autres sont apparues parce que les gens ont réalisé que nous, les programmeurs, embourbons nos pauvres petits processeurs avec du travail quand il y a une puissance énorme plante assise dans le PC à peine utilisée en revanche. Ce n'est pas seulement pour le piratage de logiciels. Par exemple, une fois que j'ai écrit un programme CUDA élaboré qui a pris l'historique du loto pendant les 30 dernières années et calculé les probabilités de prix / gains avec des billets de diverses combinaisons de tous les numéros possibles avec un nombre variable de jeux par billet, parce que je pensais que c'était mieux. idée que d'utiliser ces excellentes compétences pour simplement trouver un emploi (c'est pour rire, mais c'est malheureusement aussi vrai).
Bien que je n'approuve pas nécessairement les personnes qui font la présentation, cette présentation donne une illustration très simple mais plutôt précise de la raison pour laquelle le GPU est si idéal pour tout ce qui peut être parallélisé, en particulier sans aucune forme de verrouillage (ce qui bloque d'autres threads, diminuant considérablement les effets positifs du parallélisme).