Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
36. Exécuter les instructions sur le chemin de données du processeur
36. Exécuter les instructions sur le chemin de données du processeur
La vidéo explique comment les calculs sont exécutés sur un chemin de données CPU en utilisant un exemple d'exécution d'opérations d'accumulation. Le chemin de données comprend des unités de chargement et de stockage pour charger et stocker des données dans la mémoire à l'aide d'adresses, et des unités fonctionnelles telles que des ALU pour effectuer des opérations. La vidéo illustre le processus étape par étape, y compris le chargement de données depuis la mémoire, l'exécution d'opérations et le stockage des résultats dans la mémoire. Le conférencier explique également comment le FPGA peut être utilisé pour mettre en œuvre la même fonction, en tirant le meilleur parti des ressources disponibles dans le matériel.
37. Chemin de données personnalisé sur FPGA
37. Chemin de données personnalisé sur FPGA
La vidéo explique comment utiliser un FPGA pour implémenter la fonction du noyau afin d'améliorer les performances en déroulant le matériel CPU et en personnalisant le chemin de données sur le FPGA. En supprimant les unités inutilisées, en chargeant des constantes et des connexions et en replanifiant certaines opérations, les opérations de chargement peuvent être effectuées simultanément pour augmenter les performances. La conception de chemins de données personnalisés peut améliorer le débit, réduire la latence et la consommation d'énergie en sélectionnant les opérations et les données nécessaires pour une fonction particulière. La vidéo montre un exemple d'addition à la demande sur deux vecteurs, avec le résultat stocké en mémoire à l'aide de registres entre les étapes pour permettre un pipeline efficace et le lancement de huit éléments de travail pour des ajouts consécutifs.
38. OpenCL pour FPGA et noyau parallèle de données
38. OpenCL pour FPGA et noyau parallèle de données
La vidéo explique comment OpenCL permet aux ingénieurs FPGA d'utiliser les ressources d'ingénierie logicielle pour augmenter le nombre de développeurs d'applications FPGA en tirant parti des ressources de calcul parallèle sur les FPGA. Le modèle de programmation d'OpenCL permet la spécification du parallélisme en utilisant des fonctions parallèles de données appelées noyaux, et chaque noyau s'appuie sur des identifiants spécifiés par "get global ID" pour effectuer des calculs parallèles sur des segments de données indépendants. Le concept de threads et de groupes de travail est introduit, où les threads accèdent à différentes parties de l'ensemble de données, partitionnées en groupes de travail, seuls les threads du même groupe de travail pouvant partager la mémoire locale. Avec ce modèle de programmation, OpenCL permet un traitement parallèle efficace des données.
39. Programmation côté hôte OpenCL : contexte, files d'attente, objets mémoire, etc.
39. Programmation côté hôte OpenCL : contexte, files d'attente, objets mémoire, etc.
Ce didacticiel vidéo explore divers concepts de programmation côté hôte dans OpenCL, en mettant l'accent sur le contexte, les files d'attente et les objets mémoire. Il couvre les deux nouvelles API d'OpenCL, clCreateKernelsInProgram et clSetKernelArg, qui sont utilisées pour créer des objets noyau et transmettre des arguments aux fonctions noyau. Le didacticiel traite également de l'utilisation de l'API clCreateImage pour créer des objets image et de la manière dont les pixels de l'image sont stockés en mémoire à l'aide de l'ordre et du type de canal. Il explique comment OpenCL gère les images 2D et 3D, comment les développeurs peuvent collecter des informations sur les objets mémoire à l'aide d'API telles que clGetMemoryObjectInfo et comment effectuer des opérations sur les objets mémoire telles que la lecture et l'écriture de la mémoire tampon, le mappage des objets mémoire et la copie de données entre les objets mémoire.
40. Flux de conception HDL pour FPGA
40. Flux de conception HDL pour FPGA
Cette vidéo explique le processus de développement de Field Programmable Gate Arrays (FPGA) à l'aide du logiciel de conception Quartus.
La méthodologie de conception et les outils logiciels pour le développement de FPGA sont expliqués. Le flux de conception de logique programmable typique commence par une spécification de conception, passe au codage RTL, puis à la simulation fonctionnelle RTL, qui est ensuite suivie d'une synthèse pour traduire la conception en primitives spécifiques à l'appareil. Les ingénieurs mappent ensuite ces primitives à des emplacements spécifiques à l'intérieur d'un FPGA particulier et vérifient les spécifications de performances grâce à une analyse temporelle. Enfin, la conception est chargée dans une carte FPGA et des outils de débogage peuvent être utilisés pour la tester sur le matériel. Pour les FPGA Intel, le logiciel de conception Quartus est utilisé pour effectuer le flux de conception, en commençant par une description du système et en passant à la synthèse logique, au placement et au routage, à l'analyse de la synchronisation et de la puissance, et à la programmation de la conception dans les FPGA réels.
41. Types de données OpenCL et mémoire de l'appareil
41. Types de données OpenCL et mémoire de l'appareil
La vidéo traite des types de données OpenCL et de la mémoire de l'appareil. Il couvre les types booléens, entiers et à virgule flottante et explique les types de données spécifiques utilisés pour opérer sur des adresses mémoire telles que int-ptr, uint-ptr et ptrdiff-t. Il explique également les types de données vectorielles, qui sont des tableaux contenant plusieurs éléments du même type qui permettent d'appliquer des opérateurs à chaque élément en même temps, et comment les utiliser. La vidéo fournit divers exemples d'initialisation et d'accès aux éléments d'un vecteur, y compris l'utilisation de lettres et d'indices numériques, haut-bas et pair-impair. Il explique également l'alignement de la mémoire et comment utiliser les arguments de noyau définis et les arguments de noyau privés.
42. Opérations relationnelles vectorielles OpenCL
42. Opérations relationnelles vectorielles OpenCL
La vidéo traite de la programmation du noyau OpenCL et de ses opérateurs et fonctions intégrées. L'accent est mis sur les opérateurs relationnels et leur fonctionnement avec les valeurs scalaires et vectorielles. Un exemple de fonction noyau, "op test", est présenté qui effectue une opération ET par élément entre une constante et un vecteur privé. La vidéo explique comment implémenter un vecteur avec des opérations relationnelles dans OpenCL en comparant des éléments vectoriels spécifiques avec un scalaire à l'aide d'opérations logiques. Le vecteur résultant peut être utilisé dans une boucle while pour créer un vecteur de sortie final qui est affecté à l'objet mémoire de sortie.
43. Fonctions intégrées OpenCL : vloadn, sélectionnez
43. Fonctions intégrées OpenCL : vloadn, sélectionnez
La vidéo couvre deux fonctions clés intégrées d'OpenCL : vloadn et select. Vloadn vous permet d'initialiser des lots avec des valeurs d'un tableau scalaire et prend deux arguments : offset et un pointeur vers le tableau scalaire. Sélectionner, d'autre part, vous permet de sélectionner certains éléments de deux lots et de les utiliser pour créer un nouveau vecteur. Il peut contenir des valeurs entières signées ou non signées, et seul le bit le plus significatif des éléments de masque compte. Le didacticiel montre comment ces fonctions fonctionnent dans la pratique.
44. Introduction à DPC++
44. Introduction à DPC++
Cette vidéo présente DPC++, un langage de haut niveau pour la programmation parallèle de données qui décharge les calculs complexes vers des accélérateurs tels que les FPGA et les GPU, et fait partie du framework OneAPI. DPC++ vise à accélérer les charges de travail parallèles de données à l'aide d'un C++ moderne et d'une optimisation des performances orientée architecture. Le conférencier fournit un exemple DPC++ simple qui montre comment déclarer des variables de gestion de données et exécuter une fonction du noyau sur un appareil à l'aide d'une commande et d'un accesseur. La vidéo explique également comment la fonction lambda peut prendre des arguments et des références à partir des variables déclarées en dehors de celle-ci.
45. Comment penser en parallèle ?
45. Comment penser en parallèle ?
La vidéo enseigne la programmation parallèle en utilisant la multiplication matricielle comme exemple. Il met en évidence le parallélisme dans ce calcul, où plusieurs lignes et colonnes peuvent être calculées indépendamment. La mise en œuvre d'un calcul à un seul élément dans la matrice C est illustrée à l'aide d'une fonction noyau qui permet un calcul parallèle. L'utilisation des accesseurs, des plages et des fonctions du noyau parallèle est expliquée en détail. Les étapes impliquées dans le passage de la valeur de plage dans la fonction noyau sont discutées. Une démonstration de la multiplication matricielle à l'aide du nuage de développement Intel FPGA est également présentée.