OpenCL 属性 - 2020.1 日本語

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

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

このセクションでは、Vitis コア開発キットおよび Vitis HLS ツール合成でのシステム最適化のために、ソース コードに追加可能な OpenCL™ 属性について説明します。

Vitis コア開発キットでは、コードをデータの動きとカーネル パフォーマンスで最適化する OpenCL 属性が提供されています。データの動きの最適化は、インターフェイス帯域幅および DDR 帯域幅の最大限に活用することにより、システム レベルのデータ スループットを最大にすることを目的として実行されます。カーネル計算最適化は、カーネル インターフェイスにデータが到達したらすぐにすべてのデータを消費できるプロセッシング ロジックを作成することを目的として実行されます。これは通常、関数のインライン展開とパイプライン処理、ループ展開、配列分割、データフローなどの手法を使用してデータパスを一致させるようにプロセッシング コードを展開することによって達成されます。

次の表では、OpenCL 属性がタイプ別にリストされています。

表 1. OpenCL 属性 (タイプ別)
タイプ 属性
カーネル最適化
関数のインライン展開
タスク レベルのパイプライン処理
パイプライン処理
ループ最適化
配列最適化
注記: 配列変数では、使用できる配列最適化属性は 1 つのみです。
ヒント: Vitis コンパイラでは、gcc でサポートされる次のような多くの標準属性もサポートされます。
  • ALWAYS_INLINE
  • NOINLINE
  • UNROLL
  • NOUNROLL