COMPTOIR
register

Les GPU et l'IA : un couple pas si parfait à l'avenir ?

En voici une nouvelle à contre-courant. Alors qu'NVIDIA roule sa bosse à la Apple avec sa gamme Turing on ne peut plus élitiste, le vent pourrait tourner. En effet, si la firme introduit actuellement deux nouvelles technologies avec les Ray Tracing Cores pour le rendu en lancer de rayons, et les Tensor Cores pour l'IA, il faut garder en tête que ces unités ont été ajoutée grâce à l'avance du géant vert sur son concurrent rouge depuis quelques générations. Cependant - et particulièrement en informatique - la roue tourne.

 

Si les GPU sont actuellement les rois des algorithmes de machine learning, les analystes prédisent une augmentation des solution dédiées pour les années à venir. Le compromis n'est pas nouveau : en perdant en flexibilité des unités de calcul, les performances grimpent ; certaines estimations suggèrent un facteur 100 de différence par rapport aux solutions actuelles.

 

deep learning puces evolution

Les GPU suivent une croissance soutenue, mais perdent en part de marché relative (prévisions selon Tractica)

 

Depuis l'apparition des premières bases de données d'apprentissage, la puissance nécessaire pour entraîner un algorithme de machine learning sur la plus volumineuse de ces bases a doublé tous les 3,5 mois, encore pire que les fonkeries au comptoir ! Pour faire face à cette demande, on comprend donc pourquoi les ASIC - l’implémentation en dur d'un programme sur silicium - ressorte favori de cette compétition. Cependant, un autre acteur des plus discret actuellement semble un bon candidat ; les FPGA. A mi-chemin entre GPU et ASIC, ces unités logiques reprogrammables ont déjà montré leur potentiel lors des premières écumes des vagues bitcoin, avant de succomber aux ASIC, plus rentable sur une production de masse. A l'heure actuelle, leur programmation demeure des plus ardue, ce qui en fait un frein notable à son expansion.

 

Cela reste à prendre avec beaucoup de recul : il ne s'agit que de prévisions, et rien n'est plus dur à prédire que l'arrivée de nouvelles machines. Il se pourrait également qu'NVIDIA, fort de sa position de leader, propose par la suite des produits spécialisés IA uniquement composés de tensor cores, voire même des ASIC, histoire de se grignoter une part de lion dans les quelques 66 milliards de dollars que représenterons ce marché d'ici 2025. Pourtant les concurrents ne manquent pas : entre Intel, Google, Microsoft et moult start-up telles Wave Computing, la bataille fait rage ! (Source : SemiEngineering)

Un poil avant ?

Texas Instrument fournit plus de jus à l'USB-C

Un peu plus tard ...

Chouette, la VR se fait enfin sans fil chez HTC, mais à quel prix ?

Les 13 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Moe Szyslak du Grand Est, le Jeudi 04 Octobre 2018 à 11h46  
par Un ragoteur qui draille en Auvergne-Rhône-Alpes le Lundi 01 Octobre 2018 à 10h54
Faux! Un ASIC n'est pas programmable bien qu'il puisse exécuter un programme.
#DivideByZero

Le plus marrant, c'est que si je me fie aux définitions trouvées vite fait, "programmable" est largement moins restrictif que "capable d'exécuter un programme", puisque les exemples parlent de "thermostat programmable" (configurable, en réalité, et déjà loin d'un µcode qui a ce fameux rôle de configuration dans un CPU et éventuellement un GPU) par exemple, ça c'est de la high-tech...
par Un ragoteur qui draille en Auvergne-Rhône-Alpes, le Lundi 01 Octobre 2018 à 10h54  
par Moe Szyslak du Grand Est le Lundi 01 Octobre 2018 à 07h45
GPU = ASIC, avec un joli détournement de son application de prédilection pour le HPC mais bel et bien programmable.
Faux! Un ASIC n'est pas programmable bien qu'il puisse exécuter un programme.

Un microcontrôleur est programmable car il peut recevoir un programme dans sa mémoire interne (i.e. EEPROM). Un FPGA n'est pas programmable mais configurable bien que sa configuration réside en mémoire externe, celle-ci effectue des connexions logiques interne permettant de réaliser un circuit numérique.

Plus généralement, un ordinateur est programmable car il peut recevoir un programme stocké sur HDD ou SSD interne. La programmabilité d'un système ne peut que se limiter aux composants qui le définissent.
par Moe Szyslak du Grand Est, le Lundi 01 Octobre 2018 à 07h45  
par Un ragoteur macagneur en Auvergne-Rhône-Alpes le Mercredi 26 Septembre 2018 à 23h40
Dans tes rêves oui...

Personne ne reconfigure la logique de son CPU en GPU et vice versa car tout est cablé pour ne réaliser que des taches prédéfinies dans une optique de performance.
GPU = ASIC, avec un joli détournement de son application de prédilection pour le HPC mais bel et bien programmable.

Il existe plusieurs types d'ASICs plus ou moins souples dans ce qu'on peut en faire, mais dernièrement la programmabilité a pris le pas très largement sur l'économie (genre juste la RAM suffisante pour stocker le framebuffer et du scratchpad de pile pwal 1 bloc de données, au point d'ailleurs d'utiliser une compression delta dans les GPU).

Là où il faut faire une distinction, c'est plutôt entre ASIC et FPGA, le premier reposant sur le logiciel pour se configurer, le second sur un reroutage hardware (en pratique, par contre, je doute de plus en plus de la différence).
par Un ragoteur macagneur en Auvergne-Rhône-Alpes, le Mercredi 26 Septembre 2018 à 23h40  
par Un ragoteur qui aime les en Île-de-France le Mercredi 26 Septembre 2018 à 11h05
Un ASIC peut être programmable, juste en passant.
Dans tes rêves oui...

Personne ne reconfigure la logique de son CPU en GPU et vice versa car tout est cablé pour ne réaliser que des taches prédéfinies dans une optique de performance.

La conception d'un ASIC nécessite une très grande attention car une fois la logique gravée dans le silicium il n'est plus possible de revenir en arrière.

Par ailleurs, il est plutôt courant d'évaluer la logique en première approche sur FPGA avant une éventuelle conversion en ASIC pour raison de coût (cf. gros volumes) et/ou de performance (cf. application critique).
par Un ragoteur qui aime les en Île-de-France, le Mercredi 26 Septembre 2018 à 11h05  
Un ASIC peut être programmable, juste en passant.
par UpsiloNIX, le Mercredi 26 Septembre 2018 à 06h52  
par willow57 le Mardi 25 Septembre 2018 à 20h45
En gros tu veux faire des gpu à 2000€

Les tensors servent à l'IA. Nvidia les utilise dans les gpus gamers car il en a trouvé une utilité avec le dlss et surement d'autres ensuite comme pour les agos d'upscale de vidéos et peut être ensuite pour les jeux. Un tensor core dans son domaine est largement plus puissant qu'un cuda core. Suffit de voir volta en ray tracing vs pascal en ray tracing et pourtant les tensor cores ne sont pas faits pour le ray tracing.
Pourquoi à 2000€ ? Celui qui veut du DLSS paiera plus cher, tous ceux qui n'en veulent pas payeront moins cher ou auront de meilleures performances en jeux.
Ce ne sont pas les tensors qui sont utilisés pour le RT mais les RT cores.
par Un ragoteur tout mignon en Auvergne-Rhône-Alpes, le Mercredi 26 Septembre 2018 à 05h39  
 

Cependant, un autre acteur des plus discret actuellement semble un bon candidat ; les FPGA. A mi-chemin entre GPU et ASIC, ces unités logiques reprogrammables ont déjà montré leur potentiel lors des premières écumes des vagues bitcoin, avant de succomber aux ASIC, plus rentable sur une production de masse. A l'heure actuelle, leur programmation demeure des plus ardu, ce qui en fait un frein notable à son expansion.


Je suis toujours autant sidéré par la dégénération intellectuelle que la sous-culture gratuite pour tous sur la toile a produite depuis les deux dernières décennies...

Depuis quand un GPU n'est pas un Application Specific Integrated Circuit?

Par ailleurs, la programmation d'un FPGA n'est ni un frein ni difficile puisqu'il s'agit de transférer la logique binaire (i.e. fichier de configuration) dans une EEPROM.

Le principal frein d'un FPGA c'est surtout ses performances significativement plus faibles qu'un ASIC (i.e. logique cablée) du fait des pertes dans les interconnexions logiques qui lui confère sa programmabilité.
par Zoroastre, le Mardi 25 Septembre 2018 à 21h13  
par willow57 le Mardi 25 Septembre 2018 à 20h45
En gros tu veux faire des gpu à 2000€

Les tensors servent à l'IA. Nvidia les utilise dans les gpus gamers car il en a trouvé une utilité avec le dlss et surement d'autres ensuite comme pour les agos d'upscale de vidéos et peut être ensuite pour les jeux. Un tensor core dans son domaine est largement plus puissant qu'un cuda core. Suffit de voir volta en ray tracing vs pascal en ray tracing et pourtant les tensor cores ne sont pas faits pour le ray tracing.
Les Rt core il me semble que se sont des tensors a peine bidouillé
par willow57, le Mardi 25 Septembre 2018 à 20h45  
par UpsiloNIX le Mardi 25 Septembre 2018 à 16h32
Je suis plutôt d'accord avec toi sur ce point. Néanmoins je suis mitigé sur l'intérêt d'avoir des Tensor sur un GPU. OK Nvidia veut s'en servir pour le DLSS, et d'après leur graphes montre que il y a un gain significatif => Néanmoins ce gain serait peut-être également atteint avec des CUDA à la place de ces tensors + un AA classique.
Ou des perfs bien meilleurs avec l'AA désactivé. Aujourd'hui si le DLSS n'est pas implémenté, les tensors ne servent à rien pour un joueur.
Pour moi, Nvidia devrait vendre des carte avec CUDA + RTX, et des carte avec Tensor + CUDA (à proportionner correctement en fonction des besoins des algos de Deep Learning, mais probablement une majorité de Tensor).
Ca permet d'augmenter le rapport perf/prix en virant des unités quasi inutiles. Et s'ils veulent vraiment pousser le DLSS et qu'ils pensent que ça a un bel avenir => La carte Tensor + Cuda pourrait être ajoutée en plus de la RTX comme ASIC DLSS à côté du GPU.
En gros tu veux faire des gpu à 2000€

Les tensors servent à l'IA. Nvidia les utilise dans les gpus gamers car il en a trouvé une utilité avec le dlss et surement d'autres ensuite comme pour les agos d'upscale de vidéos et peut être ensuite pour les jeux. Un tensor core dans son domaine est largement plus puissant qu'un cuda core. Suffit de voir volta en ray tracing vs pascal en ray tracing et pourtant les tensor cores ne sont pas faits pour le ray tracing.
par Nicolas D., le Mardi 25 Septembre 2018 à 20h08  
par Jemporte le Mardi 25 Septembre 2018 à 16h14
Pour ce qui est de Nvidia, on peut considérer que leur partie tenseurs et leur partie RTX se comportent comme deux ASICS joints à un GPU Pascal un peu plus gonflé en cores, d'où ma critique à leur égard. Pour un GPU c'est toujours mieux de préserver la souplesse ET la puissance de calcul, pour suivre l'évolution. C'est je crois (j'espère) l'approche que devrait maintenir AMD sur la Vega 20.
Effectivement je te rejoins sur ce point, c'est un mélange de trois choses, avec leur backend proprio pour faire tourner le truc ; du Apple en somme...
par UpsiloNIX le Mardi 25 Septembre 2018 à 16h32
Pour moi, Nvidia devrait vendre des carte avec CUDA + RTX, et des carte avec Tensor + CUDA à proportionner correctement en fonction des besoins des algos de Deep Learning, mais probablement une majorité de Tensor).
Ca permet d'augmenter le rapport perf/prix en virant des unités quasi inutiles. Et s'ils veulent vraiment pousser le DLSS et qu'ils pensent que ça a un bel avenir => La carte Tensor + Cuda pourrait être ajoutée en plus de la RTX comme ASIC DLSS à côté du GPU.
Dans un monde parfait ou faire un GPU est peu coûteux ! C'est plus simple de maketer du deep learning pour tous. Mais il faut accorder qu'une des principales application du ML, c'est bien dans le traitement d'image. Un film de post-production en deep learning sur un rendu GPU, il y a vraiment de quoi rajouter un sacré réalisme... encore faut-il que l'algo tienne la route derrière.
Avoir deux cartes graphiques comme ça c'est un coup à saturer les bus de communication et se taper une maxi latence, je pense que ça reste peu probable.
par UpsiloNIX, le Mardi 25 Septembre 2018 à 16h32  
par Jemporte le Mardi 25 Septembre 2018 à 16h14
Pour ce qui est de Nvidia, on peut considérer que leur partie tenseurs et leur partie RTX se comportent comme deux ASICS joints à un GPU Pascal un peu plus gonflé en cores, d'où ma critique à leur égard. Pour un GPU c'est toujours mieux de préserver la souplesse ET la puissance de calcul, pour suivre l'évolution. C'est je crois (j'espère) l'approche que devrait maintenir AMD sur la Vega 20.
Je suis plutôt d'accord avec toi sur ce point. Néanmoins je suis mitigé sur l'intérêt d'avoir des Tensor sur un GPU. OK Nvidia veut s'en servir pour le DLSS, et d'après leur graphes montre que il y a un gain significatif => Néanmoins ce gain serait peut-être également atteint avec des CUDA à la place de ces tensors + un AA classique.
Ou des perfs bien meilleurs avec l'AA désactivé. Aujourd'hui si le DLSS n'est pas implémenté, les tensors ne servent à rien pour un joueur.
Pour moi, Nvidia devrait vendre des carte avec CUDA + RTX, et des carte avec Tensor + CUDA (à proportionner correctement en fonction des besoins des algos de Deep Learning, mais probablement une majorité de Tensor).
Ca permet d'augmenter le rapport perf/prix en virant des unités quasi inutiles. Et s'ils veulent vraiment pousser le DLSS et qu'ils pensent que ça a un bel avenir => La carte Tensor + Cuda pourrait être ajoutée en plus de la RTX comme ASIC DLSS à côté du GPU.
par TwoFace, le Mardi 25 Septembre 2018 à 16h27  
Faudra déjà voir comment va faire AMD pour faire du RT et les perfs qu'ils auront à mettre en face des Turing...