ストライドアクセス時の性能(キャッシュ容量別)
ストライドアクセス時の性能(キャッシュ容量別)
ベクトルの長さを32KB(L1 cache)にしたときの、ストライドアクセス時の性能
floatが8Bで、キャッシュラインが64KBであるので、ストライドが8のときに収束するはずである。
しかし実際に収束してるのはストライドが16のときである。
理由がわからないが、L1cacheが2種類あるのでそれぞれに交互にデータがいってるのかもしれない。
ベクトルの長さを256KB(L2 cache)にしたときの、ストライドアクセス時の性能
floatが8Bで、キャッシュラインが128KBであるので、ストライドが16のときに収束するはずである。
実際にグラフは16のときに収束しているので、これは理屈にあう。
ベクトルの長さを2MB(L3 cacheより若干少ない)にしたときの、ストライドアクセス時の性能
これはL2cacheのときと同様である。