デザインのウィンドウ サイズを決定する際に重要な考慮事項の 1 つに、データの読み込みに必要なサイクル数と、カーネルで必要な計算サイクル数とのバランスがあります。これは、ping および pong バッファーのデータ読み込みをカーネル計算と共にパイプライン処理するのに役立ちます。メモリ集積度の非常に高いデザインでは、ウィンドウ サイズを大きくするとマップでエラーが発生する可能性があるので、カーネル計算のバランスを取ることができる範囲でウィンドウ サイズを小さくする方が適しています。
次の表に、2 つの行列の 16 ビット データとの行列乗算に必要なサイクル数を示します。例 1 と例 2 では、行列のサイズが異なりますが、どちらも計算とデータ読み込みのバランスは取られています。データの読み込み時間は A または B 行列のサイズの大きい方のみにより決定されますが、カーネルの計算時間は両方のサイズにより決定されます。これは、例 1 のウィンドウ サイズは例 2 よりも小さいですが、計算とデータの読み込みのバランスはとられており、パイプライン処理可能です。
行列 A のサイズ | 行列 B のサイズ | 乗算演算数 (MultOps) | 計算のサイクル数 1 サイクルごとに 32 演算 |
データ読み込みのサイクル数 1 サイクルごとに 32 ビット |
|
---|---|---|---|---|---|
例 1 | 16x64 | 64x16 | 16384 | 512 (16384/32) |
512 (64x16x16/32) |
例 2 | 16x64 | 64x32 | 32768 | 1024 (32768/32) |
1024 (64x32x16/32) |