gem5-users@gem5.org

The gem5 Users mailing list

View all threads

L3 caches in GEM5

AG
Atharva Gondhalekar
Wed, Jul 27, 2022 2:01 PM

Hello,
I have seen multiple tutorials on adding L3 caches. For ex.
https://blog.spacepatroldelta.com/a?ID=00350-d058a1b9-a4a9-4aab-b509-4d5eaef48d46
I wanted to ask if the L3 caches not being present in
https://github.com/gem5/gem5/blob/develop/configs/common/Caches.py
intentional?
If not, can users send a pull request for adding L3 caches?

-Sincerely,
Atharva Gondhalekar

Hello, I have seen multiple tutorials on adding L3 caches. For ex. https://blog.spacepatroldelta.com/a?ID=00350-d058a1b9-a4a9-4aab-b509-4d5eaef48d46 I wanted to ask if the L3 caches not being present in https://github.com/gem5/gem5/blob/develop/configs/common/Caches.py intentional? If not, can users send a pull request for adding L3 caches? -Sincerely, Atharva Gondhalekar
GB
gabriel.busnot@arteris.com
Thu, Jul 28, 2022 7:32 AM

Hi Atharva,

L3 is actually supported in at least 2 ways. If you want to use the classic caches, you can find a general example (N levels of cache) in configs/example/memcheck.py. You might need to create/update your own scripts to use more than 2 levels of caches, however.

You can also use Ruby if you need a more detailed (but slower) model of the memory subsystem. se.py and fs.py with option --ruby both use a 3-level cache hierarchy with private il1, dl1, l2 and system-level caches (~L3) in home nodes. You can then create your own configuration script to create arbitrary hierarchies in ruby. For instance, I’ve successfully used CHI with per-cluster shared L2 (and system-level cache).

Best,

Gabriel

Hi Atharva, L3 is actually supported in at least 2 ways. If you want to use the classic caches, you can find a general example (N levels of cache) in configs/example/memcheck.py. You might need to create/update your own scripts to use more than 2 levels of caches, however. You can also use Ruby if you need a more detailed (but slower) model of the memory subsystem. se.py and fs.py with option `--ruby` both use a 3-level cache hierarchy with private il1, dl1, l2 and system-level caches (\~L3) in home nodes. You can then create your own configuration script to create arbitrary hierarchies in ruby. For instance, I’ve successfully used CHI with per-cluster shared L2 (and system-level cache). Best, Gabriel