Présentation

La bibliothèque AMD Vitis™ Solver offre une collection de décomposition de matrice optimisée pour les performances, de solveurs de valeur linéaires/eigen et d'autres fonctions qui peuvent être utilisées pour concevoir des algorithmes accélérés pour les applications RADAR, LiDAR, vision informatique, finance informatique et autres.

Les noyaux de bibliothèque Vitis Solver peuvent être utilisés comme accélérateurs autonomes que vous pouvez appeler dans votre code de processeur intégré/hôte ou combiner avec d'autres noyaux et primitives de bibliothèque Vitis pour accélérer votre pipeline de traitement de bout en bout.

Certaines des principales fonctions accélérées actuellement disponibles incluent la décomposition de valeur singulière (SVD), la décomposition QR et LU (inférieur-supérieur), l'inversion de matrice, les solveurs triangulaires, la décomposition de valeur d'Eigen, etc.

Fonctions

Actuellement, la bibliothèque Vitis Solver inclut les opérations suivantes pour les matrices denses :

Décomposition de la matrice

  • Décomposition de Cholesky pour les matrices définitives symétriques positives
  • Décomposition LU sans pivotement et avec pivotement partiel
  • Décomposition QR pour les matrices générales
  • SVD (décomposition de valeur unique) pour les matrices symétriques et non symétriques (méthode Jacobi)

Solveur linéaire

  • Solveur linéaire tridiagonal (méthode de réduction cyclique parallèle)
  • Solveur linéaire pour matrices triangulaires
  • Solveur linéaire pour les matrices symétriques et non symétriques
  • Inversion de matrice pour les matrices symétriques et non symétriques

Solveur eigenvalue

  • Solveur eigenvalue Jacobi pour les matrices symétriques

Liste des fonctions de matrices Programmable Logic (PL) et AI Engine (AIE)

La bibliothèque Vitis Solver cible les développeurs de noyau Vitis pour les aider à accélérer le développement de leurs applications. La bibliothèque fournit deux couches d'API, à savoir L1 et L2. Les fonctions L1 et L2 sont répertoriées dans le tableau ci-dessous.

La bibliothèque Vitis Solver 2022.2 a ajouté deux nouvelles fonctions AI Engine : Décomposition QR et Décomposition de Cholesky.

Fonctions de la bibliothèque de solveurs
L1 Décomposition QR (rotation de quadrature)
QR_Inverse
SVD (décomposition de valeur singulière)
Cholesky_Inverse
Décomposition de Cholesky
Décomposition QR pour AIE
Décomposition de Cholesky pour AIE
 
L2 Décomposition de matrice
Solveur eigenvalue
Solveur linéaire
Les fonctionnalités des API L1 et L2 sont décrites ci-dessous
API L1 Fonctions de décomposition de matrice. Conçues comme des composants HLS avec des interfaces mémoire (pointant vers BRAM ou URAM). Ces API prennent en charge une variété de types de données, y compris le float, le double ou le complexe. Étant donné que les API L1 ont besoin que toutes les données d'entrée soient prêtes en mémoire, elles ont une limite supérieure à la taille totale de la matrice d'entrée.
API L2 Noyaux en cours d'exécution sur les appareils FPGA. Ces API prennent en charge les types à virgule flottante double précision. Elles lisent DDR/HBM pour obtenir les résultats d'entrée et écrivent DDR/HBM pour sortir les résultats. Elles peuvent être appelées du côté de l'hôte.

Organisation

La bibliothèque Vitis Solver est organisée en dossiers L1 et L2, chacun se rapportant à une étape différente du développement d'applications.

L1 : Les makefiles et sources dans L1 facilitent un flux basé sur HLS pour des vérifications rapides.

L2 : Les makefiles et sources dans L2 facilitent la création du fichier XCLBIN à partir de diverses sources (fichiers HDL, HLS ou XO) de noyaux avec le code hôte écrit dans une structure OpenCL™/Vitis Runtime Library ciblant un appareil. 

AMD Vitis Solver Library Directories Diagram

Ressources