Apport du FPGA / GPU

programmation parallele

a marqué ce sujet comme résolu.

Salut, j’ai compris que le FPGA faisait du calcul parallele. Quelle difference avec un GPU ? NPU Neural Processing Unit ? Apport pour l' IA et l’ordinateur quantique ?

et question bonus : quel est l' équivalent du langage d’assemblage et assembleur , linkeur , debuguer pour le FPGA ?

+0 -0

Bonjour,

Un FPGA ne fait pas de calcul en lui même, c’est un ensemble de LUT et de bascule que l’on peut câbler comme on veut pour réaliser à peut près n’importe quel circuit numérique. Le circuit numérique ainsi implémenté dans le FPGA lui fait bien le calcul que tu veux, et même séquentiellement si ça te chante (ce serait contre-productif mais possible).

La différente avec un GPU c’est que tu fais le circuit que tu veux, un GPU lui a un grand nombre de petit circuits particulièrement optimisés pour le calcul de rendu 3D. Ces circuits sont plus où moins indépendants les uns des autres ce qui permet de paralléliser beaucoup de calcul. Cela a été développé à la base pour accélérer le rendu 3D, mais ça reste très efficace si tes calculs ont les mêmes caractéristiques qu’un rendu 3D, c’est à dire si tu as toujours les mêmes calculs ou presque à faire sur un grand nombre de données indépendantes (paradigme SIMD).

Je ne sais pas vraiment ce qu’est un NPU donc je ne peux pas répondre de manière pertinente.

De ma compréhension, l’apport des FPGA pour l’IA n’est pas très intéressant en dehors des phases de prototypage (comme de coutume avec les FPGA d’ailleurs…). Une fois les circuits nécessaires clairement identités, on fera des puces spécialisées type GPU, TPU, etc..

L’ordinateur quantique ça n’existe pas encore en dehors de quelques essais en laboratoire et si on peut certainement trouver du contenu de qualité sur le sujet je suis de mon côté pas assez calé sur le sujet pour séparer le grain de l’ivraie.

Enfin pour tes questions bonus: il n’y a pas d’équivalent de langage d’assemblage pour un FPGA car on ne donne pas des instructions à une machine, on décrit un circuit. Après il est vrai que l’on décrit généralement les circuit avec un langage de plus haut niveau (un HDL) et que au final on a un fichier binaire à aller charger dans le FPGA pour qu’il se comporte comme le circuit décrit. Les étapes successives pour passer du HDL au bitstream peuvent être vaguement mise en regard de celles nécessaire à l’élaboration d’un exécutable depuis son code source mais ce n’est qu’une analogie. Je veux bien essayer de m’y risquer si ça t’intéresse mais en vrai pour bien saisir ce qu’il se passe il faut suivre un cours d’électronique numérique.

+4 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte