Übersicht

Die AMD Vitis™ Solver-Bibliothek bietet eine Sammlung Performance-optimierter Matrixzerlegungs- und linearer/Eigenwert-Solver sowie weitere Funktionen, die für die Entwicklung beschleunigter Algorithmen für RADAR, LiDAR, Computer-Vision, Computational Finance und andere Anwendungen verwendet werden können.

Die Kernel der Vitis Solver-Bibliothek können Sie als eigenständige Beschleuniger verwenden. Sie können sie in Ihrem integrierten/Host-CPU-Code aufrufen oder mit anderen Kernels und Primitiven der Vitis Bibliothek kombinieren, um Ihre End-to-End-Verarbeitungspipeline zu beschleunigen.

Zu den derzeit verfügbaren Beschleunigungsfunktionen gehören Singulärwertzerlegung (Singular Value Decomposition, SVD), QR und LU (Lower-Upper)-Zerlegung, Kehrmatrix, Dreiecksmatrix-Solver, Eigenwertzerlegung und andere.

Funktionen

Derzeit umfasst die Vitis Solver-Bibliothek die folgenden Vorgänge für dichte Matrizen:

Matrixzerlegung

  • Cholesky-Zerlegung für symmetrisch positiv definite Matrizen
  • LU-Zerlegung ohne und mit partieller Pivotisierung
  • QR-Zerlegung für allgemeine Matrizen
  • SVD (Singulärwertzerlegung) für symmetrische und nicht symmetrische Matrizen (Jacobi-Methode)

Linearer Solver

  • Solver für lineare Tridiagonalmatrizen (parallele zyklische Reduktionsmethode)
  • Linearer Solver für Dreiecksmatrizen
  • Linearer Solver für symmetrische und nicht symmetrische Matrizen
  • Kehrmatrix für symmetrische und nicht symmetrische Matrizen

Eigenwert-Solver

  • Jacobi-Eigenwert-Solver für symmetrische Matrizen

Funktionsliste der programmierbaren Logik (PL)- und AI Engine (AIE)-Arrays

Die Vitis Solver-Bibliothek richtet sich an Vitis Kernel-Entwickler, die ihre Anwendungsentwicklung beschleunigen möchten. Die Bibliothek bietet zwei API-Ebenen, nämlich L1 und L2. Die L1- und L2-Funktionen sind in der folgenden Tabelle aufgeführt.

In der Version 2022.2 der Vitis Solver-Bibliothek wurden zwei neue KI-Engine-Funktionen hinzugefügt: QR-Zerlegung und Cholesky-Zerlegung.

Funktionen der Solver-Bibliothek
L1 QR-Zerlegung (Quadrature Rotation)
QR_Inverse
SVD (Singularwertzerlegung)
Cholesky_Inverse
Cholesky-Zerlegung
QR-Zerlegung für AIE
Cholesky-Zerlegung für AIE
 
L2 Matrixzerlegung
Eigenwert-Solver
Linearer Solver
Die Funktionen der L1- und L2-APIs werden nachfolgend beschrieben
L1-APIs Funktionen für die Matrixzerlegung. Entwickelt als HLS-Komponenten mit Speicherschnittstellen (die auf BRAM oder URAM verweisen). Diese APIs unterstützen eine Vielzahl von Datentypen, einschließlich Float, Double oder Complex. Da für L1-APIs alle Eingabedaten im Speicher abrufbereit sein müssen, haben sie einen oberen Grenzwert für die Gesamtgröße der Eingabematrix.
L2-APIs Kernel, die auf den FPGA-Chips ausgeführt werden. Diese APIs unterstützen Gleitkommatypen mit doppelter Präzision. Das Lesen von Eingaben wie auch das Schreiben von Ergebnissen erfolgt über DDR/HBM. Sie können von der Host-Seite aus aufgerufen werden.

Organisation

Die Vitis Solver-Bibliothek ist in L1- und L2-Ordner unterteilt, die jeweils eine andere Phase der Anwendungsentwicklung betreffen.

L1: Makefiles und Quellen in L1 erleichtern einen HLS-basierten Flow für schnelle Prüfungen.

L2: Makefiles und Quellen in L2 erleichtern das Erstellen der XCLBIN-Datei aus verschiedenen Quellen (HDL-, HLS- oder XO-Dateien) von Kernels. Der Hostcode wurde dabei in einem OpenCL™-/Vitis Laufzeitbibliothek-Framework geschrieben, das auf einen Chip abzielt. 

AMD Vitis Solver Library Directories Diagram

Ressourcen