データフローのコード例 - 2020.2 Japanese

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

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

データフローのコード例では、次の点に注目してください。

  1. コンパイラでデータフロー最適化をイネーブルにするため、 pragma HLS dataflow が適用されています。これは、PS と PL 間のインターフェイスであるデータ ムーバーではなく、データがアクセラレータを介してフローする方法を指定を示します。
  2. データフロー領域内の各関数間のデータ転送チャネルとして stream クラスが使用されています。
    ヒント: stream クラスは、プログラマブルの FIFO メモリ回路を推論します。このメモリ回路はソフトウェア プログラミングのキューとして動作し、関数間をデータ レベルで同期化してパフォーマンスを向上します。
void compute_kernel(ap_int<256> *inx, ap_int<256> *outx, DTYPE alpha) {
  hls::stream<unsigned int>inFifo;
  #pragma HLS STREAM variable=inFifo depth=32
  hls::stream<unsigned int>outFifo; 
  #pragma HLS STREAM variable=outFifo depth=32

  #pragma HLS DATAFLOW
  read_data(inx, inFifo);
  // Do computation with the acquired data
  compute(inFifo, outFifo, alpha);
  write_data(outx, outFifo);
  return;
}