OpenCL ホスト アプリケーション - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

Vitis™ コア開発キットでは、ホスト コードをザイリンクス ランタイム (XRT) API や業界標準の OpenCL™ API を使用した C または C++ 言語で記述します。XRT ネイティブ API については、 XRT サイト (https://xilinx.github.io/XRT/master/html/xrt_native_apis.html) を参照してください。Vitis コア開発キットでは、https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf で説明される OpenCL 1.2 API がサポートされます。OpenCL への XRT 拡張については、https://xilinx.github.io/XRT/master/html/opencl_extension.html を参照してください。

ヒント: このコード例では、OpenCL C 言語 API を使用しています。

通常、ホスト コードは次の 3 つのセクションに分けることができます。

  1. 環境の設定。
  2. 1 つまたは複数のカーネルの実行を含むコア コマンドの実行。
  3. リソースのポスト プロセスとリリース。
ヒント: Vitis コア開発キットでは、OpenCL インストーラブル クライアント ドライバー (ICD) 拡張 (cl_khr_icd) がサポートされます。これにより、OpenCL を複数インプリメンテーションして、同じシステム内に共存させることができます。インストール方法の詳細は、OpenCL インストーラブル クライアント ドライバー ローダー を参照してください。
注記: ホスト プログラムをマルチスレッドで実行する場合は、Vitis コア開発キットアプリケーションからの fork() システム呼び出しを呼び出す際に注意が必要です。fork() は、すべてのランタイム スレッドを複製するわけではありません。このため、子プロセスを完全な Vitis コア開発キットのアプリケーションとして実行することはできません。Vitis ソフトウェア プラットフォーム アプリケーションから別のプロセスを起動する場合は、posix_spawn() を使用することをお勧めします。