HI Tushar,

I ran the following command:

 ./build/ALPHA_SE/gem5.opt configs/example/ruby_network_test.py
--num-cpus=8 --num-dirs=1 --topology=MeshDirCorners --sim-cycles=1000
--injectionrate=0.01 --synthetic=0 --fixed-pkts --maxpackets=1
--garnet-network=fixed

On Sat, Nov 26, 2011 at 8:33 PM, Tushar Krishna <[email protected]>wrote:

>  Hi Tejasi,
> The assertion for number of directories being 1 failed.
>
> The node type is being set in line 52:
>         elif node.type == 'Directory_Controller':
>             dir_nodes.append(node)
>
> Are you sure you specified --num-dirs=1 in the command line when you ran
> it?
>
> - Tushar
>
>
>
> On 11/26/2011 10:06 PM, tejasi pimpalkhute wrote:
>
> Hi Tushar,
>
>  I am trying to create a different topology, similar to mesh but it only
> has 1 director controller node which will be connected to center node. For
> this, I am modifying the MeshDirCorners.py file
>
>  line 66 --
> assert(len(dir_nodes) == 1)  // changed from 4 to 1
>
> and line 85
>  # Connect the dir nodes to the corners.
>     ext_links.append(ExtLink(link_id=link_count, ext_node=dir_nodes[0],
>                              int_node=mesh.routers[num_routers/2]))
>     link_count += 1
>
> but, I get the following error:
>
> Error: could not create topology MeshDirCorners
> Traceback (most recent call last):
>   File "<string>", line 1, in <module>
>   File "/home/tejasi/Gem5/gem5-c226cd1e5e5e/src/python/m5/main.py", line
> 356, in main
>     exec filecode in scope
>   File "configs/example/ruby_network_test.py", line 108, in <module>
>     Ruby.create_system(options, system)
>   File "/home/tejasi/Gem5/gem5-c226cd1e5e5e/configs/ruby/Ruby.py", line
> 109, in create_system
>     % options.topology)
>   File "<string>", line 1, in <module>
>   File
> "/home/tejasi/Gem5/gem5-c226cd1e5e5e/src/mem/ruby/network/topologies/MeshDirCorners.py",
> line 66, in makeTopology
>     assert(len(dir_nodes) == 1)
> AssertionError
>
> I am not sure why is this error? Also, how does it know the node type in
> line 48? Could you please guide me on this?
>
>
>
>
> On Sat, Nov 19, 2011 at 11:52 PM, Tushar Krishna <[email protected]>wrote:
>
>>  Hi Tejasi,
>> All routers are identical. Each router connects either to another router,
>> and to one or more controllers. In a mesh topology, router 0 connects to
>> two neighboring routers (to its east and north), an L1 controller, a
>> directory/memory controller and a DMA controller.
>> No a DMA controller is not same as a memory controller.
>> src/mem/ruby/system defines some of the controllers while some are
>> generated per protocol.
>>
>> Hmm all routers inherit from the same base class BasicRouter so are
>> identical ... You could add different functionality for some of the routers
>> by using the router's m_id as a conditional ... ?
>>
>> Routing Table entries:
>> Look at src/mem/ruby/network/Topology.cc
>> The createLinks function calculates shortest distance between nodes and
>> passes this information to makeLinks which in turn calls the makeInLink,
>> makeOutLink and makeInternalLink functions in GarnetNetwork_d.cc which then
>> calls each router and populates its routing tables.
>>
>> cheers,
>> Tushar
>>
>>
>>
>> On 11/19/2011 10:21 PM, tejasi pimpalkhute wrote:
>>
>> Hi Tushar,
>>
>>  Thanks for your reply. Can you please tell me if router[0] which is
>> connected to DMA_controller(is this same as memory controller?), has any
>> different structure or functionality than other routers? If yes, could you
>> please let me know which file has the code for this? If no, could you
>> please let me know if we can implement a different functionality for just
>> one router?
>> Also, regarding routing destinations, can you please tell me where does
>> the routing_table_entry variable in routing_unit.cc gets its value from?
>> I am unable to figure these things out by looking at the code and hence
>> stuck at one point.
>> Hope to hear from you soon.
>>
>> On Thu, Oct 27, 2011 at 9:11 PM, Tushar Krishna <[email protected]>wrote:
>>
>>>  Hi Tejasi,
>>>
>>> In general there is *no fixed rule* for these, and depends on the
>>> coherence protocol.
>>> For most protocols currently in gem5, each "Directory" Controller
>>> implies both a Directory (i.e. state) and a Memory Controller.
>>> The memory controller models the delay to main memory. We don't define
>>> and connect a memory module separately as far as I know.
>>> The number of directories is an independent parameter defined from
>>> command line (--num-dirs).
>>>
>>> If you take a look at configs/ruby/MOESI_CMP_directory.py,
>>> you can see that it creates L1 controllers, L2 controllers and Directory
>>> Controllers (in which it creates both a DirectoryMemory => state, and a
>>> memory controller).
>>> Now when the directory receives a request that is not currently on-chip
>>> (indicated by directory state), it sends the request to the memory
>>> controller which models memory delay for reads/writes etc ... [done in the
>>> protocol's .sm file].
>>>
>>> In terms of connections, all controllers (L1, L2 and Directory) can be
>>> connected in any manner.
>>> We provide two mesh topologies: Mesh.py and MeshDirCorners.py.
>>> Both topologies create a Mesh with the number of routers = number of
>>> cpus (=number of L1s).
>>> Mesh.py assumes equal number of all controllers (L1, L2 and directory),
>>> and connects one L1, one L2 (if it exists) and one directory to each
>>> network router.
>>> MeshDirCorners.py assumes 4 directories and connects them at each corner.
>>> All DMA controllers are just connected to router 0 (arbitrary decision)
>>> I think.
>>>
>>> You can design your own topology too using the given ones as reference.
>>> You just need to add a .py file of your topology in the topologies
>>> folder, and also add it in
>>>  src/mem/ruby/network/topologies/SConscript
>>>
>>> Hope this helps,
>>> Tushar
>>>
>>>
>>>
>>> On 10/27/2011 4:09 PM, tejasi pimpalkhute wrote:
>>>
>>>  Hi,
>>>
>>>  I was looking into the code file Mesh.py in Topology folder and the
>>> online documentation for it says that every node has L1,L2 cache and
>>> directories connected to it. As I had read somewhere, in Gem5, directory
>>> controller and memory controller are same, could you please let me know if
>>> Directory connected to each node is same as main memory? Also, it seems
>>> that DMA controller is attached to only remainder nodes as per the code.
>>> So, it is a little bit confusing. Could you please elaborate the
>>> connections of nodes to memory controller and main memory.
>>>
>>>  Thanks!
>>>
>>>
>>>
>>>
>>>
>>>  _______________________________________________
>>> gem5-users mailing 
>>> [email protected]http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>>
>>> _______________________________________________
>>> gem5-users mailing list
>>> [email protected]
>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>
>>
>>
>>
>>  --
>> Thanks and Regards,
>> Tejasi
>>
>>
>>
>> _______________________________________________
>> gem5-users mailing 
>> [email protected]http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> [email protected]
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
>
>  --
> Thanks and Regards,
> Tejasi
>
>
>
> _______________________________________________
> gem5-users mailing 
> [email protected]http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>



-- 
Thanks and Regards,
Tejasi
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to