Logo Intel

Carte d'accélération programmable Intel FPGA D5005

Produit Intel.-FPGA-Programmable-Acceleration-Card-D5005

À propos de ce document

Ce document décrit la mise en œuvre de l'unité fonctionnelle d'accélérateur (AFU) à accès direct à la mémoire (DMA) et explique comment créer la conception pour qu'elle s'exécute sur du matériel ou en simulation.

Public visé

Le public visé comprend les développeurs de matériel ou de logiciels qui ont besoin d'une fonction d'accélération (AF) pour mettre en mémoire tampon les données localement dans la mémoire connectée au périphérique Intel FPGA.

Conventions

Conventions relatives aux documents

Convention Description
# Précède une commande qui indique que la commande doit être entrée en tant que root.
$ Indique qu'une commande doit être entrée en tant qu'utilisateur.
Cette police Fileles noms, les commandes et les mots-clés sont imprimés dans cette police. Les longues lignes de commande sont imprimées dans cette police. Bien que de longues lignes de commande puissent passer à la ligne suivante, le retour ne fait pas partie de la commande ; n'appuyez pas sur entrée.
Indique que le texte de l'espace réservé qui apparaît entre les crochets angulaires doit être remplacé par une valeur appropriée. N'entrez pas les crochets angulaires.

Acronymes

Acronymes

Acronymes Expansion Description
AF Fonction d'accélérateur Image d'accélérateur matériel compilée implémentée dans une logique FPGA qui accélère une application.
AFU Unité Fonctionnelle Accélérateur Accélérateur matériel implémenté dans la logique FPGA qui décharge une opération de calcul pour une application du CPU afin d'améliorer les performances.
API Interface de programmation d'application Un ensemble de définitions de sous-programmes, de protocoles et d'outils pour créer des applications logicielles.
CCI-P Interface du cache central CCI-P est l'interface standard utilisée par les AFU pour communiquer avec l'hôte.
DHF En-tête de fonctionnalité de l'appareil Crée une liste liée d'en-têtes de fonctionnalités pour fournir un moyen extensible d'ajouter des fonctionnalités.
suite…

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Acronymes Expansion Description
FIM Gestionnaire d'interfaces FPGA Le matériel FPGA contenant l'unité d'interface FPGA (FIU) et des interfaces externes pour la mémoire, la mise en réseau, etc.

La fonction d'accélérateur (AF) s'interface avec le FIM au moment de l'exécution.

CRF Unité d'interface FPGA FIU est une couche d'interface de plate-forme qui agit comme un pont entre les interfaces de plate-forme telles que PCIe *, UPI et les interfaces côté AFU telles que CCI-P.
MPF Usine de propriétés de mémoire Le MPF est un bloc de construction de base (BBB) ​​que les AFU peuvent utiliser pour fournir des opérations de mise en forme du trafic CCI-P pour les transactions avec la CRF.

Glossaire de l'accélération

Pile d'accélération pour processeur Intel® Xeon® avec FPGA Glossaire

Terme Abréviation Description
Pile d'accélération Intel® pour processeur Intel Xeon® avec FPGA Pile d'accélération Ensemble de logiciels, de micrologiciels et d'outils offrant une connectivité optimisée en termes de performances entre un FPGA Intel et un processeur Intel Xeon.
Carte d'accélération programmable Intel FPGA Processeur Intel FPGA Carte accélératrice PCIe FPGA.

Contient un gestionnaire d'interface FPGA (FIM) qui s'associe à un processeur Intel Xeon sur le bus PCIe.

  • Guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA : Carte d'accélération programmable Intel FPGA D5005

DMA AFU descriptif

Introduction

L'AFU d'accès direct à la mémoire (DMA) example montre comment gérer les transferts de mémoire entre le processeur hôte et le FPGA. Vous pouvez intégrer le DMA AFU dans votre conception pour déplacer des données entre la mémoire hôte et la mémoire locale du FPGA. Le DMA AFU comprend les sous-modules suivants :

  • Usine de propriétés de mémoire (MPF) Bloc de construction de base (BBB)
  • Interface de cache central (CCI-P) vers l'adaptateur mappé en mémoire Avalon® (Avalon-MM)
  • Système de test DMA qui contient le DMA BBB

Ces sous-modules sont décrits plus en détail dans la rubrique Composants matériels DMA AFU ci-dessous.

Informations connexes

  • Les composants matériels DMA AFU à la page 6
  • Spécifications de l'interface Avalon

Pour plus d'informations sur le protocole Avalon-MM, y compris les chronogrammes des transactions de lecture et d'écriture.

Le progiciel DMA AFU

La pile d'accélération Intel pour processeur Intel Xeon avec package FPGA file (*.tar.gz), inclut le DMA AFU example. Cet example fournit un pilote d'espace utilisateur. L'application hôte utilise ce pilote de sorte que le DMA déplace les données entre l'hôte et la mémoire FPGA. Les binaires matériels, les sources et le pilote de l'espace utilisateur sont disponibles dans le répertoire suivant : $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . Avant d'expérimenter le DMA AFU, vous devez installer le progiciel Open Programmable Acceleration Engine (OPAE). Reportez-vous à la section Installation du progiciel OPAE dans le Guide de démarrage rapide de la pile d'accélération Intel pour la carte d'accélération programmable Intel FPGA D5005 pour obtenir des instructions d'installation. Ce guide de démarrage rapide comprend également des informations de base sur le moteur d'accélération programmable ouvert (OPAE) et la configuration d'une AFU. Après avoir installé le progiciel Open Programmable Acceleration Engine (OPAE), commeampL'application hôte et le pilote d'espace utilisateur DMA AFU sont disponibles dans le répertoire suivant : $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. Pour exécuter le sampl'application hôte, fpga_dma_test sur votre matériel Intel FPGA PAC D5005, reportez-vous aux étapes de la section Exécution du DMA AFU Example. Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Informations connexes

  • Guide de démarrage rapide de la pile d'accélération Intel pour la carte d'accélération programmable Intel FPGA D5005
  • Installation du progiciel OPAE

Les composants matériels DMA AFU

L'AFU DMA s'interface avec l'unité d'interface FPGA (FIU) et la mémoire FPGA. Reportez-vous à la fiche technique du gestionnaire d'interface FPGA pour la carte d'accélération programmable Intel FPGA D5005 pour les spécifications détaillées de la mémoire FPGA. Le matériel actuellement disponible dicte cette configuration de mémoire. Le futur matériel peut prendre en charge différentes configurations de mémoire. Vous pouvez utiliser le DMA AFU pour copier des données entre les emplacements source et de destination suivants :

  • L'hôte vers la mémoire FPGA de l'appareil
  • Mémoire FPGA de l'appareil vers l'hôte

Un système Platform Designer, $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys implémente la plupart des DMA

  • AFU. Une partie de l'AFU DMA implémentée dans le système Platform Designer se trouve dans les éléments suivants

emplacement :$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/hw/rtl/TEST_dma/ Vous pouvez trouver le DMA BBB à l'emplacement suivant :

  • $OPAE_PLATFORM_ROOT/matériel/samples/dma_afu/hw/rtl/dma_bbb

Guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA : Carte d'accélération programmable Intel FPGA D5005

Schéma fonctionnel du matériel DMA AFU

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-1

L'AFU DMA comprend les modules internes suivants pour s'interfacer avec l'unité d'interface FPGA (FIU) :

  • Logique de décodeur MMIO (Memory-Mapped IO): détecte les transactions de lecture et d'écriture MMIO et les sépare du canal 0 CCI-P RX d'où elles arrivent. Cela garantit que le trafic MMIO n'atteint jamais le MPF BBB et est desservi par un canal de commande MMIO indépendant.
  • Memory Properties Factory (MPF) : ce module garantit que les réponses de lecture du DMA sont renvoyées dans l'ordre dans lequel elles ont été émises. Le protocole Avalon-MM nécessite que les réponses de lecture soient renvoyées dans le bon ordre.
  • Adaptateur CCI-P vers Avalon-MM : ce module traduit entre les transactions CCI-P et Avalon-MM, comme suit :
  • Adaptateur CCI-P vers Avalon-MMIO : ce chemin traduit les transactions CCI-P MMIO en transactions Avalon-MM.
  • Adaptateur hôte Avalon vers CCI-P : ces chemins créent des chemins séparés en lecture seule et en écriture seule pour que le DMA accède à la mémoire hôte.
  • Système de test DMA : Ce module sert d'enveloppe autour du DMA BBB pour exposer les maîtres DMA au reste de la logique dans l'AFU. Il fournit l'interface entre le DMA BBB et l'adaptateur CCI-P vers Avalon. Il fournit également l'interface entre le DMA BBB et les banques FPGA SDRAM locales.

Informations connexes
Fiche technique du gestionnaire d'interface FPGA pour la carte d'accélération programmable Intel FPGA D5005

Système de test DMA

Le système de test DMA connecte le DMA BBB au reste de la conception FPGA, y compris l'adaptation CCI-P et la mémoire FPGA locale.

Schéma fonctionnel du système de test DMA
Ce schéma fonctionnel montre les composants internes du système de test DMA. Le système de test DMA est représenté sous la forme d'un bloc monolithique dans la Figure 1 à la page 7.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-2

Le système de test DMA comprend les modules internes suivants :

  • Far Reach Bridge/Pipeline Bridge : Un pont de pipeline avec une latence réglable inclus pour contrôler la topologie et améliorer la conception Fmax.
  • En-tête de fonctionnalité de périphérique DMA AFU (DFH) : il s'agit d'un DFH pour le DMA AFU. Ce DFH pointe vers le prochain DFH situé au décalage 0x100 (DMA BBB DFH).
  • Null DFH : ce composant termine la liste liée DFH. Si vous ajoutez plus de BBB DMA à la conception, assurez-vous que l'adresse de base DFH nulle se trouve à la fin de la liste liée DFH.
  • MA Basic Building Block (BBB) ​​: Ce bloc déplace les données entre l'hôte et la mémoire FPGA locale. Il accède également à la mémoire de l'hôte pour accéder aux chaînes de descripteurs.

DMA BBB

Le sous-système DMA BBB transfère les données des adresses source aux adresses de destination à l'aide de transactions Avalon-MM. Le pilote DMA contrôle le DMA BBB en accédant au registre de contrôle et d'état des différents composants à l'intérieur du système. Le pilote DMA contrôle également le DMA BBB en utilisant la mémoire partagée pour communiquer les descripteurs de transfert. Le DMA BBB accède aux données dans la mémoire FPGA au décalage 0x0. Le DMA BBB accède aux données et aux descripteurs dans la mémoire hôte au décalage 0x1_0000_0000_0000.

Schéma fonctionnel du concepteur de plate-forme DMA BBB
Ce schéma fonctionnel exclut certains cœurs IP internes de Pipeline Bridge.Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-6

Guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA : Carte d'accélération programmable Intel FPGA D5005

DMA AFU descriptif

Les composants de DMA BBB Platform Designer implémentent les fonctions suivantes :

  • Pont à longue portée/pont de pipeline : Un pont de pipeline avec latence réglable inclus pour contrôler la topologie et améliorer la conception Fmax.
  • MA BBB DFH : Il s'agit d'un en-tête de fonctionnalité de périphérique pour le DMA BBB. Ce DFH pointe vers le DFH suivant situé au décalage 0x100 (DFH nul).
  • Descripteur Frontend : Responsable de la récupération des descripteurs et de leur transfert au Dispatcher. Lorsqu'un transfert DMA est terminé, le frontal reçoit la formation d'état du Dispatcher et écrase le descripteur dans la mémoire de l'hôte.
  • Répartiteur : Ce bloc planifie les demandes de transfert DMA vers le maître de lecture et d'écriture.
  • Lire le maître : Ce bloc est responsable de la lecture des données de l'hôte ou de la mémoire FPGA locale et de leur envoi en tant que données de diffusion vers Write Master.
  • Maître d'écriture : Ce bloc est responsable de la réception des données en continu du Read Master et de l'écriture du contenu dans la mémoire hôte ou locale du FPGA.

Enregistrer la carte et les espaces d'adressage

Le DMA AFU prend en charge deux mémoires views : le DMA view et l'hôte view. Le DMA view prend en charge un espace d'adressage de 49 bits. La moitié inférieure de la DMA view cartes à la mémoire FPGA locale. La moitié supérieure de la DMA view mappe vers la mémoire hôte. L'hôte view comprend tous les registres accessibles via les accès MMIO tels que les tables DFH, et les registres de contrôle/état des différents cœurs IP utilisés à l'intérieur de l'AFU DMA. Les registres MMIO dans le DMA BBB et AFU prennent en charge l'accès 32 et 64 bits. L'AFU DMA ne prend pas en charge les accès MMIO 512 bits. Les accès aux registres Dispatcher à l'intérieur du DMA BBB doivent être de 32 bits (le frontend Descriptor implémente des registres 64 bits).

Carte du registre DMA AFU

La carte de registre DMA AFU fournit les adresses absolues de tous les emplacements au sein de l'unité. Ces registres sont dans l'hôte view car seul l'hôte peut y accéder.

Carte mémoire DMA AFU

Décalages d'adresse d'octet Nom Portée en octets Description
0x0 DMA AFU DFH 0x40 En-tête de fonctionnalité de périphérique pour le DMA AFU. L'ID_L est défini sur 0x9081f88b8f655caa et ID_H est défini sur 0x331db30c988541ea. Le DMA AFU DFH a été paramétré pour pointer vers le décalage 0x100 pour trouver le prochain DFH (DMA BBB DFH). Vous ne devez pas modifier l'adresse de base du DMA AFU DFH car elle doit être située à l'adresse 0x0 telle que définie par la spécification CCIP.
0x100 DMA BBB 0x100 Spécifie l'interface de contrôle et de registre d'état DMA BBB. Vous pouvez vous référer à la carte des registres DMA BBB pour plus d'informations. Dans le DMA BBB au décalage 0, le DMA BBB inclut son propre DFH. Ce DFH a été défini pour trouver le prochain DFH au décalage 0x100 (NULL DFH). Si vous ajoutez plus de DMA BBB, espacez-les de 0x100 et assurez-vous que le NULL DFH suit le dernier DMA de 0x100.
0x200 NULL DFH 0x40 Termine la liste liée DFH. L'ID_L est défini sur 0x90fe6aab12a0132f et ID_H est défini sur 0xda1182b1b3444e23. Le DFH NULL a été paramétré pour être le dernier DFH du matériel. Pour cette raison, le NULL DFH est situé à l'adresse 0x200. Si vous ajoutez des BBB DMA supplémentaires au système, vous devez augmenter l'adresse de base NULL DFH en conséquence afin qu'elle reste à l'adresse la plus élevée. Le pilote DMA et l'application de test n'utilisent pas ce matériel.

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Enregistrer la carte et les espaces d'adressage

Carte mémoire DMA BBB
Les adresses d'octet suivantes sont des décalages relatifs par rapport à l'adresse de base DMA BBB dans le système DMA AFU (0x100).

Décalages d'adresse d'octet Nom Portée en octets Description
0x0 DMA BBB DFH 0x40 En-tête de fonctionnalité de périphérique pour le DMA AFU. L'ID_L est défini sur 0xa9149a35bace01ea et ID_H est défini sur 0xef82def7f6ec40fc . Le DMA BBB DFH a été paramétré pour pointer vers 0x100 pour le prochain décalage DFH. Ce décalage suivant peut être un autre DMA BBB, un autre DFH (non inclus dans cette conception) ou le NULL DFH.
0x40 Répartiteur 0x40 Port de contrôle pour le répartiteur. Le pilote DMA utilise cet emplacement pour contrôler le DMA ou interroger son état.
0x80 Descripteur Frontend 0x40 L'interface de descripteur est un composant personnalisé qui lit les descripteurs à partir de la mémoire de l'hôte et écrase le descripteur lorsque le transfert DMA est terminé. Le pilote indique au frontal où réside le premier descripteur dans la mémoire hôte, puis le matériel frontal communique avec le pilote principalement via des descripteurs stockés dans la mémoire hôte.

Espace d'adressage DMA AFU

L'hôte peut accéder aux registres répertoriés dans le Tableau 4 à la page 12 et le Tableau 5 à la page 13. Le sous-système DMA BBB a accès à l'espace d'adressage complet de 49 bits. La moitié inférieure de cet espace d'adressage comprend les mémoires FPGA locales. La moitié supérieure de cet espace d'adressage comprend la mémoire d'adresses hôte 48 bits. La figure suivante montre l'hôte et le DMA views de mémoire.

L'AFU DMA et l'hôte Views de mémoire

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-3

Liste liée d'en-tête de fonctionnalité de périphérique

La conception DMA AFU exampLe fichier contient trois en-têtes de fonctionnalité de périphérique (DFH) qui forment une liste chaînée. Cette liste chaînée permet aux sampl'application pour identifier le DMA AFU ainsi que le driver pour identifier le DMA BBB. La liste DFH inclut un DFH NULL à la fin. L'inclusion du DFH nul à la fin de la liste liée vous permet d'ajouter plus de DMA BBB à votre conception. Vous avez simplement besoin de déplacer le NULL DFH vers une adresse après les autres BBB. Chaque DMA BBB s'attend à ce que le prochain DFH soit situé à 0x100 octets de l'adresse de base du BBB. La figure suivante illustre la liste liée pour la conception DMA AFU example.

Enregistrer la carte et les espaces d'adressage

Chaînage d'en-tête de fonctionnalité de périphérique DMA AFU (DFH)

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-4

Modèle de programmation logicielle

L'AFU DMA inclut un pilote logiciel que vous pouvez utiliser dans votre propre application hôte. Le fpga_dma.cpp et fpga_dma.h files situé à l'emplacement suivant, implémentez le pilote logiciel : $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw Ce pilote prend en charge les fonctions suivantes :

API Description
fpgaCountDMAChannels Scanne la chaîne de fonctionnalités de l'appareil pour les BBB DMA et compte tous les canaux disponibles.
fpgaDMAOuvrir Ouvre un handle vers le canal DMA.
fpgaDMACfermer Ferme un handle vers le canal DMA.
fpgaDMATransferInit Initialise un objet qui représente le transfert DMA.
fpgaDMATransferReset Réinitialise l'objet d'attribut de transfert DMA aux valeurs par défaut.
fpgaDMATransferDestroy Détruit l'objet d'attribut de transfert DMA.
fpgaDMATransferSetSrc Définit l'adresse source du transfert. Cette adresse doit être alignée sur 64 octets.
fpgaDMATransferSetDst Définit l'adresse de destination du transfert. Cette adresse doit être alignée sur 64 octets.
fpgaDMATransferSetLen Définit les longueurs de transfert en octets. Pour les transferts sans paquets, vous devez définir la longueur de transfert sur un multiple de 64 octets. Pour les transferts de paquets, ce n'est pas une exigence.
fpgaDMATransferSetTransferType Définit le type de transfert. Les valeurs légales sont :

• HOST_MM_TO_FPGA_MM = TX (hôte vers AFU)

• FPGA_MM_TO_HOST_MM = RX (AFU vers l'hôte)

fpgaDMATransferSetTransferCallback Enregistre le rappel pour notification à la fin du transfert asynchrone. Si vous spécifiez un rappel, fpgaDMATransfer revient immédiatement (transfert asynchrone).

Si vous ne spécifiez pas de rappel, fpgaDMATransfer revient une fois le transfert terminé (transfert synchrone/bloquant).

fpgaDMATransferSetLast Indique le dernier transfert afin que le DMA puisse commencer à traiter les transferts prérécupérés. La valeur par défaut est de 64 transferts dans le pipeline avant que le DMA ne commence à travailler sur les transferts.
fpgaDMATransfer Effectue un transfert DMA.

Pour plus d'informations sur l'API, les arguments d'entrée et de sortie, reportez-vous à l'en-tête file situé $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw/fpga_dma.hIntel Corporation. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Modèle de programmation logicielle

Pour en savoir plus sur le modèle d'utilisation du pilote logiciel, reportez-vous au README file situé à $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/README.md

Exécution de DMA AFU Example

Avant de commencer :

  • Vous devriez être familier avec l'exampdans le Guide de démarrage rapide Intel Acceleration Stack pour la carte d'accélération programmable Intel FPGA D5005.
  • Vous devez définir une variable d'environnement. La variable d'environnement dépend de la version d'Intel Acceleration Stack que vous utilisez :
    • Pour la version actuelle, définissez la variable d'environnement sur $OPAE_PLATFORM_ROOT
  • Vous devez installer la bibliothèque Intel Threading Building Blocks (TBB) car le pilote DMA en dépend.
  • Vous devez également configurer deux pages énormes de 1 Go pour exécuter le sampl'application. $ sudo sh -c "echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/ nr_hugepages"

Effectuez les étapes suivantes pour télécharger le flux binaire de la fonction d'accélérateur DMA (AF), pour créer l'application et le pilote, et pour exécuter l'ex de conceptionample:

  1. Accédez au répertoire de l'application DMA et du pilote : cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
  2. Générez le pilote et l'application : make
  3. Téléchargez le bitstream DMA AFU : sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
  4. Exécutez l'application hôte pour écrire 100 Mo en portions de 1 Mo depuis la mémoire de l'hôte vers la mémoire du périphérique FPGA et relisez-la : ./ fpga_dma_test -s 104857600 -p 1048576 -r mtom

Informations connexes
Guide de démarrage rapide de la pile d'accélération Intel pour la carte d'accélération programmable Intel FPGA D5005 Intel Corporation. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Compilation du DMA AFU Example

Pour générer un environnement de génération de synthèse pour compiler un AF, utilisez la commande afu_synth_setup comme suit :

  1. Passer aux AFU DMAamprépertoire du fichier : $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Générez le répertoire de construction de conception : afu_synth_setup –source hw/rtl/fileliste.txt build_synth
  3. À partir du répertoire de génération de synthèse généré par afu_synth_setup, entrez les commandes suivantes à partir d'une fenêtre de terminal pour générer un AF pour la plate-forme matérielle cible : cd build_synth run.sh Le script de génération AF run.sh crée l'image AF avec la même base filenom comme configuration de la plate-forme de l'AFU file (.json) avec un suffixe .gbs à l'emplacement :$OPAE_PLATFORM_ROOT/hw/sampfichiers/build_synth/dma_afu_s10.gbs Intel Corporation. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Simulation de l'AFU Example

Intel vous recommande de vous référer au Guide de démarrage rapide de l'environnement de simulation (ASE) de l'unité fonctionnelle de l'accélérateur Intel (AFU) pour votre PAC FPGA Intel afin de vous familiariser avec la simulation d'exampfichiers et pour configurer votre environnement. Avant de procéder aux étapes suivantes, vérifiez que la variable d'environnement OPAE_PLATFORM_ROOT est définie sur le répertoire d'installation du SDK OPAE. Effectuez les étapes suivantes pour configurer le simulateur matériel pour l'AFU DMA :

  1. Passer aux AFU DMAamprépertoire du fichier : cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
  2. Créez un environnement ASE dans un nouveau répertoire et configurez-le pour simuler un AFU : afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
  3. Accédez au répertoire de construction ASE : cd build_ase_dir
  4. Générez le pilote et l'application : make
  5. Faire une simulation : faire une simulation

Sample résultat du simulateur matériel :

[SIM] ** ATTENTION : AVANT d'exécuter l'application logicielle ** [SIM] Définissez env(ASE_WORKDIR) dans le terminal où l'application sera exécutée (copier-coller) => [SIM] $SHELL | Exécuter :[SIM] ———+————————————————— [SIM] bash/zsh | exporter ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/sampfichiers/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] Pour tout autre $SHELL, consultez votre administrateur Linux [SIM] [SIM] Prêt pour la simulation… [SIM] Appuyez sur CTRL-C pour fermer le simulateur…

Effectuez les étapes suivantes pour compiler et exécuter le logiciel DMA AFU dans l'environnement de simulation :

  1. Ouvrez une nouvelle fenêtre de terminal.
  2. Changez de répertoire en : cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Simulation de l'AFU Example

  1. Copiez la chaîne de configuration de l'environnement (choisissez la chaîne appropriée pour votre shell) à partir des étapes ci-dessus dans la simulation matérielle vers la fenêtre du terminal. Voir les lignes suivantes dans le sample résultat du simulateur matériel. [SIM] bash/zsh | exporter ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/sampfichiers/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/sampfichiers/dma_afu/build_ase_dir/work
  2. Compilez le logiciel : $ make USE_ASE=1
  3. Exécutez l'application hôte pour écrire 4 Ko en portions de 1 Ko depuis la mémoire hôte vers la mémoire du périphérique FPGA en mode bouclage : ./ fpga_dma_test -s 4096 -p 1024 -r mtom

Informations connexes
Guide de démarrage rapide de l'environnement de simulation (ASE) de l'unité fonctionnelle de l'accélérateur Intel (AFU)

Optimisation pour de meilleures performances DMA

L'implémentation de l'optimisation NUMA (accès mémoire non uniforme) dans fpga_dma_test.cpp permet au processeur d'accéder à sa propre mémoire locale plus rapidement que d'accéder à la mémoire non locale (mémoire locale à un autre processeur). Une configuration NUMA typique est illustrée dans le diagramme ci-dessous. L'accès local représente l'accès d'un cœur à la mémoire locale du même cœur. L'accès à distance illustre le chemin emprunté lorsqu'un cœur du nœud 0 accède à la mémoire qui réside dans la mémoire locale du nœud 1.

Configuration NUMA typique

Intel.-FPGA-Programmable-Acceleration-Card-D5005-fig-5

Utilisez le code suivant pour implémenter l'optimisation NUMA dans votre application de test :

// Configurez l'affinité appropriée si nécessaire if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; props fpga_properties ; int retval ; #if(FPGA_DMA_DEBUG)char str[4096] ; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, "fpgaGetProperties"); res = fpgaPropertiesGetBus(props, (uint8_t *) & bus);ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetBus"); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetDevice") res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res, out_destroy_tok, "fpgaPropertiesGetFunction"); // Trouver le périphérique à partir de la topologie hwloc_topology_t topology ; hwloc_topology_init(&topologie); hwloc_topology_set_flags(topologie, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);Intel Corporation. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services. * D'autres noms et marques peuvent être revendiqués comme la propriété d'autrui.

Optimisation pour de meilleures performances DMA

hwloc_topology_load(topologie); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(topologie, dom, bus, dev, func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(topologie, obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf("CPUSET est %s\n", str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET est %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(topologie, obj2->nodeset, HWLOC_MEMBIND_THREAD,HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_membind"); } si (cpu_affinity) { retval = hwloc_set_cpubind(topologie, obj2->cpuset, HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, "hwloc_set_cpubind"); } }

Archives du guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA

Version de la pile d'accélération Intel Guide de l'utilisateur (PDF)
2.0 Guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA (AFU)

Historique de révision du document pour le Guide de l'utilisateur de l'unité fonctionnelle de l'accélérateur DMA

 

Version du document

Accélération Intel Version de la pile  

Changements

 

 

2020.08.03

2.0.1 (pris en charge avec Intel

Quartus® Prime Édition Pro Édition 19.2)

 

Correction de l'image AF file nom dans la rubrique Compilation du DMA AFU Example.

 

 

2020.04.17

2.0.1 (pris en charge avec Intel

Quartus Prime Édition Pro Édition 19.2)

 

 

Correction d'une déclaration dans Public visé section.

 

 

2020.02.20

2.0.1 (pris en charge avec Intel

Quartus Prime Édition Pro Édition 19.2)

 

 

Correction d'une faute de frappe.

 

 

 

 

2019.11.04

 

 

2.0.1 (pris en charge avec Intel

Quartus Prime Édition Pro Édition 19.2)

• Remplacement de fpgaconf par fpgasupdate lors de la configuration du FPGA avec l'AFU pré-construit dans la section Exécution du DMA AFU Example.

• Sous-titre ajouté Carte d'accélération programmable Intel FPGA D5005 au titre du document.

• Ajout de la variable d'environnement $OPAE_PLATFORM_ROOT.

• Section modifiée Modèle de programmation logicielle pour les modifications mineures.

• Nouvelle section ajoutée Compilation du DMA AFU Example.

• Section modifiée Optimisation pour de meilleures performances DMA pour les modifications mineures.

 

 

2019.08.05

2.0 (pris en charge avec Intel

Quartus Prime Édition Pro 18.1.2)

 

 

Version initiale.

Société intel. Tous les droits sont réservés. Intel, le logo Intel et les autres marques Intel sont des marques commerciales d'Intel Corporation ou de ses filiales. Intel garantit les performances de ses produits FPGA et semi-conducteurs selon les spécifications actuelles conformément à la garantie standard d'Intel, mais se réserve le droit d'apporter des modifications à tout produit et service à tout moment et sans préavis. Intel n'assume aucune responsabilité découlant de l'application ou de l'utilisation de toute information, produit ou service décrit dans le présent document, sauf accord exprès et écrit d'Intel. Il est conseillé aux clients d'Intel d'obtenir la dernière version des spécifications de l'appareil avant de se fier aux informations publiées et avant de passer des commandes de produits ou de services.

  • D’autres noms et marques peuvent être revendiqués comme étant la propriété d’autrui.

 

Documents / Ressources

Carte d'accélération programmable Intel FPGA D5005 [pdf] Guide de l'utilisateur
Carte d'accélération programmable FPGA, D5005, Carte d'accélération programmable FPGA D5005, Unité fonctionnelle d'accélérateur DMA

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *