1 つのカーネルの開発 - 2023.2 日本語

AI エンジン ツールおよびフロー ユーザー ガイド (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 日本語

AI エンジンで最高のパフォーマンスを達成するためのシングル カーネル プログラミングでの主な目的は、ベクター プロセッサの使用が論理的な最大値に近づくようにすることです。アルゴリズムのベクター化は重要ですが、ベクター レジスタ、メモリ アクセス、およびソフトウェアのパイプライン処理を管理することも必要です。ベクター プロセッサでは 1 クロック サイクルごとに 1 つの演算が可能なので、できるだけ現在の演算中に次の演算用にデータを読み込むようにします。AI エンジンのアルゴリズムをインプリメントする際は、データ型とそれらのデータ型を演算するベクター組み込み関数に基づいてベクター化を開始する必要があります。データ型によって、さまざまな組み込み関数が複数の要素に同時に演算を実行します。内側のループにシーケンシャルまたはループ運搬依存がある場合、外側のループを展開して複数の値を並列に計算できる場合があります。ベクター組み込み関数を問題を解決するために使用する方法は多数あります。AMD Versal™ アダプティブ SoC はのアルゴリズムをインプリメントする際は、AI エンジンが得意な処理は何か、何をどのエンジン (スカラー エンジン、適応型エンジン、DSP エンジンなど) にインプリメントするのが良いかを理解する必要があります。

Vitis IDE では、AI エンジン シングル カーネル開発をサポートするため、従来のプロセッサ サポートに加え、AI エンジン カーネル開発がサポートされます。Vitis IDE には、シングル カーネル開発の開始点として使用可能なシングル ノード グラフの例が含まれます。Vitis IDE には、各カーネルのレジスタ、変数、使用可能なブレークポイント、レジスタ/メモリ マップへの変数、内部/外部メモリの内容、および命令パイプライン ([Pipeline] ビュー) を表示するデバッグ表示があります。

ヒント: エミュレーション実行後に --profile オプションをイネーブルにすると、クロック サイクル カウント レポートが生成されます。