ストライドアクセス時の性能(キャッシュ容量別) ストライドアクセス時の性能(キャッシュ容量別)

ベクトルの長さを32KB(L1 cache)にしたときの、ストライドアクセス時の性能

floatが8Bで、キャッシュラインが64KBであるので、ストライドが8のときに収束するはずである。
しかし実際に収束してるのはストライドが16のときである。
理由がわからないが、L1cacheが2種類あるのでそれぞれに交互にデータがいってるのかもしれない。


ベクトルの長さを256KB(L2 cache)にしたときの、ストライドアクセス時の性能

floatが8Bで、キャッシュラインが128KBであるので、ストライドが16のときに収束するはずである。
実際にグラフは16のときに収束しているので、これは理屈にあう。


ベクトルの長さを2MB(L3 cacheより若干少ない)にしたときの、ストライドアクセス時の性能

これはL2cacheのときと同様である。