cache问题
各位大侠!小弟现在说在的项目,要求通过将数据 load到cache中提升运算速度,求助了!
需求举例:所用cpu为powerpc8641D(L1为32K,L2为1M),做1024点的FFT,每次的1024点数据量为4K,
要求并行计算中每次运算前这4K数据都在cache中了.请各位提供思路了!
当然,不针对具体情况了,欢迎类似经验,呵呵。。。。。。新注册,没什么积分啊,不好意思!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你看看这本书呢:
http://bbs.chinaunix.net/viewthr ... p;extra=&page=1
另外, 我觉得将数据从内存加载到cache中是硬件做的事情. 我们能做的就是尽量地让每次使用到的数据量的大小和L1或L2缓存相匹配.
scutan兄之前对这方面深入研究过。
如果能操作cache,就完全影响了cpu的运行了。
根据实际情况了,有得必有失
感谢scutan兄提供的书!本来替换应该是由cache的替换算法来负责的,但“CPU提供的prefetch指令给予用户人工干预cache的能力——人工辅助cache预测”。我也是使用其预取指令来做的,CPU提供的prefetch指令每次通过指定的“effective address”load一行,我就load了data_len/line_len次,不知道是effective address没弄对还是什么,结果耗费的时间还和先前一样!
感谢大家的回复,小弟弄出来了会把体会发上来的!
期待经验分享