Ce cours s'adresse à toute personne passionnée par le développement d'applications accélérées par FPGA avec SDAccel ! Nous entrons dans une ère où le progrès technologique induit des changements de paradigme dans l'informatique ! En tant que compromis entre les deux caractéristiques extrêmes du GPP et de l'ASIC, nous pouvons trouver un nouveau concept, une nouvelle idée de l'informatique... l'informatique reconfigurable, qui a combiné les avantages des deux mondes précédents. Dans ce contexte, nous pouvons dire que l'informatique reconfigurable aura un impact large, omniprésent et progressif sur la vie humaine. Il est donc temps de se concentrer sur la manière dont l'informatique reconfigurable et les techniques de conception de systèmes reconfigurables doivent être utilisées pour construire des applications. D'une part, l'informatique reconfigurable peut offrir de meilleures performances par rapport à une mise en œuvre logicielle, mais cela se paie en termes de temps de mise en œuvre. Dans ce contexte, les outils SDx de Xilinx, y compris l'environnement SDAccel, l'environnement SDSoC et Vivado HLS, offrent une expérience prête à l'emploi aux programmeurs de systèmes qui cherchent à partitionner des éléments d'une application logicielle pour les exécuter dans un élément matériel basé sur un FPGA, et à faire en sorte que ce matériel fonctionne de manière transparente avec le reste de l'application exécutée dans un processeur ou un processeur embarqué.
Développement d'applications cloud accélérées par FPGA avec SDAccel : Théorie
Instructeur : Marco Domenico Santambrogio
4 030 déjà inscrits
Inclus avec
(76 avis)
Expérience recommandée
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
Ajouter à votre profil LinkedIn
7 devoirs
Découvrez comment les employés des entreprises prestigieuses maîtrisent des compétences recherchées
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
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
Offert par
Recommandé si vous êtes intéressé(e) par Conception et produit
Politecnico di Milano
Advancing Women in Tech
University of Illinois Urbana-Champaign
Politecnico di Milano
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Avis des étudiants
Affichage de 3 sur 76
76 avis
- 5 stars
76,31 %
- 4 stars
22,36 %
- 3 stars
0 %
- 2 stars
1,31 %
- 1 star
0 %
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
L'accès aux cours et aux devoirs dépend de votre type d'inscription. Si vous suivez un cours en mode audit, vous pourrez consulter gratuitement la plupart des supports de cours. Pour accéder aux devoirs notés et obtenir un certificat, vous devrez acheter l'expérience de certificat, pendant ou après votre audit. Si vous ne voyez pas l'option d'audit :
Il se peut que le cours ne propose pas d'option d'audit. Vous pouvez essayer un essai gratuit ou demander une aide financière.
Le cours peut proposer l'option "Cours complet, pas de certificat" à la place. Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.
Lorsque vous vous inscrivez au cours, vous avez accès à tous les cours de la Specializations, et vous obtenez un certificat lorsque vous terminez le travail. Votre certificat électronique sera ajouté à votre page de réalisations - de là, vous pouvez imprimer votre certificat ou l'ajouter à votre profil LinkedIn. Si vous souhaitez uniquement lire et visualiser le contenu du cours, vous pouvez auditer le cours gratuitement.
Si vous vous êtes abonné, vous bénéficiez d'une période d'essai gratuite de 7 jours pendant laquelle vous pouvez annuler votre abonnement sans pénalité. Après cette période, nous ne remboursons pas, mais vous pouvez résilier votre abonnement à tout moment. Consultez notre politique de remboursement complète.