gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Error while Changing the value of link_latency in HeteroGarnet simulations

PD
Preet Derasari
Tue, Mar 5, 2024 6:43 PM

Hi,

I was playing with the Mesh_XY topology and wanted to try different link
latency values for Internal links of the network (created using IntLink()
function) to see how it impacts the simulation.

By default, the link_latency value is 1 (I assume 1 cycle) but I wanted to
change it to 2,3,4, and 5 cycles. I have had some interesting observations:

  1. When I ran simulations with a simple 2x2 topology, 4 cpus, 4 dirs, 4
    L2-caches, I could change the link latency values up to 5 cycles (I have
    not gone beyond that).

  2. Similarly for 4x4, 16 cpus, 16 dirs, 16 L2-caches, tolerated link
    latency value of just 1 cycle and then I would get an error.

And every time there was an error, it was just this:
src/mem/ruby/network/Network.hh:122: fatal: Functional read not
implemented.

When I check the error-throwing code, it is just supposed to be a virtual
function but somehow during runtime, it is not being overridden by another
functionalRead:

virtual bool functionalRead(Packet *pkt)
{ fatal("Functional read not implemented.\n"); }

I wanted to know why this error occurred and how to avoid it. I have my
suspicion on my config parameters (maybe the number of dirs?)

Any help is appreciated. Thank you.

P.S. this is gem5 version 23.1.0.0 (commit
c890e6b113a59caeec3eea9bafea4a03a471f89d)

Best Regards,
Preet.

Hi, I was playing with the Mesh_XY topology and wanted to try different link latency values for Internal links of the network (created using IntLink() function) to see how it impacts the simulation. By default, the link_latency value is 1 (I assume 1 cycle) but I wanted to change it to 2,3,4, and 5 cycles. I have had some interesting observations: 1. When I ran simulations with a simple 2x2 topology, 4 cpus, 4 dirs, 4 L2-caches, I could change the link latency values up to 5 cycles (I have not gone beyond that). 2. Similarly for 4x4, 16 cpus, 16 dirs, 16 L2-caches, tolerated link latency value of just 1 cycle and then I would get an error. And every time there was an error, it was just this: *src/mem/ruby/network/Network.hh:122: fatal: Functional read not implemented.* When I check the error-throwing code, it is just supposed to be a virtual function but somehow during runtime, it is not being overridden by another functionalRead: virtual bool functionalRead(Packet *pkt) { fatal("Functional read not implemented.\n"); } I wanted to know why this error occurred and how to avoid it. I have my suspicion on my config parameters (maybe the number of dirs?) Any help is appreciated. Thank you. P.S. this is gem5 version 23.1.0.0 (commit c890e6b113a59caeec3eea9bafea4a03a471f89d) Best Regards, Preet.