打印

C66 多核DSP 代码优化基本介绍之消除循环体间的相关性

[复制链接]
585|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2016-5-10 21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Sode 于 2016-5-10 21:29 编辑

看一下汇编文件中的软件流水信息。瓶颈在哪里?要找出瓶颈,必须理解编译器是如何计算循环指令周期数的下限的。此下限是“循环体间的相关性限制”和“资源限制”的最大者。循环体间的相关性的区间值是以汇编指令间的执行顺序为基础的。例如,必须完成两个 load 指令后才能继续执行 add 指令。资源限制则是基于硬件资源,例如需要的每种指定类型的功能单元的数量。实际上,有以下两种资源限制:已划分和未划分。在本例中,这两者相同。

            在本例中,已划分资源限制为 2。即使可以不按顺序执行汇编指令,执行循环体中的所有指令也至少需要2个周期。但是,循环体间的相关性限制为 7。
;*      Loop Carried Dependency Bound(^) : 0

需进一步注意,每 2 个周期会启动一个新的循环。因此,在稳定状态下,每 2 个周期(而不是每 7 个周期)就会生成一个新结果。
;*         ii = 2  Schedule found with 4 iterations in parallel.

相关帖子

沙发
FCCdsp| | 2016-5-10 21:38 | 只看该作者
消除循环体中,如果其值为0,那么是不是还有优化的空间呢,根据是什么?将其转化为线性汇编如何?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1049

主题

1522

帖子

8

粉丝