This project gathers code examples that optimize performance.
-
aos2soa.cpp:
shows the difference in access time between a struct list and a list struct -
aos2soa_big.cpp:
same as aos2soa.cpp but with larger structs -
fusion.cpp:
shows the difference between writing to a list then accessing it in a separate loop and in the same loop -
inline.cpp:
shows the access time of a function -
matmul_tile2d.cpp:
shows the difference between matrix product in a naive way and doing it tile by tile in 2d -
space_access.cpp:
shows the difference between accessing spaced elements to modify them and loading them into another list to reconcile them and then put them back in the list -
split_loop.cpp:
shows the advantage of changing the loop level of a condition to specialize a loop and make fewer conditions -
swap.cpp:
shows the difference between looping columns then rows and vice versa -
transpose_tile2d.cpp:
shows the difference between linear transposition and tile 2d by tile 2d