インテル® FPGA SDK for OpenCL: カスタム・プラットフォーム・ツールキット・ユーザーガイド

ID 683085
日付 10/31/2016
Public
ドキュメント目次

1.4.3. MMD ライブラリーの作成

カスタム・プラットフォームは、アクセラレーター・ボードとの通信に必要な MMD レイヤーが必要です。

任意の媒体上のアクセラレーター・ボードと通信するには、オープン、リード、ライト、およびクローズなどといった I/O ファイルに似たソフトウェア・インターフェイスを実装する必要があります。実装結果は、OpenCL™ホスト・アプリケーションがターゲットボードの MMD レイヤーに対してリンクできるようにするリンカー引数のセットです。通信には、MMD レイヤーを完全に実装する DLL ( ダイナミック・リンク・ライブラリー ) も必要です。

図 2.  インテル® FPGA SDK for OpenCL™ ソフトウェア・アーキテクチャーこの図は、ランタイム、HAL ( ハードウェア・アブストラクション・レイヤー )、MMD レイヤー、およびカーネル・モード・ドライバーの 4 つの インテル® FPGA SDK for OpenCL™ ソフトウェア・アーキテクチャーを示しています。

次のタスクは、PCI Express® (PCIe®)で使用する MMD ライブラリーの作成手順についての概要です。

  1. MMD レイヤーを実装する新しいライブラリー・ファイルを次のように命名します。
    <board_vendor_name>_<board_family_name>[_<unique_string>]_mmd.<a|so|lib|dll>
    位置 :
    • <board_vendor_name>は、アクセラレーターボードを担うエンティティーです。
    • <board_family_name>は、ライブラリーがサポートするボードファミリー名です。
    • <unique_string>は、作成の指示です。 インテル® は、リビジョンやインターフェイス型などの情報を含めることを推奨しています。
    • <a|so|lib|dll>は、ファイル拡張子です。アーカイブファイル (.a)、共有オブジェクト・ファイル (.so)、ライブラリー・ファイル (.lib)、ダイナミック・リンク・ライブラリー・ファイル (.dll) のいずれかになります。

    ライブラリー・ファイル名の例 : altera_svdevkit_pcierev1_mmd.so

  2. MMD レイヤーのオぺレーティング・システム固有の実装に、 ALTERAOCLSDKROOT/board/custom_platform_toolkit/mmd/aocl_mmd.hヘッダーファイルを含めます。
    MMD API の概要の項とaocl_mmd.hファイルでは、MMD アプリケーション・プログラミング・インターフェイス (API) の概要、それらの引数および戻り値の詳細を説明しています。
  3. カスタム・プラットフォームで MMD レイヤーを実装し、C/C++ ライブラリーにコンパイルします。
    ファンクショナル MMD ライブラリーのソースコード例は、Arria®10 GX FPGA Development Kit Reference Platform の <path_to_a10_ref>/source/host/mmdディレクトリーで使用可能です。特に、acl_pcie.cppファイルには、aocl_mmd.hファイルで定義されている API 関数が実装されています。
    SDKユーザーがランタイムで特定のライブラリーをロードする必要がある場合、オペレーティング・システムが検出できるディレクトリーにライブラリーを設置します。SDKユーザーに、ランタイムにLD_LIBRARY_PATH (Linux の場合 ) またはPATH (Windows の場合 ) 環境変数にライブラリー・パスを追加するよう指示します。
  4. MMD レイヤーとのリンクに必要なライブラリー・フラグの指定により、board_env.xmlファイルのmmdliblinkflagsエレメントを変更します。