[gem5-users] Re: Ruby SLICC network vs RubyCache latency mechanics

2024-02-15 Thread gabriel.busnot--- via gem5-users
Hi, The tag and data access latency you are seeing in \`src/mem/ruby/structures/RubyCache.py\` are actually not implemented by the RubyCache itself. Instead, SLICC machines query these parameters using the getTagLatency and getDataLatency member functions of the CacheMemory SimObject (these

[gem5-users] Re: Facing issue in using gem5

2023-12-20 Thread gabriel.busnot--- via gem5-users
Regarding the rest of your question, I suggest getting familiar with the gem5 basics reading the “learning gem5” course. It will tell you what you need to know to figure out how gem5 could help you in your research. Unless I misunderstand what you are trying to achieve, you will likely have to

[gem5-users] Re: Facing issue in using gem5

2023-12-20 Thread gabriel.busnot--- via gem5-users
Hi Chetan, se.py is no longer supported and will never be supported again. configs/deprecated/example/se.py in its current shape is all you will get as far as se.py is concerned.\ Hopefully, there’s the gem5 standard library! You can find many preconfigured components and board configurations

[gem5-users] Re: Enquiry on the working paradigm of gem5

2023-11-19 Thread gabriel.busnot--- via gem5-users
Hi, DES is a very well documented topic. You can find a lot of resources about this topic searching for “discrete event simulation”. gem5 implements a simple version of DES compared to, say, SystemC. It is explained in the *learning gem5* tutorial. To put it simply : events are scheduled at

[gem5-users] Re: How to pass the reference of a simobject as a parameter of another simobject as configuration parameter

2023-11-09 Thread gabriel.busnot--- via gem5-users
You need to add an attribute to the Cache python SimObject class: > cctrl = Param.Center_Ctrl(“”) You will need to import Center_Ctrl from m5.objects before as well. You can find hundreds of examples of this construct in most python SimObject classes. Regards, Gabriel

[gem5-users] Re: Simulating NoC and collecting packet traces

2023-10-18 Thread gabriel.busnot--- via gem5-users
Hi Vijay, 1. *build/X86_MI_example/gem5.opt* is built with the MI protocol by default while *configs/learning_gem5/part3/simple_ruby1.py* requires the MSI protocol. I guess your simulation fails before it starts. You should see network related stats in a well configured ruby-based simulation.

[gem5-users] Re: Multiple debug files

2023-10-18 Thread gabriel.busnot--- via gem5-users
Hi Arth, You can only have a single debug log destination. However, You can take advantage of the FmtFlag special debug flag that will prepend the corresponding debug flag to every logged line. You can then use grep to filter down the lines of interest. If using bash, you can pipe the standard

[gem5-users] Re: MSI Protocol at Memory

2023-10-11 Thread gabriel.busnot--- via gem5-users
Hi Arteen, If you are not tied to the MESI_three_level protocol, then, as Gautam said, you might want to switch to a different protocol that already supports the shared state in the system level cache. CHI is the most advanced and configurable protocol in that respect but others might do as

[gem5-users] Re: Gem5 - Garnet - Full System

2023-09-18 Thread gabriel.busnot--- via gem5-users
Hi Karim, The short answer to “can I use a single vnet for MESI_Two_Level is “probably not”, just as for any provided Ruby protocol. The reason is that vnets provide traffic isolation between different message classes (request, response, etc.). This isolation is required to avoid deadlocks.

[gem5-users] Re: Simulation of MSHR and write-back buffer in Ruby?

2023-09-18 Thread gabriel.busnot--- via gem5-users
Hi Ghadeer, I think this thread could help you with that: https://gem5-workspace.slack.com/archives/C03K26BGTKL/p1694723886410439. Regards, Gabriel ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to

[gem5-users] Re: Lock implementation in Ruby Cache Memory and Request Queue

2023-08-31 Thread gabriel.busnot--- via gem5-users
Hi, For 1, I meant automatically: “lines will not get blocked automatically”. As for 2, peek does not block anything unless you use the block_on mechanism. You can peek as many queues as you want as well as dequeue and enqueue as many as you want. Regards, Gabriel

[gem5-users] Re: Lock implementation in Ruby Cache Memory and Request Queue

2023-08-30 Thread gabriel.busnot--- via gem5-users
Hi, 1. First, isLocked is part of the implementation of atomics based on load-linked-store-conditional. When processing a request in ruby controllers, lines will not get blocked manually. In order to avoid request hasards, several mechanisms are available. 1. The block_on mechanism of

[gem5-users] Re: garnet3.0 simulation question - How How to set bubbles in the buffer to avoid deadlock when using Garnet 3.0 emulation.

2023-06-27 Thread gabriel.busnot--- via gem5-users
Hi Chunfeng, Can you be more specific about “the buffer” you are referring to? Also, “routing creating deadlock” sounds more like a routing and/or topology issue than a micro-architecture issue. Introducing a bubble as a deadlock avoidance countermeasure sounds like a slippery option. If you

[gem5-users] Re: Help: "Error: Can't find a working Python installation"

2023-06-20 Thread gabriel.busnot--- via gem5-users
Hi, With the current latest version of gem5, you must use python <= 3.10. Python 3.11 will be supported in the next release of gem5 coming very soon. For details: https://gem5.atlassian.net/browse/GEM5-1295 Regards, Gabriel ___ gem5-users mailing

[gem5-users] Re: TrafficGen on Ruby

2023-06-12 Thread gabriel.busnot--- via gem5-users
Hi David, If these “prerecorded traces” are not recorded using the standard gem5 cpu tracer (elastic traces), you will likely need to roll your own trace-based traffic generator. TrafficGen is likely not the tool you are looking for. TraceCPU might be a closer match. You can watch at the code

[gem5-users] Re: Gem5 Garnet 3.0 -- Virtual networks

2023-06-12 Thread gabriel.busnot--- via gem5-users
Hi Karim, You can’t set the value of ruby_system.network.number_of_virtual_networks arbitrarily. This value must match the actual virtual networks used by the protocol it corresponds to. In the case of Garnet_standalone, only 3 vnets are defined (c.f., network buffers defined by

[gem5-users] Re: gem5 garnet 3.0 standalone

2023-05-09 Thread gabriel.busnot--- via gem5-users
Hi Karim,\ \ You can run simulation for a few thousand cycles using m5.simulate(some_amount_of_ticks), then reset stats using m5.stats.reset() and then run m5.simulate again. You will collect stats on a warmed up system. Regards, Gabriel ___

[gem5-users] Re: Gem5 - ruby - garnet3.0

2023-03-29 Thread gabriel.busnot--- via gem5-users
Hi Karim, Can you be more specific about what you are trying to achieve for us to provide accurate answers? You seem to be really focused on the transport and not so much on the coherency protocol. In that case, I recommend using the garnet standalone protocol: *

[gem5-users] Re: Gem5 - ganret3.0 - Mesh_XY - Virtual Networks - Virtual Channels buffers

2023-03-28 Thread gabriel.busnot--- via gem5-users
Hi Karim, To put it simply, virtual networks are logically independent transport networks: messages traveling on a given vnet shall not be blocked by messages on a different vnet. Garnet is a transport model. As such, it does not decide on the required number of vnets. The Ruby protocol used

[gem5-users] Re: CXL (Compute Express Link) in gem5?

2023-03-27 Thread gabriel.busnot--- via gem5-users
Hi Eliot, I can’t provide you with an assertive answer but I’ve also been looking at CXL recently so here is what I understand so far. >From a functional perspective, the classic cache system seems able to support >the hierarchical coherency aspects just fine with the coherent Xbar of each

[gem5-users] Re: Question Regarding L1 Cache Transient States handling Load Hit in Ruby MOESI CMP Directory protocol

2023-03-23 Thread gabriel.busnot--- via gem5-users
Hi Zhang, Did you observe that behavior during a simulation or is your observation solely based on your analysis of the protocol definition? If you did observe that behavior, then I think it should be considered a bug but not necessarily from the protocol. First, it would be a bug in the

[gem5-users] Re: gem5 / garnet / simple custom routing

2023-03-14 Thread gabriel.busnot--- via gem5-users
When getting a segfault, you want to run the simulation in a debugger to know where it happens. Enabling the --with-asan --with-ubsan flags on scons can also help a lot when the segmentation fault occurs at a different place than the bug location in the code. Gabriel

[gem5-users] Re: gem5 / garnet / simple custom routing

2023-03-13 Thread gabriel.busnot--- via gem5-users
Hi Karim, Where does the segfault happen? Have you tried your topology with the default weight-based routing algorithm? Regards, Gabriel ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org

[gem5-users] Re: Getting Ruby Cache event information

2023-02-28 Thread gabriel.busnot--- via gem5-users
Hi Ziyao, Even though protocols are often implemented that way, SLICC does not require that each request type corresponds to an event type. For instance, the event can be a function of both an incoming message type and of the internal state of the controller. The only true way to understand

[gem5-users] Re: GEM5 - Garnet - Ring topology - Synthetic traffic

2023-02-27 Thread gabriel.busnot--- via gem5-users
Hi Karim, You could indeed go for 16 directories and connect the 7 remaining directories to a dummy router and then ensure that traffic generators never send requests to these directory. This can be difficult depending on the traffic generators logic so here is another approach if that one

[gem5-users] Re: Using Synthetic Traffic for customized network simulation

2023-02-27 Thread gabriel.busnot--- via gem5-users
Hi Ali, It is difficult to tell where is the problem based on the information available (I can’t open .py attachments) but here is a list of checks that you can perform. First, ensure that your modules are present and configured in m5out/config.ini. Especially, you want to check that the

[gem5-users] Re: HeteroGarnet questions

2023-02-21 Thread gabriel.busnot--- via gem5-users
Hi, Just replace options.voltage_value with, say, “1V” in your script. options.voltage_value tries to read the value from the command line options but that option does not seem to exist anymore. Regards, Gabriel ___ gem5-users mailing list --

[gem5-users] Re: Memory traces from CommMonitor- Packet address versus Page address

2023-02-21 Thread gabriel.busnot--- via gem5-users
Hi, If by page you mean an aligned 4k memory region, then no, packets address are not page addresses. They are the address of individual requests that target arbitrary addresses with accesses of various sizes. Mask with \~0xFFF and you will get the page address you are looking for, assuming

[gem5-users] Re: Different Physical Addresses for Multicore

2023-01-11 Thread gabriel.busnot--- via gem5-users
Hi, If you are running regular programs under an OS, two different processes will never access the same physical memory unless explicitly asked to the OS through mechanisms like mmap. In particular, malloc will return virtual addresses that are mapped to physical addresses that are specific to

[gem5-users] Re: Ruby: Connect rubyport and CPU through crossbar

2022-12-20 Thread gabriel.busnot--- via gem5-users
Hi Wilson,\ \ I’ve never tried that myself but I believe that the issue comes from RubyPort::MemResponsePort::getAddrRanges() always returning an empty list, making the XBar believe that the ruby_system is not responding to any address. That would require a fix likely going through RubySystem

[gem5-users] Re: dump specific stats

2022-12-05 Thread gabriel.busnot--- via gem5-users
Hi, I’m not aware of a way to filter stats before dumping. Stats file size is usually not a big concern. If you still want to filter stats before writing them to disk, you can filter the dump on the flight using process substitution: ``` gem5.opt --stat-file >(grep -e numCycles -e miss >

[gem5-users] Re: Creating custom stat in gem5 and dumping them to stats file.

2022-11-30 Thread gabriel.busnot--- via gem5-users
Hi Vipin,\ \ You can use the comm_monitor SimObject. It can be placed in between the processors and the L1 caches in the python configuration script. You can set the address mask parameters of the comm_monitor to record cacheline-aligned addresses.\ \ However, I am cautious about the accuracy

[gem5-users] Re: Queries regarding gem5-fs and se modes for obtaining phase-wise stats

2022-10-31 Thread gabriel.busnot--- via gem5-users
Hi Prakhar, A standard solution to 1 would be to use M5ops: https://www.gem5.org/documentation/general_docs/m5ops/. That small library enables you to call magic functions from your guest binary that will trigger events in the host simulation environment. Namely, the dumpresetstats op will

[gem5-users] Re: Interface Message Buffers between the Network and the Ruby protocol

2021-05-06 Thread gabriel.busnot--- via gem5-users
NI decided once the tail flit reaches its destination router? This I don't know for sure. I would suggest looking at RoutingUnit::outportCompute() and around. > > Thank you, > Vedika > > Get Outlook for Android<https://aka.ms/AAb9ysg> > > _______

[gem5-users] Re: Interface Message Buffers between the Network and the Ruby protocol

2021-05-05 Thread gabriel.busnot--- via gem5-users
Hi, This is based on the virtual network ID specified at the top of the machine declaration with the MessageBuffer* declaration. E.g.: MessageBuffer * L1RequestToL2Cache, network="From", virtual_network="0", vnet_type="request"; Gabriel ___

[gem5-users] Re: Error coming while running exe file in SE mode of gem5

2021-05-05 Thread gabriel.busnot--- via gem5-users
Response in the original thread. ___ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-users] Re: Error coming while running my own Executable file in SE mode of gem5

2021-05-05 Thread gabriel.busnot--- via gem5-users
You responded in a new thread instead of this one ;) I'm answering here. Go to the gem5 directory, run the following commands and attach the output in your answer: $ file tests/test-progs/hello/bin/arm/linux/hello $ file tests/test-progs/hello/bin/arm/linux/myfile_name For instance on the hello

[gem5-users] Re: Error coming while running my own Executable file in SE mode of gem5

2021-05-04 Thread gabriel.busnot--- via gem5-users
Hi, I would suggest you to double-check that your binary is compatible with gem5-arm. I get the same error when I attempt to run an X86 binary on an ARM platform for instance. This is a result of the loader failing to load your binary. You can compare the output of the command "file" on both

[gem5-users] Re: Speeding up the Edit, Compile, Debug cycle

2021-04-16 Thread gabriel.busnot--- via gem5-users
Hi Gabe, Such configuration tool would be great, indeed! I buy the performance argument for using static linking in release builds. But for debug builds, it is slightly less convincing to me ;) In the mean time, if you have any tip you are using to speed up the Edit, Compile, Debug cycle, I

[gem5-users] Speeding up the Edit, Compile, Debug cycle

2021-04-15 Thread gabriel.busnot--- via gem5-users
Hi all, I would like to know what is your favorite way to run the ECD cycle with this gem5.debug beast of a binary. I am currently developing a pretty large Ruby protocol and use 2 build configurations: debug and fasta for "fast with asserts". I've defined the fasta build target myself and

[gem5-users] Re: Running parallel version of a CPU benchmark on multiple cores

2021-04-15 Thread gabriel.busnot--- via gem5-users
Hi John, Short answer : no, you can only run several simulations in parallel, but not a single simulation using one thread per CPU. Gem5 relies on Discrete Event Simulation (DES) to simulate the concurrent behavior of HW. DES is intrinsically sequential in its execution as it relies on

[gem5-users] Re: Referencing an upstream component in parameters

2021-04-14 Thread gabriel.busnot--- via gem5-users
Hi Jason, Thanks for your reply, it should be an adequate solution, even if it looks kind of awkward to me right now ;) While I wanted the downstream controller (B) to have a reference to the upstream (proxied) controller (A), I must actually do the opposite and have (A) store a reference to

[gem5-users] Re: Referencing an upstream component in parameters

2021-04-13 Thread gabriel.busnot--- via gem5-users
I am currently hacking my way through it using the NodeID (e.g, (A).version on python side) as a parameter of controller (B) so that I can basically write in (B)'s state machine : MachineID proxiedController := createMachineID(MachineType:, proxiedNodeID); It seems to work for now but I

[gem5-users] Referencing an upstream component in parameters

2021-04-13 Thread gabriel.busnot--- via gem5-users
Hi, I need to reference an upstream controller (A) in the parameters of another ruby controller (B). (B) is a downstream_destination for (A) in the ruby system. However, using a Param.RubyController in (B) to reference (A) obviously creates a cycle in the hierarchy. How can I get the MachineID

[gem5-users] Protocol converter in ruby

2021-01-13 Thread gabriel.busnot--- via gem5-users
Hi, I want to model a coherent interconnect in ruby. The protocol inside the interconnect defers from the protocol outside of it. For instance, caches use a subset of the CHI protocol while the interconnect internally uses an internal protocol. To interface the caches and the interconnect, an

[gem5-users] Ruby - Does SimpleNetwork.setup_bufers() instanciate to many buffers?

2020-11-03 Thread gabriel.busnot--- via gem5-users
Hi, In the file SimpleNetwork.py at line 67 (version v20.1.0.0), it is checked that the internal side of the network link is connected to ONE OF the routers before instantiating a buffer for that link: if link.int_node in self.routers: This action is done in a loop on the

[gem5-users] Introducing myself

2020-11-03 Thread gabriel.busnot--- via gem5-users
Hi Gem5 community, I want to introduce myself as a new Gem5 user. My name is Gabriel Busnot and I work at Arteris IP, a major network-on-chip IP provider. I am working on a new model for performance evaluation of architectural changes, coherence protocol testing and quality-of-service