Skip to content

Correct memory access pattern section in matlab-performance-optimizer skill#15

Open
jamesboneham wants to merge 1 commit intomatlab:mainfrom
jamesboneham:patch-1
Open

Correct memory access pattern section in matlab-performance-optimizer skill#15
jamesboneham wants to merge 1 commit intomatlab:mainfrom
jamesboneham:patch-1

Conversation

@jamesboneham
Copy link

There is an error in the matlab-performance-optimizer skill, in this section on efficient memory access, suggesting looping first by column index j, and then by row index i is faster.

This is back-to-front: if you were to generate and print the index into the flattened array k = sub2ind([rows cols],i,j) inside the inner loop, the first "slow" one would print sorted k (indicating contiguous memory access), whereas the "fast" one has to stride across columns (indicating inefficient memory access).

There is an error in the matlab-performance-optimizer skill, in this section on efficient memory access, suggesting looping first by column index `j`, and then by row index `i` is faster.
This is back-to-front: if you were to generate and print `k = sub2ind([rows cols],i,j)` inside the inner loop, the first "slow" one would print the sorted flat indices (indicating contiguous memory access), whereas the "fast" one has to stride across columns.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant