データ並列処理のコード記述 - 2020.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

アルゴリズムの FPGA へのインプリメンテーションで計算の並列処理を活用するには、まずソース コードの計算の並列処理が合成ツールで認識されるようにする必要があります。ループおよび関数は、ソース記述で計算の並列処理および計算ユニットを反映する主な候補ですが、ソース コードの構造によっては Vitis テクノロジで必要な変換を適用できないことがあるので、インプリメンテーションで計算の並列処理の利点が活かされているかどうかを検証することが重要です。

計算の並列処理には、ソース コードに反映されないものもあるので、その場合はソース コードに追加する必要があります。たとえば、カーネルは 1 つの入力値に演算を実行するよう記述されているのに、FPGA インプリメンテーションでは計算が効率的に複数の値に対して並列に実行されるようになることがあります。このような並列モデルについては、全 AXI データ幅の使用 を参照してください。512 ビットのインターフェイスは、int16 または C/C++ 任意精度データ型 ap_int<512> などの OpenCL ベクター データ型を使用して作成できます。

注記: これらのベクター型も、カーネル内のデータの並列処理をモデリングする方法として使用できます (int16 の場合は 16 個までのデータパスを並列処理可能)。ベクター型の使用に推奨される方法は、GitHub の Xilinx Getting Started Examplesvision カテゴリから Median Filter Example を参照してください。