我正在使用瓦片技术开发高效缓存转置算法,注意到当我使用
使用malloc:98.7毫秒 使用posix:86.4毫秒(数据对齐为32,64,128,256,512,1024,2048,4096)
我正在分配一个32位整数数组。
我无法解释为什么posix-x(其中4096>x>32且x是数据对齐)始终为这个数据对齐值范围提供几乎相同的效率。在我的算法中,我正在预取缓存行(64字节),因此我希望对于x=64,我将获得最佳性能数字。
malloc
分配内存时,性能比使用posix_memalign
差。具体来说:使用malloc:98.7毫秒 使用posix:86.4毫秒(数据对齐为32,64,128,256,512,1024,2048,4096)
我正在分配一个32位整数数组。
我无法解释为什么posix-x(其中4096>x>32且x是数据对齐)始终为这个数据对齐值范围提供几乎相同的效率。在我的算法中,我正在预取缓存行(64字节),因此我希望对于x=64,我将获得最佳性能数字。