#pragma pipeline, max_latency = 5
for(int i = 1; i < N; i++)
{
//reuse distance >= 5 when N > 1
z[i * N + 2] = foobar(z[i-1]));
}
我正在阅读一篇论文,其中说上述循环具有难以分析的非均匀依赖性,因此HLS(高级综合)工具假设当前迭代中的写入被消耗在下一次迭代。这可以防止管道循环。因此,用户指令(pragma)用于绕过HLS分析。
在上面的代码中,我不了解依赖关系。对于N> 1所有读写都是独立的。有人可以解释依赖吗?