インテルのみ表示可能 — GUID: ewa1410285225736
Ixiasoft
2.3.1. aocl_mmd_get_offline_info
2.3.2. aocl_mmd_get_info
2.3.3. aocl_mmd_open
2.3.4. aocl_mmd_close
2.3.5. aocl_mmd_read
2.3.6. aocl_mmd_write
2.3.7. aocl_mmd_copy
2.3.8. aocl_mmd_set_interrupt_handler
2.3.9. aocl_mmd_set_status_handler
2.3.10. aocl_mmd_yield
2.3.11. aocl_mmd_shared_mem_alloc
2.3.12. aocl_mmd_shared_mem_free
2.3.13. aocl_mmd_reprogram
インテルのみ表示可能 — GUID: ewa1410285225736
Ixiasoft
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 ライブラリーの作成手順についての概要です。
- 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
- MMD レイヤーのオぺレーティング・システム固有の実装に、 ALTERAOCLSDKROOT/board/custom_platform_toolkit/mmd/aocl_mmd.hヘッダーファイルを含めます。
MMD API の概要の項とaocl_mmd.hファイルでは、MMD アプリケーション・プログラミング・インターフェイス (API) の概要、それらの引数および戻り値の詳細を説明しています。
- カスタム・プラットフォームで 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 の場合 ) 環境変数にライブラリー・パスを追加するよう指示します。
- MMD レイヤーとのリンクに必要なライブラリー・フラグの指定により、board_env.xmlファイルのmmdlibとlinkflagsエレメントを変更します。