Hi Srikant,

Thank you for the instructions to build the topology.

But then how to build a gem5 system with this network topology
that can execute AI applications like DNN in this network topology with CU 
(computing units)?

I can see

configs/example/fs.py

and this looks like one can build a  full system and connect the noc topology 
to it.

How does AI benchmark application like DNN (deep neural networks) get compiled 
to specific CPU ISA
and mapped to  the full system including noc topology for execution?

David


From: Bharadwaj, Srikant <srikant.bharad...@amd.com>
Sent: Monday, February 28, 2022 5:08 PM
To: gem5 users mailing list <gem5-users@gem5.org>
Cc: David Fong <da...@chronostech.com>
Subject: RE: gem5 with garnet3.0 and x86 examples


[Public]

Hi David,
We don't have working examples with CPU and garnet3.0. But the general idea is 
to create network configurations using the topology files(configs/topologies).
The general methodology to build topologies in garnet3.0 is as follows:

  1.  Identify nodes and cache controllers

     *   You can do this using node.type (See configs/topologies/Mesh_XY.py for 
example)
     *   Nodes can be cache controllers like L1/L2 as well as directories, 
memory controllers, etc.
     *   Example:
if (self.nodes[0].type == "L2Cache_Controller"):
    l2_cntrls.append(self.nodes[0])

  1.  Build Routers - configure their clock domain, supported flit size, 
latency, etc.

     *   Example:
router_domain_0=SrcClockDomain(clock='4GHz',voltage_domain=VoltageDomain(voltage=options.sys_voltage))
routers.append(Router(router_id=0, latency = 1,clk_domain=domain_0, width=8))

router_domain_1=SrcClockDomain(clock='2GHz',voltage_domain=VoltageDomain(voltage=options.sys_voltage))

routers.append(Router(router_id=1, latency = 1,clk_domain=domain_0, width=16))

  1.  Connect the routers using internal and external links - configure their 
clock domain, supported flit size, latency, SerDes, ClockDomainCrossing, etc.

     *   Internal links are unidirectional and connect two routers
     *   External links are bidirectional and connect a node to a router.
     *   Example:
link_domain_0=SrcClockDomain(clock='4GHz',voltage_domain=VoltageDomain(voltage=options.sys_voltage))
ext_links.append(ExtLink(link_id=0, ext_node=l2_contrls[0], 
int_node=routers[0], width=32,
                         clk_domain=link_domain_0, int_serdes=True, latency = 
1, weight=1))

link_domain_1=SrcClockDomain(clock='4GHz',voltage_domain=VoltageDomain(voltage=options.sys_voltage))
int_links.append(IntLink(link_id=1, src_node=routers[0], dst_node=routers[1], 
width=16,
                         clk_domain=link_domain_1, dst_cdc=True, 
src_serdes=True, latency = 1, weight=1))
int_links.append(IntLink(link_id=2, src_node=routers[1], dst_node=routers[0], 
width=16,
                         clk_domain=link_domain_1, src_cdc=True, 
dst_serdes=True, latency = 1, weight=1))

You can follow examples in configs/topologies/ for building topologies. Hope 
this helps.

Thanks,
Srikant


From: David Fong via gem5-users 
<gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Sent: Monday, February 28, 2022 4:33 PM
To: David Fong via gem5-users <gem5-users@gem5.org<mailto:gem5-users@gem5.org>>
Cc: David Fong <da...@chronostech.com<mailto:da...@chronostech.com>>
Subject: [gem5-users] gem5 with garnet3.0 and x86 examples

[CAUTION: External Email]
Hi,

Are there working examples in latest gem5 v21.2.1 with garnet3.0 and x86 (or 
ARM or RISCV) cpus with AI  applications like DNN ?
If not, please explain the flow on how to achieve this.

Thanks,

David

_______________________________________________
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

Reply via email to