使用openMP自带例子,使用UIA测试周期,8核时周期是36375036;但是把同样程序
void delay(int delaylength) {
int i; volatile float a=0.;
for (i=0; i<delaylength; i++) a+=i;
}
for (i = 0; i < NUMLOOPS; i++) { delay(DELAYLENGTH); }
放在另外的project(不使用openMP,单核),周期只有49000000左右,为何使用openMP效率会有这么大损耗?
是否有方法改进?
jie lei:
那个例子栈空间的配置有问题。不可能只有这点效率
huang yang:
回复 jie lei:
是否有方法该进呢?从哪里入手?
jie lei:
上次没注意看,这个程序也写得非常不厚道,需要延迟指定的周期,用TSC即可,需要加速算法,用论坛置顶的优化技术,这代码DSP没法用
TI中文支持网