,它们的内环使用dcbt预取,有4个向量读取,然后4个向量写入。在调整了我的最佳函数,使其每次迭代也能获得64个字节后,memcpy的性能优势仍然令人尴尬。我用dcbz来释放带宽,苹果什么也不使用,但这两种代码在商店里都会犹豫。
prefetch
dcbt future
dcbt distant future
load stuff
lvx image
lvx image + 16
lvx image + 32
lvx image + 48
image += 64
prepare to store
dcbz filtered
dcbz filtered + 32
store stuff
stvxl filtered
stvxl filtered + 16
stvxl filtered + 32
stvxl filtered + 48
filtered += 64
repeat
有谁对为什么非常相似的代码有如此巨大的性能差距有一些想法吗?我很想把真正的图像过滤器腌在任何秘密酱汁里,模比用的是什么?
发布于 2018-05-25 11:53:57
不知道你到底在做什么,因为我看不见你的代码。
https://stackoverflow.com/questions/-100008580
复制相似问题