Politecnico di Milano
Développement d'applications cloud accélérées par FPGA avec SDAccel : Théorie

Offrez à votre carrière le cadeau de Coursera Plus avec $160 de réduction, facturé annuellement. Économisez aujourd’hui.

Politecnico di Milano

Développement d'applications cloud accélérées par FPGA avec SDAccel : Théorie

4 033 déjà inscrits

Inclus avec Coursera Plus

Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
4.7

(76 avis)

niveau Intermédiaire

Expérience recommandée

19 heures pour terminer
3 semaines à 6 heures par semaine
Planning flexible
Apprenez à votre propre rythme
Obtenez un aperçu d'un sujet et apprenez les principes fondamentaux.
4.7

(76 avis)

niveau Intermédiaire

Expérience recommandée

19 heures pour terminer
3 semaines à 6 heures par semaine
Planning flexible
Apprenez à votre propre rythme

Ce que vous apprendrez

  • La théorie sur la façon de développer des applications accélérées par FPGA avec SDAccel.

Compétences que vous acquerrez

  • Catégorie : Principes de programmation
  • Catégorie : Architecture des ordinateurs
  • Catégorie : Concepts des langages de programmation

Détails à connaître

Certificat partageable

Ajouter à votre profil LinkedIn

Évaluations

7 devoirs

Enseigné en Anglais

Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées

Emplacement réservé
Emplacement réservé

Obtenez un certificat professionnel

Ajoutez cette qualification à votre profil LinkedIn ou à votre CV

Partagez-le sur les réseaux sociaux et dans votre évaluation de performance

Emplacement réservé

Il y a 6 modules dans ce cours

Depuis le milieu des années 1980, l'informatique reconfigurable est devenue un domaine populaire grâce aux progrès de la technologie FPGA. Un FPGA est un dispositif semi-conducteur contenant des composants logiques programmables et des interconnexions programmables, mais pas de récupération d'instructions au moment de l'exécution, c'est-à-dire que les FPGA n'ont pas de compteur de programme. Dans la plupart des FPGA, les composants logiques peuvent être programmés pour reproduire la fonctionnalité des portes logiques de base ou des propriétés intellectuelles (IP) fonctionnelles. Les FPGA comprennent également des éléments de mémoire composés de simples bascules ou de blocs de mémoire plus complexes. Ainsi, les FPGA ont rendu possible l'exécution et la configuration dynamiques du matériel et du logiciel sur une seule puce. Ce module fournit une description détaillée des technologies FPGA, depuis une description générale jusqu'à la discussion sur les détails de configuration de bas niveau de ces dispositifs, en passant par la composition du flux binaire et la description des registres de configuration.

Inclus

9 vidéos2 devoirs

L'environnement de développement SDAccel de Xilinx permet à l'utilisateur d'exprimer des noyaux en OpenCL C, C++ et RTL (par exemple SystemVerilog, Verilog ou VHDL) pour les exécuter sur les plates-formes programmables de Xilinx. La plate-forme programmable est composée (1) du compilateur de code ouvert SDAccel Xilinx (XOCC), (2) d'une archive de support de dispositif (DSA) qui décrit la plate-forme matérielle, (3) d'une plate-forme logicielle, (4) d'une carte accélératrice, et5. enfin et surtout, du moteur d'exécution SDAccel OpenCL. Dans ce module, après une introduction à OpenCL, nous allons voir comment ce langage a été utilisé dans SDAccel et les principaux "composants" de cette chaîne d'outils.

Inclus

7 vidéos1 lecture1 devoir

Dans ce module, avant d'aborder l'optimisation, nous allons d'abord comprendre comment fonctionne un FPGA, également d'un point de vue informatique. Bien que le flux de conception traditionnel d'un FPGA soit plus proche d'un circuit intégré classique que d'un processeur, un FPGA offre des avantages significatifs en termes de coûts par rapport à l'effort de développement d'un circuit intégré et offre le même niveau de performance dans la plupart des cas. Un autre avantage du FPGA par rapport au circuit intégré est sa capacité à être reconfiguré dynamiquement. Ce processus, qui est identique au chargement d'un programme dans un processeur, peut affecter une partie ou la totalité des ressources disponibles dans le tissu FPGA. Par rapport aux architectures de processeurs, les structures qui composent le tissu FPGA permettent un haut degré de parallélisme dans l'exécution des applications. L'architecture de traitement personnalisée générée par SDAccel pour un noyau OpenCL présente un paradigme d'exécution différent. Ceci doit être pris en compte lorsque l'on décide de porter une application d'un processeur vers un FPGA. Pour mieux comprendre un tel scénario, nous allons brièvement comparer l'exécution séquentielle d'un processeur avec la nature parallèle intrinsèque d'une implémentation FPGA. En outre, dans ce module, nous allons nous familiariser avec le flux d'optimisation de l'application. L'environnement SDAccel de Xilinx est un environnement de développement logiciel complet, pour créer, compiler et optimiser les applications OpenCL avec l'objectif d'être accélérées sur les FPGA de Xilinx. Du point de vue du concepteur, nous pouvons organiser le flux d'optimisation d'une application dans l'environnement SDAccel en trois phases. Ces trois phases sont les suivantes (1) la définition de base des fonctionnalités et des performances, (2) l'optimisation du mouvement des données et (3) l'optimisation du calcul du noyau

Inclus

5 vidéos1 lecture1 devoir

Les optimisations présentées ne sont pas les seules disponibles, mais il s'agit plutôt d'une liste de recommandations pour optimiser les performances d'une application OpenCL qui doit être utilisée comme point de départ pour des idées à considérer ou à étudier plus avant. Dans ce contexte, nous organiserons ces "recommandations" en trois ensembles d'optimisations : (1) optimisations arithmétiques, (2) optimisations liées aux données, et enfin (3) optimisations liées à la mémoire.

Inclus

6 vidéos2 lectures1 devoir

Après une description générale des optimisations possibles, nous nous concentrerons dans ce module sur quatre optimisations spécifiques (1) loop unrolling, (2) loop pipelining, (3) array partitioning et (4) the host optimisations. Tout d'abord, nous décrirons le loop unrolling, qui consiste à dérouler les itérations de la boucle de sorte que le nombre d'itérations de la boucle soit réduit et que le corps de la boucle effectue un calcul supplémentaire. Cette technique permet d'exposer un parallélisme supplémentaire au niveau des instructions que Vivado HLS peut exploiter pour mettre en œuvre la conception matérielle finale. Ensuite, nous présenterons l'optimisation du pipelining des boucles, où nous passerons d'une exécution séquentielle des itérations de boucle à une exécution pipelinée dans laquelle les itérations de boucle se chevauchent dans le temps. Ensuite, nous présenterons l'optimisation du partitionnement des tableaux qui permet d'optimiser l'utilisation des ressources BRAM afin d'améliorer les performances du noyau. Enfin, à la fin de ce module, nous allons discuter des optimisations liées au système hôte qui est responsable du transfert des données vers et depuis la carte FPGA, ainsi que de l'envoi de la commande pour démarrer l'exécution d'un noyau.

Inclus

6 vidéos2 lectures1 devoir

Inclus

3 vidéos1 lecture1 devoir

Instructeur

Évaluations de l’enseignant
4.5 (15 évaluations)
Marco Domenico Santambrogio
Politecnico di Milano
5 Cours22 038 apprenants

Offert par

Politecnico di Milano

Recommandé si vous êtes intéressé(e) par Conception et produit

Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?

Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’

Avis des étudiants

Affichage de 3 sur 76

4.7

76 avis

  • 5 stars

    76,31 %

  • 4 stars

    22,36 %

  • 3 stars

    0 %

  • 2 stars

    1,31 %

  • 1 star

    0 %

PP
5

Révisé le 30 nov. 2020

MM
5

Révisé le 16 janv. 2020

YI
4

Révisé le 23 mars 2020

Emplacement réservé

Ouvrez de nouvelles portes avec Coursera Plus

Accès illimité à plus de 7 000 cours de renommée internationale, à des projets pratiques et à des programmes de certificats reconnus sur le marché du travail, tous inclus dans votre abonnement

Faites progresser votre carrière avec un diplôme en ligne

Obtenez un diplôme auprès d’universités de renommée mondiale - 100 % en ligne

Rejoignez plus de 3 400 entreprises mondiales qui ont choisi Coursera pour les affaires

Améliorez les compétences de vos employés pour exceller dans l’économie numérique

Foire Aux Questions