GithubHelp home page GithubHelp logo

Comments (10)

yichungchen84 avatar yichungchen84 commented on June 24, 2024 2

@ivanaamit the issue is solved. Thanks.

from gem5.

tiagormk avatar tiagormk commented on June 24, 2024 1

@ivanaamit, @yichungchen84, there are some fixes that are required so the Atomic operation is properly forwarded from the L3 to the HNF. I'm planning to have a look at that, so maybe we could keep this issue open and will keep you guys posted.

from gem5.

andysan avatar andysan commented on June 24, 2024

Ping @tiagormk.

from gem5.

vsoriap avatar vsoriap commented on June 24, 2024

Hi @yichungchen84, could you attach the config.ini and config.json you use.

Note that the far AMO feature is intended to be used only with three levels of cache. However, near AMO should work as the old version 23.0.0.

from gem5.

yichungchen84 avatar yichungchen84 commented on June 24, 2024

Hi @vsoriap

Sorry that due to the IT restriction, I cannot share the config,ini/json files. I will see if I can share the configuration files (CHI_config.py, etc).

My configuration has private L1, private L2, shared L3, and SLC. I try to set all cache controllers "alloc_on_atomic = false". I assume it should turn off AMO feature (am I correct?), but it still has deadlocks with "alloc_on_atomic = false".

Would you mind to let me know where I can look into source code of far AMO feature/policy, so I can configure it to support my cache hierarchy? Thanks.

from gem5.

vsoriap avatar vsoriap commented on June 24, 2024

Okay, I see that you have 4 levels of cache. We never tested that configuration, and you may encounter some problems. How L3 and SLC have the flags is_HN configured?

alloc_on_atomic is not a flag that turns off AMO. AMOs are instructions supported in the RISC-V and ARM architecture. You cannot switch them off. What you can do is remove them from your binary.

What alloc_on_atomic really encodes is if the HNF needs to allocate a cache line or not if an Atomic Transaction arrives at the HNF and the cache line is not present. If true, the HNF requests the cache line to the SNF, performs the operation, and stores it in the local cache associated with the HNF (in your case, I assume it's the SLC). If false, the HNF requests the cache line to the SNF, performs the atomic operation, and then writes the updated value back to SNF.

If you want to simulate AMOs as they were executed in gem5 version 23.0.0. you need to set policy_type to 0 (Execute all AMO in the L1).

You can check the AMO code here

from gem5.

yichungchen84 avatar yichungchen84 commented on June 24, 2024

hi @vsoriap

Thanks for the info. It is really helpful.

My configuration: L3 is_HN = false, SLC is_HN = true.

I tried another configuration L1 private, L2 shared, and SLC. This works without the issue. I guess 4-level cache it the problem.

I will try the policy_type = 0 later on.

from gem5.

ivanaamit avatar ivanaamit commented on June 24, 2024

Hi @yichungchen84, it appears that this issue has been resolved. However, I wanted to double-check before closing it. Thanks.

from gem5.

yichungchen84 avatar yichungchen84 commented on June 24, 2024

hi @ivanaamit

Thanks. The issue is resolved. I was wondering whether it will support 4-level cache int the future?

from gem5.

yichungchen84 avatar yichungchen84 commented on June 24, 2024

Thanks, @tiagormk . Let me know if I can be of any help.

from gem5.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.