概要
tools_and_services_tile_graphic

Vitis™ ソルバー ライブラリには、性能に最適化された行列分解、線形/固有値ソルバーなどの機能があります。これらは RADAR、LiDAR、コンピューター ビジョン、数理ファイナンスなど多様なアプリケーションでアクセラレーション アルゴリズムを設計する際に利用できます。

Vitis ソルバー ライブラリ カーネルは、エンベデッド/ホスト CPU コードで呼び出すことができるスタンドアロン アクセラレータとして使用できます。またその他の Vitis ライブラリのカーネルやプリミティブと組み合わせて、エンドツーエンドのプロセッシング パイプラインを高速化することも可能です。

現在利用できる主なアクセラレーション機能には、SVD (特異値分解)、QR LU (lower-upper) 分解、逆行列、三角ソルバー、固有値分解などがあります。


Vitis ソルバー ライブラリ – 機能

現在、Vitis ソルバー ライブラリには、密行列用に次の機能があります。

行列分解

  • 正定値対称行列のコレスキー分解
  • ピボットなし/部分ピボットありの LU 分解
  • 一般的な行列の QR 分解
  • 対称/非対称行列の SVD (特異値分解) (ヤコビ法)

線形ソルバー

  • 三重対角線形ソルバー (並列サイクリック リダクション法)
  • 三角行列の線形ソルバー
  • 対称/非対称行列の線形ソルバー
  • 対称/非対称行列の逆行列

固有値ソルバー

  • 対称行列の固有値ソルバー (ヤコビ法)

プログラマブル ロジック (PL) および AI エンジン (AIE) アレイの機能一覧

Vitis ソルバー ライブラリは、Vitis カーネル開発者のアプリケーション開発を効率化することを目的としており、2 層 (L1 と L2) の API を提供します。次の表では、各層の機能について説明しています。

Vitis ソルバー ライブラリ 2022.2 リリース では、QR 分解およびコレスキー分解の 2 つの機能が追加されています。

ソルバー ライブラリ機能
L1 QR (Quadrature Rotation) 分解
QR_Inverse
SVD (特異値分解)
Cholesky_Inverse
コレスキー分解
AIE の QR 分解
AIE のコレスキー分解
 
L2 行列分解
固有値ソルバー
線形ソルバー

L1 API と L2 API の機能は次のとおりです。

L1 API 行列分解を実行するための機能です。BRAM または URAM へのメモリ インターフェイスを備えた HLS コンポーネントとして設計されています。これらの API は、float、double、complex などの多様なデータ型に対応しています。L1 API は、すべての入力データをメモリ内に準備する必要があるため、入力行列の合計サイズには上限があります。
L2 API FPGA で動作するカーネルです。これらの API は倍精度の浮動小数点型に対応しています。入力として DDR/HBM を読み出して、出力として DDR/HBM に結果を書き込みます。これらはホスト側から呼び出し可能です。

構成

Vitis ソルバー ライブラリは、アプリケーション開発の異なる段階に基づき L1 フォルダーと L2 フォルダーに分けられています。

L1: このフォルダー内の Makefile とソースにより、HLS ベースのフローが効率化し、迅速なチェックが可能になります。

L2: このフォルダー内の Makefile とソースにより、特定デバイスをターゲットとする OpenCL™/XRT フレームワークで記述されたホスト コードを使用して、カーネルのさまざまなソース (HDL、HLS、または XO ファイル) から XCLBIN ファイルを簡単にビルドできます。

vitis-solver-library-org
設計開始