Intel® FPGA SDK for OpenCL™: ベスト・プラクティス・ガイド

ID 683521
日付 12/08/2017
Public
ドキュメント目次

2.4.2. システムのエリア分析

システムレポートのエリア分析は、FPGAに実装されているハードウェアに最も近いOpenCLシステムのエリア内訳を示しています。

4つのループを含むOpenCLカーネルの例:

 1  // ND-Range kernel with unrolled loops
 2  __attribute((reqd_work_group_size(1024,1,1)))
 3  kernel void t (global int * out, int N) {
 4    int i = get_global_id(0);
 5    int j = 1;
 6    for (int k = 0; k < 4; k++) {
 7      #pragma unroll
 8      for (int n = 0; n < 4; n++) {
 9        j += out[k+n];
10      }
11    }
12    out[i] = j;
13
14    int m = 0;
15    #pragma unroll 1
16    for (int k = 0; k < N; k++) {
17      m += out[k/3];
18    }
19    #pragma unroll
20    for (int k = 0; k < 6; k++) {
21      m += out[k];
22    }
23    #pragma unroll 2
24    for (int k = 0; k < 6; k++) {
25      m += out[k];
26    }
27    out[2] = m;
28  }
図 25. 地域レポートの例

システムビューでは、カーネルは論理ブロックに分割されています。ブロックに関連付けられているコードラインのエリア使用情報を表示するには、そのブロックのレポートエントリーを展開するだけです。この例では、コードラインout [i] = j (12行目)のエリア情報がBlock1の下で使用可能です。システムビューでのライン12の推定エリア使用量は、ソースビューでの見積もりと同じです。