判定设计的窗口大小的主要考量因素之一是数据加载所需的周期数与内核所需的计算周期数保持平衡。这样有助于将乒乓缓冲器数据加载与内核计算相结合进行流水打拍。对于超高存储器密度设计,有必要减小窗口大小同时仍能保持内核计算的平衡,其合理性在于,增大窗口大小可能导致映射器故障。
下表显示了两个含 16 位数据的矩阵的矩阵乘法所需的周期数。示例 1 和示例 2 的矩阵大小不同,但其计算和数据加载均保持平衡。请注意,判定数据加载时间时,仅以矩阵 A 和 B 中的较大者为准,而内核计算时间则是同时根据这两个矩阵的大小来判定的。此处显示示例 1 的窗口大小小于示例 2,但计算和数据加载时间相平衡并且可流水打拍。
矩阵 A 大小 | 矩阵 B 大小 | 乘法运算数量 (MultOps) | 计算周期数 32 次运算/周期 |
数据加载周期数 32 位/周期 |
|
---|---|---|---|---|---|
示例 1 | 16x64 | 64x16 | 16384 | 512 (16384/32) |
512 (64x16x16/32) |
示例 2 | 16x64 | 64x32 | 32768 | 1024 (32768/32) |
1024 (64x32x16/32) |