Comment les FPGA offrent-ils un parallélisme de pipeline profond?

gpuguy

Comment les FPGA offrent-ils un parallélisme de pipeline profond?


En lisant le PPT ici (dernière diapositive), j’ai trouvé la déclaration selon laquelle les FPGA ont un parallélisme de pipeline profond. J’ai compris la signification du parallélisme de pipeline profond, mais quelqu’un peut-il expliquer comment cela est réellement réalisé dans le FPGA (peut-être du point de vue de l’architecture ou de l’algorithme)?

Réponses


 Martin Thompson

Fondamentalement, les FPGA ont beaucoup, beaucoup de registres. Et beaucoup de minuscules blocs de RAM qui peuvent également être utiles pour certains pipelines.

Si vous pouvez décomposer votre algorithme en plusieurs petites étapes avec un registre à la fin de chaque étape, vous pouvez introduire une nouvelle valeur de données à chaque tick d’horloge. Au cours de chaque cycle d’horloge, l’ensemble de l’algorithme est exécuté, mais chaque partie est effectuée sur un « morceau » différent des données d’entrée. Une fois que l’horloge a coché suffisamment de fois pour couvrir le nombre d’étapes de registre dans votre pipeline, la réponse pour les données entrées il y a tant de tiques sort.

L’ajout d’étapes de registre pour exécuter plusieurs threads est également appelé ralentissement c .


 markt

  1. Créez une logique en pipeline qui exécute une fonction particulière.
  2. Répliquez cette logique plusieurs fois.
  3. Répartissez le flux de données d’entrée entre les copies logiques.
  4. Réassemblez les données de sortie des copies logiques dans un flux de sortie contigu.

Idéalement, un équilibre optimal d’utilisation du débit -v- logique sera atteint.

Martin Thompson

Ma compréhension du parallélisme de piplining profond est le contraire – vous ne créez pas beaucoup de répliques logiques et ne les distribuez pas au flux de données.

markt

@MartinThompson Je fais juste référence au PPT auquel l’OP est lié, qui montre assez clairement un certain nombre de répliques logiques parallèles (p. 6). Je ne sais pas comment vous allez obtenir le parallélisme dans ces scénarios sans répliques, peut-être pouvez-vous expliquer?

Martin Thompson

La diapositive 17 indique que la réplication est inefficace et inutile. Et pour créer un algorithme profondément pipeline (ce que j’ai tenté de décrire dans ma réponse). Ceci est démontré sur les diapositives suivantes. Ou ai-je manqué votre point?

markt

J’ai compris qu’ils proposaient à la fois le pipelining et le parallélisme pour obtenir une augmentation des performances; si votre seul souci est le débit, et non l’utilisation des ressources FPGA, multiplier le débit en deux dimensions pour contourner les limites imposées par la vitesse d’horloge est une solution acceptable.

Martin Thompson

Ce que vous dites est vrai, mais dans le contexte de la question (« comment faire du parallélisme en profondeur? »), La réplication logique est un redingue. Le parallélisme en profondeur (il me semble) concerne uniquement l’exécution de plusieurs threads via un seul pipeline.

 

#de, comment, FPGA, Les, offrent-ils, parallélisme, Pipeline, profond, un

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *