Il me semble que de nos jours, de nombreux calculs sont effectués sur le GPU. Il est évident que les graphiques y sont réalisés, mais l'utilisation de CUDA et d'autres outils similaires, l'IA, les algorithmes de hachage (pensez aux bitcoins) et autres sont également réalisés sur le GPU. Pourquoi ne pouvons-nous pas simplement nous débarrasser du CPU et utiliser le GPU seul ? Qu'est-ce qui rend le GPU tellement plus rapide que le CPU ?
Ouaip, un pas en avant, deux pas en arrière.
3 votes
Comment puis-je savoir quelles réponses contiennent des informations correctes ? Devrais-je attendre que d'autres votent les réponses en haut ou en bas ? Je pense que j'ai été trop hâtif en acceptant une réponse :O
14 votes
Il y a maintenant quelques réponses récentes @ell, qui ne contiennent pas de "désinformation". Elles montent progressivement vers le haut avec des votes positifs en raison du mécanisme de marché efficace du StackExchange merveilleusement conçu ;-) Je vous suggère d'attendre un peu plus longtemps avant d'accepter une réponse. On dirait que c'est ce que vous faites avec beaucoup de prudence. C'est une bonne question, d'ailleurs. Elle peut sembler évidente, mais elle ne l'est pas du tout. Merci de l'avoir posée !
0 votes
Il n'y a aucune raison pour laquelle on ne pourrait pas, par exemple, créer un JITC Java pour un GPU, du point de vue de la génération de code. De plus, la plupart du code du système d'exploitation est maintenant écrit en C/C++, qui peut être facilement reciblé. On n'est donc pas lié à l'héritage x86 de manière vraiment significative (sauf si vous utilisez Windoze). Le problème est que peu de GPU (si tant est qu'il y en ait) sont bons pour le traitement général.
0 votes
@DanH Sauf que Java est un mauvais langage, spécifiquement pour créer des programmes qui ont un haut niveau de parallélisme. Nous avons besoin de langages courants, comme la programmation fonctionnelle, où le parallélisme est la façon naturelle d'exprimer tout programme. De plus, les langages de programmation doivent être bien adaptés pour fonctionner avec une très petite quantité de mémoire pour chaque unité de calcul, car c'est là que le GPU est efficace. Comme mentionné dans la question, il n'y a que quelques problèmes tels que l'IA et autres qui font cela naturellement sans un nouveau langage de programmation.
0 votes
Mais vous n'avez pas besoin d'exécuter Java. Le fait est que vous n'êtes pas enchaîné à une architecture de processeur. Quant à un nouveau langage pour le traitement parallèle, cela fait peut-être 30 ans que l'on essaie d'en inventer un, sans faire de progrès significatifs. Alors qu'après 30 ans de développement de langages de programmation séquentiels, nous avions Fortran, COBOL, Modula-2, C, Pascal, Ada, PL/I, C++, et une foule d'autres.
1 votes
Question connexe de Stack Overflow : Pourquoi ne programmons-nous pas sur le GPU ?
135 votes
C'est un peu comme demander "Si le Boeing 747 est plus rapide et plus économe en carburant, pourquoi continuons-nous à conduire des voitures" ?
0 votes
Cela vous rappelle-t-il quelque chose (RISC vs. CISC) ?
8 votes
Non, parce que ce n'est pas RISC contre CISC. C'est l'un des autres fondamentaux de l'informatique, légèrement déguisé. C'est "Pourquoi déchargeons-nous le travail du processeur central sur les processeurs d'E/S ?" .
1 votes
@vartec en tant que développeur CUDA chevronné, je pense que c'est l'analogie la plus précise que j'ai jamais vu, haut la main. Je garde celui-là :)
6 votes
@vartec : Je pense qu'une analogie légèrement meilleure pourrait être entre les bus et les taxis. S'il y a quarante personnes qui veulent toutes aller du même endroit au même endroit, un bus sera beaucoup plus efficace. S'il y a quarante personnes dont les origines et destinations souhaitées sont très dispersées, même un seul taxi peut être aussi efficace qu'un bus, et pour le coût du bus, on pourrait avoir plusieurs taxis.
0 votes
Comme pour toutes les questions techniques importantes, Mybusters a abordé cette question (Et ce n'est pas une mauvaise analogie)
0 votes
En rapport : La différence entre le GPU et le CPU