Hey everyone, hope you are doing well.
For my research purposes, I'm using Gem5 in FS mode, with PARSEC benchmark
suite to do some research related to Network-on-Chip.
I have built gem5 using the default command and I'm using 2-D Mesh topology

   - python3 `which scons` build/X86/gem5.opt -j n

and I'm also using the default protocol "MESI_Two_Level" defined in the
"./gem5/build_opts/X86" file.
The default protocol uses 3 virtual networks to inject messages.

I want to use only one virtual network instead of using 3 virtual networks.
Can I change the protocol to inject all the messages into one virtual
network? If so, how?

I tried to change the value of virtual_network in these files to be the
same

   - gem5/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
   - gem5/src/mem/ruby/protocol/MESI_Two_Level-dma.sm
   - gem5/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm
   - gem5/src/mem/ruby/protocol/MESI_Two_Level-L2cache.sm

MessageBuffer * requestToDir, network="From", virtual_network="0",
        vnet_type="request";
   MessageBuffer * responseToDir, network="From", virtual_network="1",
        vnet_type="response";
   MessageBuffer * responseFromDir, network="To", virtual_network="1",
        vnet_type="response";

But I got an assert error when one of the previous files had two identical
"network", and "virtual_network" values.

AssertionError: :
  File "/gem5/SConstruct", line 816:
    duplicate=GetOption('duplicate_sources'))
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
    return method(*args, **kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
    call_stack[-1].globals)
  File "/gem5/src/SConscript", line 557:
    duplicate=GetOption('duplicate_sources'))
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
    return method(*args, **kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
    call_stack[-1].globals)
  File "/gem5/src/mem/ruby/protocol/SConscript", line 105:
    nodes = env.SLICC([], sources)
  File "/usr/lib/scons/SCons/Environment.py", line 260:
    return MethodWrapper.__call__(self, target, source, *args, **kw)
  File "/usr/lib/scons/SCons/Environment.py", line 224:
    return self.method(*nargs, **kwargs)
  File "/usr/lib/scons/SCons/Builder.py", line 645:
    return self._execute(env, target, source, OverrideWarner(kw), ekw)
  File "/usr/lib/scons/SCons/Builder.py", line 564:
    tlist, slist = self._create_nodes(env, target, source)
  File "/usr/lib/scons/SCons/Builder.py", line 528:
    target, source = self.emitter(target=tlist, source=slist, env=env)
  File "/gem5/src/mem/ruby/protocol/SConscript", line 71:
    slicc.writeCodeFiles(output_dir.abspath, slicc_includes)
  File "/gem5/src/mem/slicc/parser.py", line 83:
    self.symtab.writeCodeFiles(code_path, includes)
  File "/gem5/src/mem/slicc/symbols/SymbolTable.py", line 151:
    symbol.writeCodeFiles(path, includes)
  File "/gem5/src/mem/slicc/symbols/StateMachine.py", line 248:
    self.printControllerCC(path, includes)
  File "/gem5/src/mem/slicc/symbols/StateMachine.py", line 719:
    assert (vnet, network) not in vnet_dir_set



Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to