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