各位技术支持你们好:
由于算法效率比较低,我想通过算法在C6678硬件上运行的时候,实时分析下某些算法模块cache miss和hit的情况,从而调整算法,实现减少cache miss。希望可以提供具体的操作步骤,谢谢!
Andy Yin1:
参考附件使用CLT工具优化内存的排列减少cache miss。
在ccs tools->profile->setup profile data collection可以收集cpu cycle, stall cycle, cache miss cycle等协助分析。
si cheng:
回复 Andy Yin1:
Andy Yin1,
多谢你的回复。
1.你提供的这个文档里面只有提及到L1P的cache优化,有没有关于L1D的cache优化了,因为算法大部分还是在处理数据,所以L1D的优化应该会对系统效率影响很大,最后是L1D和L1P都优化
2.你说“在ccs tools->profile->setup profile data collection可以收集cpu cycle, stall cycle, cache miss cycle等协助分析” 这个profile好像只能是simulator下可以使用,在EVM硬件平台上是使用不了的,如果只是在simulator下profile的结果,应该和实际在硬件上的不一样,可能没有参考价值。因为simulator下存储器访问是没有cache miss的,全部都是hit,我之前写过并行汇编单步跟踪过,发现在EVM 硬件下,有时候LDDW 是1个cycle,有时候是8或者9个cycle,这个是cache miss导致的,但是同样的程序在simulator下,LDDW每次执行都是1个cycle,可以看出没有cache miss,都是hit。
3.我在simulator下,试了下profile function功能是可以出结果的,但是cache miss等没有。
多谢!
Thomas Yang1:
回复 si cheng:
可以通过Trace功能分析Cache missing 进而做进一步的优化
请参考附件中的描述
si cheng:
回复 Thomas Yang1:
多谢Thomas Yang1 和 Andy Yin1 的回复:
不好意思现在在反馈,我看了你附件中的操作,我现在使用的CCS版本是CCS5.5,没有找你打截图中的选项,以下是CCS5.5截图:
基于CCS5.5如果想要在C6678 EVM 上profile 函数cycle以及cache miss和hit,具体该怎么操作呢?希望可以帮助我解决这个问题,这个问题困扰我很久了。 多谢
si cheng:
回复 si cheng:
各位技术支持你们好:
hardware trace 我知道怎么弄了,但是在trace的时候有ETB trace 和pro trace,目前 c6678 EVM board是支持ETB trace的,但是pro trace的时候有问题,如图:
是不是C6678 EVM板卡不支持pro trace? 如果不支持的话,什么样的仿真器支持pro trace? 国内有代理的话最好。
谢谢