Hi,
I am currently experimenting with HeteroGarnet and the Mesh_XY topology
with the weight table-based and XY routing algorithms. I discovered
something interesting while running the simple threads.cpp program (in
tests/test-progs/threads/src/threads.cpp) in SE mode with the following
config:
build/X86/gem5.opt configs/deprecated/example/se.py --num-cpus=8
--num-dirs=8 --cpu-type=DerivO3CPU --cpu-clock=2GHz --caches
--l1d_size=64kB --l1i_size=32kB --l2cache --num-l2caches=8 --l2_size=2MB
--mem-type=SimpleMemory --mem-size=4GB --ruby --network=garnet
--ruby-clock=2GHz --topology=Mesh_XY --mesh-rows=2 --router-latency=4
--link-latency=1 --link-width-bits=128 --routing-algorithm=1
--cmd=tests/test-progs/threads/bin/x86/linux/threads
I found the following:
--> with routing-algorithm=0, i.e., weight table-based routing, the code
runs to completion.
--> with routing-algorithm=1, i.e., XY routing, the code ends abruptly
while throwing the following error: src/mem/ruby/network/Network.hh:123:
fatal: Functional read not implemented.
Now, when I recompile gem5 after suppressing the error (by commenting the
fatal line and adding a return true line), the code runs to completion
correctly.
This makes little sense to me, despite reading prior email threads that
address this (https://www.mail-archive.com/gem5-users@gem5.org/msg19618.html).
Does anyone know why that error occurs and if it is okay to suppress it to
get the simulated code to completion?
I appreciate any help. Thank you.
Sincerely,
Preet.