高效访问问题:我需要按列访问大型矩阵(超过 2000x2000),我的算法需要 1 行通道和 1 列通道。行传对内存效率(缓存未命中)很好,但是如何减少列传中的缓存未命中?我需要效率。
我唯一的东西是:声明 n 局部变量(基于内存获取大小),
int a1, a2, a3, a4;
for ( int j = 0 ; j < DIM_Y ; j+=4 ) for ( int i = 0 ; i < DIM_X ; i++ )
a1 = matrix[i][j]; ... ; a4 = matrix[i][j+4];
// make the column processing on the 4 variables.
它在 C 或 C++ 中,在数组或 int 或 char 中。
欢迎任何提议和评论。
谢谢。