効率的なアクセスに関する質問: 列ごとに大きな行列 (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 です。
任意の提案とコメントを歓迎します。
ありがとう。