Running sample config on Firesim

30 views
Skip to first unread message

Varun Gandhi

unread,
Nov 15, 2020, 3:58:05 PM11/15/20
to chip...@googlegroups.com
I’m trying to run a sample config — linux-poweroff-all-no-nic.ini using Firesim:

firesim -c deploy/workloads/linux-poweroff-all-no-nic.ini launchrunfarm 


But getting the following error:

FireSim Manager. Docs: http://docs.fires.im
Running: launchrunfarm

Fatal error.
Traceback (most recent call last):
  File "/home/centos/firesim/deploy/firesim", line 334, in <module>
    main(args)
  File "/home/centos/firesim/deploy/firesim", line 280, in main
    simconf = RuntimeConfig(args)
  File "/home/centos/firesim/deploy/runtools/runtime_config.py", line 326, in __init__
    args.overrideconfigdata)
  File "/home/centos/firesim/deploy/runtools/runtime_config.py", line 253, in __init__
    self.runfarmtag = runfarmtagprefix + runtime_dict['runfarm']['runfarmtag']
KeyError: 'runfarm'
The full log of this run is:
/home/centos/firesim/deploy/logs/2020-11-15--20-46-08-launchrunfarm-FAK5176NOSTNBUQA.log



Note: my current vCPU limit for F1 instances is 8, so I’ve modified the config file to spawn just one 2xLarge instance. For some reason the log file is also not being generated.

Best,
Varun

alon...@berkeley.edu

unread,
Nov 15, 2020, 9:28:31 PM11/15/20
to Chipyard
If you've only reduced the  f1_2xlarges field to from 3 to 1, but left the no_net_num_nodes field as 3, that would likely be the cause of this error.

Alon  

Varun Gandhi

unread,
Nov 16, 2020, 1:56:59 AM11/16/20
to chip...@googlegroups.com
Hi Alon — the no_net_num_nodes field is also set to 1.

Best,
Varun

--
You received this message because you are subscribed to the Google Groups "Chipyard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chipyard+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/chipyard/7e18191b-c214-44be-a55e-24e1cd6b437en%40googlegroups.com.

Varun Gandhi

unread,
Nov 16, 2020, 11:13:14 AM11/16/20
to chip...@googlegroups.com
I tried running another config file — pinglatency-config and getting the same error. Here’s the error log

2020-11-16 16:01:13,663 [main        ] [INFO ]  FireSim Manager. Docs: http://docs.fires.im
Running: launchrunfarm

2020-11-16 16:01:13,663 [__init__    ] [DEBUG]  {'hwconf_dict': {'firesim-boom-singlecore-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b76c8>,
                 'firesim-boom-singlecore-no-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b7680>,
                 'firesim-rocket-quadcore-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b7758>,
                 'firesim-rocket-quadcore-no-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b77e8>,
                 'firesim-rocket-quadcore-no-nic-l2-llc4mb-ddr3-half-freq-uncore': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b77a0>,
                 'firesim-supernode-rocket-singlecore-nic-l2-lbp': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f41af1b7710>}}
2020-11-16 16:01:13,664 [<module>    ] [ERROR]  Fatal error.
Traceback (most recent call last):
  File "/home/centos/firesim/deploy/firesim", line 334, in <module>
    main(args)
  File "/home/centos/firesim/deploy/firesim", line 280, in main
    simconf = RuntimeConfig(args)
  File "/home/centos/firesim/deploy/runtools/runtime_config.py", line 326, in __init__
    args.overrideconfigdata)
  File "/home/centos/firesim/deploy/runtools/runtime_config.py", line 253, in __init__
    self.runfarmtag = runfarmtagprefix + runtime_dict['runfarm']['runfarmtag']
KeyError: 'runfarm'
2020-11-16 16:01:13,664 [<module>    ] [INFO ]  The full log of this run is:
/home/centos/firesim/deploy/logs/2020-11-16--16-01-13-launchrunfarm-9TZVADX6VM7WH7EF.log


Note: I just changed the pinglatency-config to set 2xlarge field to 1 (prev value: 0) and 16xlarge to 0 (prev value: 1).

Best,
Varun

alon...@berkeley.edu

unread,
Nov 16, 2020, 7:35:50 PM11/16/20
to Chipyard
Hello Varun

The ping-latency workload is not a great workload to try with a single f1.2xlarge, since it assumes two simulated node that ping between them, hence requiring two FPGAs (i.e., at least a 4xlarge or a 16xlarge).
Have you been able to run the default Linux workload with the default config_runtime.ini (after changing the 16xlarge to a 2xlarge and using the no_net_config topology) as listed in this section of the documentation? https://docs.fires.im/en/latest/Running-Simulations-Tutorial/Running-a-Single-Node-Simulation.html#setting-up-the-manager-configuration

Alon

Varun Gandhi

unread,
Nov 18, 2020, 12:30:52 AM11/18/20
to chip...@googlegroups.com
Hi Alon,

I was able to run a single node simulation using the no_net_config topology. Although, I’d appreciate if you could clarify a few things for me:

1. Is it possible to run a single node simulation on a 2xlarge/4xlarge instance using example_1config topology and firesim-rocket-quadcore-nic-l2-llc4mb-ddr3 hwconfig? I tried doing it but got the following error (error log coped below). Why is it incompatible to map a quadcore-nic config on either of these instance types?

2. Also, when I ran the linux workload on a single node simulation config with a no-nic hw config, I tried to compile a simple c program but buildroot's shell didn’t recognize gcc as a command? Does the default distro lack standard gcc support? 

Best,
Varun


Error log

2020-11-18 04:56:50,232 [main        ] [INFO ]  FireSim Manager. Docs: http://docs.fires.im
Running: terminaterunfarm

2020-11-18 04:56:50,233 [__init__    ] [DEBUG]  {'hwconf_dict': {'firesim-boom-singlecore-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9db90>,
                 'firesim-boom-singlecore-no-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9db48>,
                 'firesim-rocket-quadcore-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9dc20>,
                 'firesim-rocket-quadcore-no-nic-l2-llc4mb-ddr3': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9dcb0>,
                 'firesim-rocket-quadcore-no-nic-l2-llc4mb-ddr3-half-freq-uncore': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9dc68>,
                 'firesim-supernode-rocket-singlecore-nic-l2-lbp': <runtools.runtime_config.RuntimeHWConfig instance at 0x7f288fb9dbd8>}}
2020-11-18 04:56:50,241 [aws_resource] [DEBUG]  i-0c7b16b059cd11e69
2020-11-18 04:56:50,458 [aws_resource] [DEBUG]  {'Name': 'uvrs'}
2020-11-18 04:56:50,459 [__init__    ] [DEBUG]  {'autocounter_readrate': 0,
 'defaulthwconfig': 'firesim-rocket-quadcore-nic-l2-llc4mb-ddr3',
 'f1_16xlarges_requested': 0,
 'f1_2xlarges_requested': 1,
 'f1_4xlarges_requested': 0,
 'linklatency': 6405,
 'm4_16xlarges_requested': 0,
 'netbandwidth': 200,
 'no_net_num_nodes': 1,
 'print_cycle_prefix': True,
 'print_end': '-1',
 'print_start': '0',
 'profileinterval': -1,
 'run_instance_market': 'ondemand',
 'runfarmtag': 'mainrunfarm',
 'spot_interruption_behavior': 'terminate',
 'spot_max_price': 'ondemand',
 'suffixtag': '',
 'switchinglatency': 10,
 'terminateoncompletion': False,
 'topology': 'example_1config',
 'trace_enable': False,
 'trace_end': '-1',
 'trace_output_format': '0',
 'trace_select': '1',
 'trace_start': '0',
 'workload_name': 'linux-uniform.json',
 'zerooutdram': False}
2020-11-18 04:56:50,465 [get_deploytr] [DEBUG]  Setting deploytriplet by querying the AGFI's description.
2020-11-18 04:56:50,465 [get_afi_for_] [DEBUG]  agfi-09dbf5cafb4ff4649
2020-11-18 04:56:50,465 [get_afi_for_] [DEBUG]  None
2020-11-18 04:56:53,668 [get_afi_for_] [DEBUG]  {u'FpgaImages': [{u'UpdateTime': datetime.datetime(2020, 5, 29, 13, 15, 44, tzinfo=tzlocal()), u'Name': 'firesim-rocket-quadcore-nic-l2-llc4mb-ddr3', u'Tags': [], u'PciId': {u'SubsystemVendorId': '0xfedd', u'VendorId': '0x1d0f', u'DeviceId': '0xf000', u'SubsystemId': '0x1d51'}, u'FpgaImageGlobalId': 'agfi-09dbf5cafb4ff4649', u'Public': True, u'State': {u'Code': 'available'}, u'ShellVersion': '0x04261818', u'OwnerId': '552479941143', u'FpgaImageId': 'afi-06de1054463e77c6d', u'CreateTime': datetime.datetime(2020, 5, 29, 12, 35, 43, tzinfo=tzlocal()), u'Description': 'firesim-buildtriplet:FireSim-WithNIC_DDR3FRFCFSLLC4MB_FireSimQuadRocketConfig-F90MHz_BaseF1Config,firesim-deploytriplet:FireSim-WithNIC_DDR3FRFCFSLLC4MB_FireSimQuadRocketConfig-F90MHz_BaseF1Config,firesim-commit:efe623bbdb17b84fdcfa527502a742219658c939-dirty'}], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': 'e3d94f7b-0f52-4af8-bd3e-ca1c284cfb2e', 'HTTPHeaders': {'x-amzn-requestid': 'e3d94f7b-0f52-4af8-bd3e-ca1c284cfb2e', 'transfer-encoding': 'chunked', 'vary': 'accept-encoding', 'server': 'AmazonEC2', 'date': 'Wed, 18 Nov 2020 04:56:53 GMT', 'content-type': 'text/xml;charset=UTF-8'}}}
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  IMPORTANT!: This will terminate the following instances:
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  f1.16xlarges
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  []
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  f1.4xlarges
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  []
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  m4.16xlarges
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  []
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  f1.2xlarges
2020-11-18 04:56:54,195 [terminate_ru] [CRITI]  ['i-02bec8ef64594d59b']
2020-11-18 04:56:57,361 [terminate_ru] [CRITI]  Instances terminated. Please confirm in your AWS Management Console.
2020-11-18 04:56:57,362 [<module>    ] [INFO ]  The full log of this run is:
/home/centos/chipyard/sims/firesim/deploy/logs/2020-11-18--04-56-50-terminaterunfarm-14V2HMNM3CJBYCJL.log
 

Alon Amid

unread,
Nov 18, 2020, 2:41:04 AM11/18/20
to chip...@googlegroups.com
  1. You should be able to run an example_1config topology on a 2xlarge (or 4xlarge) with an AGFI with a nic. The error log you posted is not very informative, since it’s an error log for a terminaterunfarm command. However, it might be useful if you configure the no_net_num_nodes field to 0 if you are using a nic-based AGFI. Example topologies that are not no_net_config automatically instantiate a switch model, which means there is a simulated network
  2. Buildroot is an embedded Linux build platform, and as such it is very light in it’s built-in programs. If you are looking to compile programs within the Linux image, I would recommend reading up on the FireMarshal docs. The general approach we recommend is to cross-compile programs pre-simulation and copy them into the image overlay (which FireMarshal automates for you). Alternatively, if you’re looking for “native” compilation, the Fedora images support a native RISC-V gcc, and will also enable you to compile within the simulation.
Reply all
Reply to author
Forward
0 new messages