インテル FPGA プログラマブル アクセラレーション カード D5005
この文書について
このドキュメントでは、ダイレクト メモリ アクセス (DMA) アクセラレータ機能ユニット (AFU) の実装と、ハードウェアまたはシミュレーションで実行するデザインを構築する方法について説明します。
対象読者
対象読者は、インテル® FPGA デバイスに接続されたメモリーにデータをローカルにバッファーするためのアクセラレーター関数 (AF) を必要とするハードウェアまたはソフトウェア開発者です。
コンベンション
文書の規則
大会 | 説明 |
# | コマンドを root として入力する必要があることを示すコマンドの前に付けます。 |
$ | コマンドがユーザーとして入力されることを示します。 |
このフォント | File名前、コマンド、およびキーワードは、このフォントで印刷されます。 長いコマンド ラインは、このフォントで印刷されます。 長いコマンド行は次の行に折り返される場合がありますが、戻り値はコマンドの一部ではありません。 エンターを押さないでください。 |
山かっこの間に表示されるプレースホルダー テキストを適切な値に置き換える必要があることを示します。 山かっこは入力しないでください。 |
頭字語
頭字語
頭字語 | 拡大 | 説明 |
AF | アクセラレータ機能 | アプリケーションを高速化する FPGA ロジックに実装されたコンパイル済みハードウェア アクセラレータ イメージ。 |
オーストラリア連邦 | アクセラレータ機能ユニット | アプリケーションの計算操作を CPU からオフロードしてパフォーマンスを向上させる、FPGA ロジックに実装されたハードウェア アクセラレータ。 |
翻訳 | アプリケーションプログラミングインターフェース | ソフトウェア アプリケーションを構築するためのサブルーチン定義、プロトコル、およびツールのセット。 |
CCI-P | コア キャッシュ インターフェイス | CCI-P は、AFU がホストとの通信に使用する標準インターフェースです。 |
DFH | デバイス機能ヘッダー | 機能ヘッダーのリンクされたリストを作成して、機能を追加する拡張可能な方法を提供します。 |
続き… |
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
頭字語 | 拡大 | 説明 |
フィム | FPGA インターフェイス マネージャー | FPGA インターフェイス ユニット (FIU) とメモリ、ネットワークなどの外部インターフェイスを含む FPGA ハードウェア。
アクセラレータ関数 (AF) は、実行時に FIM とやり取りします。 |
国際大学 | FPGAインターフェースユニット | FIU は、PCIe*、UPI などのプラットフォーム インターフェイスと、CCI-P などの AFU 側インターフェイス間のブリッジとして機能するプラットフォーム インターフェイス層です。 |
マルチレベル | メモリ プロパティ ファクトリ | MPF は、AFU が FIU とのトランザクションに CCI-P トラフィック シェーピング操作を提供するために使用できる Basic Building Block (BBB) です。 |
加速度用語集
FPGA を搭載したインテル® Xeon® CPU のアクセラレーション・スタック
学期 | 略語 | 説明 |
FPGA 搭載インテル Xeon® CPU 向けインテル® アクセラレーション・スタック | 加速スタック | インテル FPGA とインテル Xeon プロセッサー間のパフォーマンスが最適化された接続を提供するソフトウェア、ファームウェア、およびツールのコレクション。 |
インテル FPGA プログラマブル・アクセラレーション・カード | インテル FPGA PAC | PCIe FPGA アクセラレータ カード。
PCIe バスを介してインテル Xeon プロセッサーとペアリングする FPGA インターフェイス マネージャー (FIM) が含まれています。 |
- DMA アクセラレーター機能ユニット ユーザーガイド: Intel FPGA Programmable Acceleration Card D5005
DMA AFU 説明
導入
ダイレクト メモリ アクセス (DMA) AFU exampファイルは、ホスト プロセッサと FPGA 間のメモリ転送を管理する方法を示しています。 DMA AFU をデザインに統合して、ホスト メモリと FPGA ローカル メモリの間でデータを移動できます。DMA AFU は、次のサブモジュールで構成されます。
- メモリ プロパティ ファクトリ (MPF) ベーシック ビルディング ブロック (BBB)
- Avalon® Memory-Mapped (Avalon-MM) アダプターへの Core Cache Interface (CCI-P)
- DMA BBB を含む DMA テスト システム
これらのサブモジュールについては、以下の DMA AFU ハードウェア コンポーネントのトピックで詳しく説明しています。
関連情報
- DMA AFU ハードウェア コンポーネント (6 ページ)
- Avalon インターフェース仕様
読み取りおよび書き込みトランザクションのタイミング図を含む、Avalon-MM プロトコルの詳細については、.
DMA AFU ソフトウェア パッケージ
FPGA パッケージを搭載したインテル Xeon CPU 向けのインテル アクセラレーション スタック file (*.tar.gz)、DMA AFU ex を含むampル。 この元ample は、ユーザー空間ドライバーを提供します。 ホスト アプリケーションは、DMA がホストと FPGA メモリ間でデータを移動するように、このドライバーを使用します。 ハードウェア バイナリ、ソース、およびユーザー空間ドライバーは、次のディレクトリにあります。 $OPAE_PLATFORM_ROOT/hw/samples/dma_afu . DMA AFU を試す前に、Open Programmable Acceleration Engine (OPAE) ソフトウェア パッケージをインストールする必要があります。 インストール手順については、インテル FPGA プログラマブル・アクセラレーション・カード D5005 のインテル・アクセラレーション・スタック・クイック・スタート・ガイドの OPAE ソフトウェア・パッケージのインストールを参照してください。 このクイック スタート ガイドには、Open Programmable Acceleration Engine (OPAE) と AFU の構成に関する基本情報も含まれています。 Open Programmable Acceleration Engine (OPAE) ソフトウェア パッケージをインストールした後、ampファイル ホスト アプリケーションと DMA AFU ユーザー空間ドライバーは、次のディレクトリにあります: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw. を実行するにはampホスト・アプリケーション fpga_dma_test を Intel FPGA PAC D5005 ハードウェアで実行するには、「DMA AFU Ex の実行」セクションの手順を参照してください。ampル。 インテルコーポレーション。 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、インテルの標準保証に従って、FPGA および半導体製品の性能を現在の仕様に合わせて保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開されている情報を信頼したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前およびブランドは、他者の所有物として主張される場合があります。
関連情報
- インテル FPGA プログラマブル・アクセラレーション・カード D5005 のインテル・アクセラレーション・スタック・クイック・スタート・ガイド
- OPAE ソフトウェア パッケージのインストール
DMA AFU ハードウェア コンポーネント
DMA AFU は、FPGA インターフェイス ユニット (FIU) および FPGA メモリとインターフェイスします。 FPGA メモリーの詳細な仕様については、FPGA Interface Manager Data Sheet for Intel FPGA Programmable Acceleration Card D5005 を参照してください。 現在利用可能なハードウェアによって、このメモリ構成が決まります。 将来のハードウェアでは、異なるメモリ構成がサポートされる可能性があります。 DMA AFU を使用して、次のソースと宛先の場所の間でデータをコピーできます。
- ホストからデバイスへの FPGA メモリ
- ホストへのデバイス FPGA メモリ
Platform Designer システム、$OPAE_PLATFORM_ROOT/hw/sampレ/dma_afu/hw/rtl/TEST_dma/ /dma_test_system.qsys はほとんどの DMA を実装します
- AFU。 Platform Designer システムに実装されている DMA AFU の一部は、次の場所にあります。
場所:$OPAE_PLATFORM_ROOT/hw/sampレ/dma_afu/hw/rtl/TEST_dma/ DMA BBB は次の場所にあります。
- $OPAE_PLATFORM_ROOT/ハードウェア/秒ampレ/dma_afu/hw/rtl/dma_bbb
DMA アクセラレーター機能ユニット ユーザーガイド: Intel FPGA Programmable Acceleration Card D5005
DMA AFU ハードウェアのブロック図
DMA AFU には、FPGA インターフェイス ユニット (FIU) とインターフェイスする次の内部モジュールが含まれています。
- Memory-Mapped IO (MMIO) Decoder Logic: MMIO 読み取りおよび書き込みトランザクションを検出し、それらが到着した CCI-P RX チャネル 0 からそれらを分離します。 これにより、MMIO トラフィックが MPF BBB に決して到達せず、独立した MMIO コマンド チャネルによって処理されることが保証されます。
- メモリ プロパティ ファクトリ (MPF): このモジュールは、DMA からの読み取り応答が発行された順序で返されるようにします。 Avalon-MM プロトコルでは、読み取り応答が正しい順序で返される必要があります。
- CCI-P to Avalon-MM Adapter: このモジュールは、次のように、CCI-P と Avalon-MM のトランザクションを変換します。
- CCI-P to Avalon-MMIO Adapter: このパスは、CCI-P MMIO トランザクションを Avalon-MM トランザクションに変換します。
- Avalon to CCI-P Host Adapter: これらのパスは、DMA がホストメモリにアクセスするための個別の読み取り専用パスと書き込み専用パスを作成します。
- DMA テスト システム: このモジュールは、DMA BBB のラッパーとして機能し、DMA マスターを AFU 内の残りのロジックに公開します。 これは、DMA BBB と CCI-P to Avalon Adapter 間のインターフェイスを提供します。 また、DMA BBB とローカル FPGA SDRAM バンク間のインターフェイスも提供します。
関連情報
インテル FPGA プログラマブル・アクセラレーション・カード D5005 用 FPGA インターフェイス・マネージャーのデータシート
DMAテストシステム
DMA テスト システムは、DMA BBB を、CCI-P アダプテーションやローカル FPGA メモリを含む残りの FPGA デザインに接続します。
DMA テスト システムのブロック図
このブロック図は、DMA テスト システムの内部を示しています。 DMA テスト システムは、1 ページの図 7 にモノリシック ブロックとして示されています。
DMA テスト システムには、次の内部モジュールが含まれています。
- ファー リーチ ブリッジ/パイプライン ブリッジ: トポロジを制御し、設計の Fmax を改善するために遅延を調整できるパイプライン ブリッジ。
- DMA AFU Device Feature Header (DFH): これは、DMA AFU の DFH です。 この DFH は、オフセット 0x100 (DMA BBB DFH) にある次の DFH を指します。
- Null DFH: このコンポーネントは、DFH リンク リストを終了します。 デザインに DMA BBB を追加する場合は、NULL DFH ベース アドレスが DFH リンク リストの最後にあることを確認してください。
- MA Basic Building Block (BBB): このブロックは、ホストとローカル FPGA メモリの間でデータを移動します。 また、ホスト メモリにアクセスして記述子チェーンにアクセスします。
DMA BBB
DMA BBB サブシステムは、Avalon-MM トランザクションを使用してソース アドレスから宛先アドレスにデータを転送します。 DMA ドライバは、システム内のさまざまなコンポーネントの制御およびステータス レジスタにアクセスすることによって、DMA BBB を制御します。 DMA ドライバは、共有メモリを使用して転送記述子を通信することにより、DMA BBB も制御します。 DMA BBB は、FPGA メモリ内のオフセット 0x0 のデータにアクセスします。 DMA BBB は、オフセット 0x1_0000_0000_0000 にあるホスト メモリのデータと記述子にアクセスします。
DMA BBB Platform Designer のブロック図
このブロック図は、一部の内部パイプライン ブリッジ IP コアを除外しています。
DMA アクセラレーター機能ユニット ユーザーガイド: Intel FPGA Programmable Acceleration Card D5005
DMA AFU 説明
DMA BBB Platform Designer のコンポーネントは、次の機能を実装します。
- ファー リーチ ブリッジ/パイプライン ブリッジ: トポロジーを制御し、設計の Fmax を改善するために、遅延を調整できるパイプライン ブリッジが含まれています。
- MA BBB DFH: これは、DMA BBB のデバイス機能ヘッダーです。 この DFH は、オフセット 0x100 (ヌル DFH) にある次の DFH を指します。
- 記述子フロントエンド: 記述子を取得して Dispatcher に転送する責任があります。 DMA 転送が完了すると、フロントエンドは Dispatcher からステータス形成を受け取り、ホスト メモリ内の記述子を上書きします。
- ディスパッチャ: このブロックは、読み取りおよび書き込みマスターへの DMA 転送要求をスケジュールします。
- 読み取りマスター: このブロックは、ホストまたはローカル FPGA メモリからデータを読み取り、それをストリーミング データとして書き込みマスターに送信します。
- 書き込みマスター: このブロックは、リード マスターからストリーミング データを受信し、その内容をホストまたはローカル FPGA メモリに書き込む役割を果たします。
マップとアドレス空間の登録
DMA AFU は XNUMX つのメモリをサポートします views: DMA view そしてホスト view. DMA view 49 ビットのアドレス空間をサポートします。 DMAの下半分 view ローカル FPGA メモリにマップされます。 DMAの上半分 view ホスト メモリにマップします。 ザ・ホスト view DFH テーブルなどの MMIO アクセスを介してアクセス可能なすべてのレジスタ、および DMA AFU 内で使用されるさまざまな IP コアの制御/ステータス レジスタが含まれます。 DMA BBB と AFU の MMIO レジスタは、32 ビットと 64 ビットのアクセスをサポートします。 DMA AFU は、512 ビット MMIO アクセスをサポートしていません。 DMA BBB 内の Dispatcher レジスタへのアクセスは 32 ビットである必要があります (ディスクリプタ フロントエンドは 64 ビット レジスタを実装します)。
DMA AFU レジスタマップ
DMA AFU レジスタ マップは、ユニット内のすべての位置の絶対アドレスを提供します。 これらのレジスタはホストにあります view それらにアクセスできるのはホストだけだからです。
DMA AFU メモリマップ
バイト アドレス オフセット | 名前 | バイト単位のスパン | 説明 |
0x0 | DMA AFU DFH | 0x40 | DMA AFU のデバイス機能ヘッダー。 ID_L は 0x9081f88b8f655caa に設定され、ID_H は 0x331db30c988541ea に設定されます。 DMA AFU DFH は、次の DFH (DMA BBB DFH) を見つけるためにオフセット 0x100 を指すようにパラメーター化されています。 DMA AFU DFH のベース アドレスは、CCIP 仕様で定義されているようにアドレス 0x0 に配置する必要があるため、変更しないでください。 |
0x100 | DMA BBB | 0x100 | DMA BBB コントロールおよびステータス レジスタ インターフェイスを指定します。 詳細については、DMA BBB レジスタ マップを参照してください。 オフセット 0 の DMA BBB 内に、DMA BBB には独自の DFH が含まれています。 この DFH は、オフセット 0x100 (NULL DFH) で次の DFH を見つけるように設定されています。 さらに DMA BBB を追加する場合は、それらを 0x100 間隔で配置し、NULL DFH が最後の DMA の後に 0x100 だけ続くようにします。 |
0x200 | NULL DFH | 0x40 | DFH リンク リストを終了します。 ID_L は 0x90fe6aab12a0132f に設定され、ID_H は 0xda1182b1b3444e23 に設定されます。 NULL DFH は、ハードウェアの最後の DFH になるようにパラメーター化されています。 このため、NULL DFH はアドレス 0x200 にあります。 システムに追加の DMA BBB を追加する場合は、それに応じて NULL DFH ベース アドレスを増やして、最上位アドレスのままにする必要があります。 DMA ドライバーとテスト アプリケーションは、このハードウェアを使用しません。 |
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
マップとアドレス空間の登録
DMA BBB メモリマップ
次のバイト アドレスは、DMA AFU システムの DMA BBB ベース アドレス (0x100) からの相対オフセットです。
バイト アドレス オフセット | 名前 | バイト単位のスパン | 説明 |
0x0 | DMA BBB DFH | 0x40 | DMA AFU のデバイス機能ヘッダー。 ID_L は 0xa9149a35bace01ea に設定され、ID_H は 0xef82def7f6ec40fc に設定されます。 DMA BBB DFH は、次の DFH オフセットの 0x100 を指すようにパラメーター化されています。 この次のオフセットは、別の DMA BBB、別の DFH (この設計には含まれていません)、または NULL DFH です。 |
0x40 | ディスパッチャ | 0x40 | ディスパッチャの制御ポート。 DMA ドライバーは、この場所を使用して DMA を制御したり、その状態を照会したりします。 |
0x80 | 記述子フロントエンド | 0x40 | ディスクリプタ フロントエンドは、ホスト メモリからディスクリプタを読み取り、DMA 転送の完了時にディスクリプタを上書きするカスタム コンポーネントです。 ドライバーは、最初の記述子がホスト メモリに存在する場所をフロントエンドに指示し、次にフロントエンド ハードウェアは、主にホスト メモリに格納されている記述子を介してドライバーと通信します。 |
DMA AFU アドレス空間
ホストは、4 ページの表 12 および 5 ページの表 13 にリストされているレジスタにアクセスできます。DMA BBB サブシステムは、49 ビット アドレス空間全体にアクセスできます。 このアドレス空間の下半分には、ローカル FPGA メモリが含まれます。 このアドレス空間の上半分には、48 ビットのホスト アドレス メモリが含まれます。 次の図は、ホストと DMA を示しています。 viewsのメモリ。
DMA AFU とホスト Viewメモリーの
デバイス機能ヘッダー リンク リスト
DMA AFUの設計例ampファイルには、リンクされたリストを形成する XNUMX つのデバイス機能ヘッダー (DFH) が含まれています。 このリンクされたリストでは、ampDMA AFU を識別するためのファイル アプリケーションと、DMA BBB を識別するためのドライバ。 DFH リストには、最後に NULL DFH が含まれています。 リンクされたリストの最後にヌル DFH を含めると、デザインに DMA BBB を追加できます。 NULL DFH を他の BBB の後のアドレスに移動するだけです。 各 DMA BBB は、次の DFH が BBB のベース アドレスから 0x100 バイトの位置にあると想定します。 次の図は、DMA AFU 設計 ex のリンク リストを示しています。ampル。
マップとアドレス空間の登録
DMA AFU デバイス機能ヘッダー (DFH) チェーン
ソフトウェア プログラミング モデル
DMA AFU には、独自のホスト アプリケーションで使用できるソフトウェア ドライバーが含まれています。 fpga_dma.cpp と fpga_dma.h file次の場所にある s は、ソフトウェア ドライバを実装します:$OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw このドライバーは、次の機能をサポートしています。
翻訳 | 説明 |
fpgaCountDMAC チャネル | DMA BBB のデバイス機能チェーンをスキャンし、使用可能なすべてのチャネルをカウントします。 |
fpgaDMA開く | DMA チャネルへのハンドルを開きます。 |
fpgaDMA閉じる | DMA チャネルへのハンドルを閉じます。 |
fpgaDMATransferInit | DMA 転送を表すオブジェクトを初期化します。 |
fpgaDMATransferReset | DMA 転送属性オブジェクトをデフォルト値にリセットします。 |
fpgaDMATransferDestroy | DMA 転送属性オブジェクトを破棄します。 |
fpgaDMATransferSetSrc | 転送元アドレスを設定します。 このアドレスは 64 バイトでアラインされている必要があります。 |
fpgaDMATransferSetDst | 転送先アドレスを設定します。 このアドレスは 64 バイトでアラインされている必要があります。 |
fpgaDMATransferSetLen | 転送長をバイト単位で設定します。 非パケット転送の場合、転送長を 64 バイトの倍数に設定する必要があります。 パケット転送の場合、これは必須ではありません。 |
fpgaDMATransferSetTransferType | 転送タイプを設定します。 有効な値は次のとおりです。
• HOST_MM_TO_FPGA_MM = TX (ホストから AFU へ) • FPGA_MM_TO_HOST_MM = RX (AFU からホストへ) |
fpgaDMATransferSetTransferCallback | 非同期転送完了通知用のコールバックを登録します。 コールバックを指定すると、fpgaDMATransfer はすぐに戻ります (非同期転送)。
コールバックを指定しない場合、fpgaDMATransfer は転送が完了した後に戻ります (同期/ブロッキング転送)。 |
fpgaDMATransferSetLast | DMA がプリフェッチされた転送の処理を開始できるように、最後の転送を示します。 デフォルト値は、DMA が転送処理を開始する前のパイプラインでの 64 回の転送です。 |
fpgaDMA転送 | DMA 転送を実行します。 |
API、入力、および出力引数の詳細については、ヘッダーを参照してください。 file $OPAE_PLATFORM_ROOT/hw/s にありますamples/dma_afu/sw/fpga_dma.hIntel Corporation. 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、インテルの標準保証に従って、FPGA および半導体製品の性能を現在の仕様に合わせて保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開されている情報を信頼したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。 他の名前およびブランドは、他者の所有物であると主張される場合があります。
ソフトウェア プログラミング モデル
ソフトウェア ドライバーの使用モデルの詳細については、README を参照してください。 file $OPAE_PLATFORM_ROOT/hw/s にありますamples/dma_afu/README.md
DMA AFU Ex の実行ample
始める前に:
- あなたは元に精通している必要がありますampインテル FPGA プログラマブル・アクセラレーション・カード D5005 のインテル・アクセラレーション・スタック・クイック・スタート・ガイドのファイル。
- 環境変数を定義する必要があります。 環境変数は、使用しているインテル アクセラレーション スタックのバージョンによって異なります。
- 現在のバージョンでは、環境変数を $OPAE_PLATFORM_ROOT に設定します
- DMA ドライバーが依存しているため、Intel Threading Building Blocks (TBB) ライブラリをインストールする必要があります。
- また、s を実行するために 1 GB の hugepage を XNUMX つセットアップする必要があります。ampルアプリケーション。 $ sudo sh -c “echo 2 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages”
次の手順を実行して、DMA アクセラレータ ファンクション (AF) ビットストリームをダウンロードし、アプリケーションとドライバーをビルドして、デザイン ex を実行します。amp上:
- DMA アプリケーションとドライバーのディレクトリに移動します: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
- ドライバーとアプリケーションをビルドします: make
- DMA AFU ビットストリームをダウンロードします: sudo fpgasupdate ../bin/dma_afu_unsigned.gbs
- ホスト アプリケーションを実行して、ホスト メモリから FPGA デバイス メモリに 100 MB ずつ 1 MB を書き込み、それを読み戻します。
関連情報
インテル FPGA プログラマブル アクセラレーション カード D5005 インテル コーポレーションのインテル アクセラレーション スタック クイック スタート ガイド。 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、インテルの標準保証に従って、FPGA および半導体製品の性能を現在の仕様に合わせて保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開されている情報を信頼したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前およびブランドは、他者の所有物として主張される場合があります。
DMA AFU Ex のコンパイルample
AF をコンパイルするための合成ビルド環境を生成するには、次のように afu_synth_setup コマンドを使用します。
- DMA AFU に変更ampファイル ディレクトリ: $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- デザイン ビルド ディレクトリを生成します: afu_synth_setup –source hw/rtl/filelist.txt build_synth
- afu_synth_setup によって生成された合成ビルド ディレクトリから、ターミナル ウィンドウから次のコマンドを入力して、ターゲット ハードウェア プラットフォーム用の AF を生成します。 cd build_synth run.sh run.sh AF 生成スクリプトは、同じベースで AF イメージを作成します。 fileAFUのプラットフォーム構成として名前を付けます file (.json) $OPAE_PLATFORM_ROOT/hw/s の場所に .gbs サフィックスが付いたamples/build_synth/dma_afu_s10.gbs インテル コーポレーション。 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、インテルの標準保証に従って、FPGA および半導体製品の性能を現在の仕様に合わせて保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開されている情報を信頼したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前およびブランドは、他者の所有物として主張される場合があります。
AFU Ex のシミュレーションample
インテルは、インテル FPGA PAC のインテル アクセラレーター機能ユニット (AFU) シミュレーション環境 (ASE) クイック スタート ガイドを参照して、同様の例のシミュレーションに精通することをお勧めします。ampファイルを作成して環境をセットアップします。 次の手順に進む前に、OPAE_PLATFORM_ROOT 環境変数が OPAE SDK インストール ディレクトリに設定されていることを確認します。 DMA AFU のハードウェア シミュレータをセットアップするには、次の手順を実行します。
- DMA AFU に変更ampファイル ディレクトリ: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu
- 新しいディレクトリに ASE 環境を作成し、AFU をシミュレートするように構成します: afu_sim_setup –source hw/rtl/filelist.txt build_ase_dir
- ASE ビルド ディレクトリに移動します: cd build_ase_dir
- ドライバーとアプリケーションをビルドします: make
- シミュレーションを作成: sim を作成
Sampハードウェア シミュレータからのファイル出力:
[SIM] ** 注意: ソフトウェア アプリケーションを実行する前に ** [SIM] アプリケーションが実行される端末で env(ASE_WORKDIR) を設定します (コピー アンド ペースト) => [SIM] $SHELL | 実行:[SIM] ——+—————————————————— [SIM] bash/zsh | ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/s をエクスポートします。amples/dma_afu/ase_mkdir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/ase_mkdir/work [SIM] その他の $SHELL については、Linux 管理者に相談してください [SIM] [SIM] シミュレーションの準備ができました… [SIM] CTRL-C を押してシミュレーターを閉じます…シミュレーション環境で DMA AFU ソフトウェアをコンパイルして実行するには、次の手順を実行します。
- 新しいターミナルウィンドウを開きます。
- ディレクトリを次のように変更します: cd $OPAE_PLATFORM_ROOT/hw/samples/dma_afu/sw
インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。
AFU Ex のシミュレーションample
- 上記のハードウェア シミュレーションの手順から環境設定文字列 (シェルに適した文字列を選択) をターミナル ウィンドウにコピーします。 の次の行を参照してください。ampハードウェア シミュレータからのファイル出力。 [SIM] bash/zsh | ASE_WORKDIR=$OPAE_PLATFORM_ROOT/hw/s をエクスポートします。amples/dma_afu/build_ase_dir/work [SIM] tcsh/csh | setenv ASE_WORKDIR $OPAE_PLATFORM_ROOT/hw/sampレ/dma_afu/build_ase_dir/work
- ソフトウェアをコンパイルします: $ make USE_ASE=1
- ホスト アプリケーションを実行して、ループバック モードでホスト メモリから FPGA デバイス メモリに 4 KB ずつ 1 KB を書き込みます: ./ fpga_dma_test -s 4096 -p 1024 -r mtom
関連情報
インテル アクセラレーター機能ユニット (AFU) シミュレーション環境 (ASE) クイック スタート ユーザー ガイド
DMA パフォーマンスを改善するための最適化
fpga_dma_test.cpp での NUMA (非一様メモリ アクセス) 最適化の実装により、プロセッサは非ローカル メモリ (別のプロセッサにローカルなメモリ) にアクセスするよりも高速に独自のローカル メモリにアクセスできます。 一般的な NUMA 構成を次の図に示します。 ローカル アクセスは、コアから同じコアにローカルなメモリへのアクセスを表します。 リモート アクセスは、ノード 0 のコアがノード 1 のローカル メモリに存在するメモリにアクセスするときにたどるパスを示しています。
一般的な NUMA 構成
次のコードを使用して、テスト アプリケーションに NUMA 最適化を実装します。
// 要求があれば適切なアフィニティを設定します if (cpu_affinity || memory_affinity) {unsigned dom = 0, bus = 0, dev = 0, func = 0; fpga_properties props;int retval; #if(FPGA_DMA_DEBUG)char str[4096]; #endifres = fpgaGetProperties(afc_token, &props); ON_ERR_GOTO(res, out_destroy_tok, “fpgaGetProperties”); res = fpgaPropertiesGetBus(props, (uint8_t *) & バス);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetBus”); res = fpgaPropertiesGetDevice(props, (uint8_t *) & dev);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetDevice”) res = fpgaPropertiesGetFunction(props, (uint8_t *) & func);ON_ERR_GOTO(res, out_destroy_tok, “fpgaPropertiesGetFunction”); // トポロジ hwloc_topology_t トポロジからデバイスを見つけます。 hwloc_topology_init(&トポロジー); hwloc_topology_set_flags(トポロジー, HWLOC_TOPOLOGY_FLAG_IO_DEVICES);インテル コーポレーション。 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、FPGA および半導体製品のパフォーマンスがインテルの標準保証に従って現在の仕様に準拠していることを保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開されている情報を信頼したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前およびブランドは、他者の所有物として主張される場合があります。
DMA パフォーマンスを改善するための最適化
hwloc_topology_load (トポロジ); hwloc_obj_t obj = hwloc_get_pcidev_by_busid(トポロジー、dom、バス、dev、func); hwloc_obj_t obj2 = hwloc_get_non_io_ancestor_obj(トポロジー、obj); #if (FPGA_DMA_DEBUG) hwloc_obj_type_snprintf(str, 4096, obj2, 1); printf(“%s\n”, str);hwloc_obj_attr_snprintf(str, 4096, obj2, ” :: “, 1);printf(“%s\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->cpuset); printf(“CPUSET は %s です\n”, str); hwloc_bitmap_taskset_snprintf(str, 4096, obj2->nodeset); printf(“NODESET is %s\n”, str);#endif if (memory_affinity) { #if HWLOC_API_VERSION > 0x00020000 retval = hwloc_set_membind(topology, obj2->nodeset,HWLOC_MEMBIND_THREAD, HWLOC_MEMBIND_MIGRATE |HWLOC_MEMBIND_BYNODESET); #else retval =hwloc_set_membind_nodeset(トポロジー、obj2->ノードセット、HWLOC_MEMBIND_THREAD、HWLOC_MEMBIND_MIGRATE); #endifON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_membind”); } if (cpu_affinity) { retval = hwloc_set_cpubind(トポロジー、obj2->cpuset、HWLOC_CPUBIND_STRICT); ON_ERR_GOTO(retval, out_destroy_tok, “hwloc_set_cpubind”); } }
DMA アクセラレータ機能ユニット ユーザー ガイドのアーカイブ
インテル アクセラレーション スタックのバージョン | ユーザーガイド(PDF) |
2.0 | DMA アクセラレータ機能ユニット (AFU) ユーザーガイド |
DMA アクセラレータ機能ユニット ユーザー ガイドの文書改訂履歴
ドキュメントバージョン |
インテルアクセラレーション スタック バージョン |
変更点 |
2020.08.03 |
2.0.1 (インテルでサポート
Quartus® Prime プロ・エディション エディション 19.2) |
AF画像修正 file セクションの名前 DMA AFU Ex のコンパイルample. |
2020.04.17 |
2.0.1 (インテルでサポート
Quartus Prime プロ・エディション エディション 19.2) |
のステートメントを修正しました 対象読者 セクション。 |
2020.02.20 |
2.0.1 (インテルでサポート
Quartus Prime プロ・エディション エディション 19.2) |
タイプミスを修正しました。 |
2019.11.04 |
2.0.1 (インテルでサポート Quartus Prime プロ・エディション エディション 19.2) |
• セクションのビルド前の AFU を使用して FPGA を構成するときに、fpgaconf を fpgasupdate に置き換えました。 DMA AFU Ex の実行ample.
• サブタイトルを追加 インテル FPGA プログラマブル アクセラレーション カード D5005 ドキュメントのタイトルに。 • 環境変数 $OPAE_PLATFORM_ROOT を追加しました。 • 変更されたセクション ソフトウェア プログラミング モデル マイナーな編集用。 • 新しいセクションを追加 DMA AFU Ex のコンパイルample. • 変更されたセクション DMA パフォーマンスを改善するための最適化 マイナーな編集用。 |
2019.08.05 |
2.0 (インテルでサポート
Quartus Prime プロ・エディション 18.1.2) |
初回リリース。 |
インテルコーポレーション。 全著作権所有。 Intel、Intel ロゴ、およびその他の Intel マークは、Intel Corporation またはその子会社の商標です。 インテルは、インテルの標準保証に従って、FPGA および半導体製品の性能を現在の仕様に合わせて保証しますが、予告なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、ここに記載されている情報、製品、またはサービスの適用または使用から生じる一切の責任を負わないものとします。 インテルのお客様は、公開された情報に依存したり、製品やサービスを注文したりする前に、最新バージョンのデバイス仕様を入手することをお勧めします。
- その他の名前およびブランドは、他者の財産として主張される場合があります。
ドキュメント / リソース
![]() |
インテル FPGA プログラマブル アクセラレーション カード D5005 [pdf] ユーザーガイド FPGA プログラマブル アクセラレーション カード、D5005、FPGA プログラマブル アクセラレーション カード D5005、DMA アクセラレータ機能ユニット |