上期内容:学习笔记:深度学习与INT8
Vitis HLS尽可能地探测代码中的并行性,以降低Latency。但对于for循环,即使两个for循环是相互独立、毫无关联的,在默认情形下,工具也不会对其进行并行处理。那么针对这种情形,该如何让工具对其并行处理呢?
看下面一段代码。该函数由两个for循环构成,显然,这两个for循环是相互独立的,功能是完全一致的。这里,我们只设定LOOP_TRIPCOUNT,这样可以看到具体的循环的Latency和整个函数的Latency以及II。
在这种情况下,Vitis HLS综合后的报告如下图所示。每个for循环的Latency为8,但整个函数的Latency为20,猜测这两个for循环并没有被并行执行。同时还可以看到,默认情形下,for循环的Pipeline是打开了的,故报告中Pipelined部分显示的是yes。