程序优化之循环展开
来源:互联网 发布:fluent python mobi 编辑:程序博客网 时间:2024/04/27 21:36
硬件环境:DSP TMS320C6670开发板
时钟频率:1.2GHz
注:该型号DSP具有两条数据通路和两套寄存器,在测试结果中会体现。
代码版本1:
for(i=0;i<12;i++)
{
result*=a[i];
}
测试Cycles:101
代码版本2:
for(i=0;i<12;i+=2)
{
result*=a[i];
result*=a[i+1];
}
测试Cycles:59
代码版本3:
for(i=0;i<12;i+=2)
{
result1*=a[i];
result2*=a[i+1];
}
执行Cycles:54
代码版本4:
for(i=0;i<12;i+=4)
{
result1*=a[i];
result2*=a[i+1];
result1*=a[i+2];
result2*=a[i+3];
}
测试Cycles:30
结果分析:
版本1是最简单最原始的代码,版本2利用了两条数据计算通路的特点,性能得到了近1倍的提升,
版本3相较版本2,利用了两次计算结果不相关的方法(result1、result2),流水线性能稍有提升。
版本4则充分利用了数据通路、流水线处理等,并减少了循环次数,因而性能更优越。
0 0
- 程序优化之循环展开
- 代码优化之循环展开
- cuda优化-展开循环
- 程序性能优化探讨(2)——循环展开优化详议
- 《代码优化:有效使用内存》读书笔记(二)——优化技巧之展开循环
- 程序性能优化探讨(1)——周期计数器与循环展开
- 前端性能优化:循环优化二,循环展开
- 简易代码优化——展开循环
- 数组的优化循环展开与分割
- 代码细节的终极优化之循环展开、多路并行
- 循环展开导致代码无法启动。。。cuda优化-展开循环的知识
- 循环展开
- 使用循环展开技术的矩阵相乘程序介绍
- 程序循环结构的优化
- 循环展开技术
- 循环展开技术
- 循环展开技术
- 循环展开显示
- NSFileManager文件操作的十个小功能
- Coefficient of Determination(R Squared)(How to determine goodness of fit)?
- CEAN.js (Couchbase + Express + AngularJS + Node.js示例)
- Android NDK开发环境配置
- javascript 小练习-tab切换
- 程序优化之循环展开
- loadrunner 相关的一些 连接
- 触发器启用
- 如何使用本文档
- JSP数据交换的形式
- 图像相减
- RHEL六(监控和管理Linux进程)
- 【system】解决window7/8不能全屏,或者出现黑边的问题
- Android ListView下拉/上拉刷新:设计原理与实现