Commit Graph

522 Commits

Author SHA1 Message Date
abejgonzalez ab1df7a293 Change references to dev/master [ci skip] 2022-02-15 11:07:37 -08:00
David Biancolin b43ecd1952
Merge pull request #899 from firesim/chisel-3.5-published
Chisel 3.5 / FIRRTL 1.5 Bump using Published Deps
2022-02-10 15:57:21 -08:00
Abraham Gonzalez ce3de16cde
Workaround `rsync_project` `exclude` flag issue (#921)
* Workaround rsync_project exclude issue

* Use `rsync_project` `exclude` option
2022-02-09 16:37:02 -08:00
David Biancolin de2ea34bea Merge remote-tracking branch 'origin/dev' into chisel-3.5-published 2022-02-08 00:29:35 +00:00
David Biancolin 5b62907400 Merge remote-tracking branch 'origin/dev' into chisel-3.5-published 2022-02-08 00:23:30 +00:00
David Biancolin 327af88848 Regenerate AGFIs 2022-02-08 00:22:40 +00:00
David Biancolin a22ba50d69
Implement PerfCounter.identity + CSV Output Format (#876)
* [autocounter] Implement PerfCounter.Identity + CSV format + improved testing
2022-02-04 17:42:28 -08:00
David Biancolin 56e853dadd Remove WithAutoILA from default recipes
Users should explicitly mix this in like other debug features
2022-01-25 00:50:58 +00:00
Abraham Gonzalez e0306c081d
Use prefix to cd (#911) 2022-01-20 18:47:53 -08:00
Abraham Gonzalez 0ed1e42df8
Port to Python3 + Switch to GH-A CI (#878)
* First pass at porting to python3

* Fix import errors | Setup user argcomplete

* Update awstools CLI with user data file | Bump CI to use it

* Wait until launch is complete

* Add userdata as string | Use sudo for machine-launch-script

* Remove execute permissions on machine-launch-script

* Better match on machine-launch-script complete

* Revert python-devel removal

* Use python3 for pytests

* Update more python3 items

* Remove extra shebang

* Port docs to python3 and add to CI

* Add ISCA experiments to CI build check

* Use yum not apt-get

* Add make to doc section

* Bump multilate-loadgen for sysroot fix

* For BW test build don't use shebang

* Fix docs Makefile options

* Fix more doc warnings

* Add first set of regression tests

* Fix raw_input

* Regression bump | Run workload fix

* Add functools to topology

* Fix linux poweroff test (nic still has issues)

* Update regression scripts

* Ignore machine-launch-script.sh in regression area

* Fix map python3 issues

* Get rid of shebangs

* Fix more regressions

* Print machine-launch.log on fail | More clarification on user_data

* Transfer to CI some shorter regressions

* Add a manual approval to fpga based tests

* Fix indentation in config.yml

* Fix test symlink

* Use spot for CI manager instance | Try to use python3 for aws CI container | Version all pip packages

* Make run-ini-api-tests an executable

* Fix CI terminaterunfarm arg

* Add firesim.pem file to manager

* Bump python in CI instance

* Bump pip in CI container

* Remove pip sudo in CI container

* Fix launch script pip version equals

* Ini converted into strings

* Properly pass test_dir to opts in CI

* First pass at GH-A

* Round 2 CI fixes

* Try changes

* Remove CircleCI | Switch to fancy GH-A

* Rename self-host setup script

* Update chmod

* Use - instead of _ for env. vars

* Rename some defs | Remove extra imports

* Small comment updates

* Forgot to import in ini-api tests | Small comment on Fabric timeouts

* Add sys to linux poweroff

* Update linux timeout, fix small imports

* Update comment

* Fix-up workflow-monitor.py

* Avoid excessive logging in run-linux | Terminate spot instances after max-runtime

* Add more workflow-monitor states | Add pty=False to running workloads

* Update CI documentation | Add CI badge [ci skip]

* Don't use spot instances

* Update CI readme

* Determine runner version from remote repo and check for runner setup

* Address PR comments

* Update CI_README location of where to find IPs | Forgot ret_code

* Only run CI on prs/pushes to dev/main/master

* Fix terminate_workflow_instances in init-manager.py

* Cleanup FireSim repo cloning | Only run CI on PRs (since its runs on merge commit)
2022-01-20 11:03:37 -08:00
Abraham Gonzalez 5bd648c2d1
Remove hardcoded aws fpga version (#909)
* Determine AWS FPGA hash locally

* Update aws-fpga naming in run_farm.py
2022-01-18 20:49:27 -08:00
Hasan Genc ec442e0955 Reduce Gemmini build's frequency
(cherry picked from commit 3da301be1e741329042bcbcb6a0bad4c28b8305f)
2022-01-18 17:19:28 +00:00
David Biancolin 104618983f Regenerate AGFIs 2021-12-08 04:51:23 +00:00
Abraham Gonzalez 53868a7212
Add hw config summary in per job outputs (#879) 2021-11-18 18:40:38 -08:00
Abraham Gonzalez 8a67fc07d3
Rsync workload outputs (#877)
* Use rsync to copy back workload results

* Point to correct .ini file in runtime.ini

* Download files with rsync (not upload) | Update docs
2021-11-18 11:07:48 -08:00
Abraham Gonzalez 4a53470ba4
Expose `awstools.py` cmdline to launch/terminate instances (#842)
* Expose cmdline to launch/terminate instances

* Move instance liveness into the wait function

* More complete cmdline

* Have CI use API

* Forgot import

* Forgot another import

* Debug

* Use yaml parser instead of json

* Use safe yaml loading | Use default amt of instances

* Make sure to use aws-tools for cull-ci-insts
2021-10-15 14:04:20 -07:00
David Biancolin 8b77989a28
Vivado 2021.1 / AMI 1.11 (#837)
* Bump to AMI 1.11 / Vivado 2021.1

* pip2 removed on new AMIs; install it explicitly

* Knock BOOM AGFI frequency down

* Add a script to run linux boot on some default targets

* [docs] Tell users to use 1.11.0 AMI

Co-authored-by: Cloud User <centos@ip-192-168-3-37.ec2.internal>
2021-10-06 12:12:48 -05:00
Jerry Zhao d5c4904857 Bump AGFIs, CY for clocking changes 2021-09-30 05:23:36 +00:00
David Biancolin 2ce3123c5f
Merge pull request #834 from firesim/multicycle-constraints-redux
Emit multi-cycle clock constraints on target domains
2021-09-25 11:05:36 -07:00
David Biancolin 2488eb16b0 Regenerate relevant AGFIs 2021-09-25 01:49:10 +00:00
Jerry Zhao 17fff26904 Limit builddir name length to 255 chars 2021-09-23 15:27:30 -07:00
Abraham Gonzalez 442c6047e5
Fix build.ini spelling/spacing 2021-09-15 10:13:18 -07:00
David Biancolin a2a6b3bc27 Regenerate AGFIS 2021-09-11 01:35:34 +00:00
David Biancolin a81801b9f0 Regenerate AGFIs 2021-08-10 15:31:01 +00:00
David Biancolin 2e30100d35 Use new file emission trait + makefile naming cleanup 2021-07-29 22:40:49 +00:00
David Biancolin c41961d3cc
Merge pull request #798 from firesim/aws-fpga-bump
Bump AWS-FPGA for DRAM floorplan + clock partitioning fixes
2021-07-21 13:56:32 -07:00
David Biancolin 20b09215df Stop installing libelf + libdwarf to RISCV 2021-07-14 00:31:36 +00:00
David Biancolin a8bccfda93 Regenerate AGFIs 2021-06-22 18:20:11 +00:00
David Biancolin d281ab27cc Regenerate AGFIs 2021-06-15 22:16:55 +00:00
David Biancolin 080fa9d79e [manager] Update XOCL removal for 1.10 2021-06-15 21:45:28 +00:00
Abraham Gonzalez c6e1bbc77b Bump AMI 1.10 / aws-fpga 1.4.9 / Vivado 2020 2021-06-15 21:45:28 +00:00
David Biancolin 58294cca2e Remove one now unneeded default AGFI & regenerate 2021-06-14 04:20:45 +00:00
David Biancolin a47d409a35 [ini] Update build and build-recipe samples 2021-06-14 04:18:49 +00:00
David Biancolin a92f2752dc
Merge pull request #769 from firesim/remove-firemarshal-ported-workloads
Remove Coremark and SPEC2017 from deploy/workloads
2021-06-02 18:32:02 -04:00
David Biancolin 9240220afd
First-pass AWS-hosted CI based off Abe's BOOM FireSim CI (#727) 2021-05-26 19:44:54 -04:00
David Biancolin 739d7431a5 Remove SPEC2017 2021-05-26 21:42:01 +00:00
David Biancolin 9e9ea5119b remove workloads/coremark 2021-05-26 21:27:04 +00:00
Rahul Bodduna e7e8f2eaf5
Check sns topic permission at start of buildafi and warn user (#754)
Rather than exiting with a unhandled exception when SNS-related permissions failures happen at the end of buildafi, check whether the topic exists (or can be created) early in buildafi and warn the user that the script will be unable to send email (and log the details of the exception) but continue to finish buildafi because failure in sending the notification probably should not be a fatal error for the manager.

This PR also introduces pytest driven unit tests for the firesim manager. The tests make use of moto to mock the backend of boto and prevent tests from actually calling out to AWS API's. They also utilize unittest.mock and botocore.stub.Stubber to inject desired testing stimulus to the code under test.

Adding two tests for the new awstools.get_snsname_arn() function.

To run them:
* make sure you have the new deps in machine-launch-script.sh
* cd deploy
* pytest

Useful primers on pytest & testing AWS:
* https://tensoriot.medium.com/unit-testing-with-pytest-and-moto-e94fc2eefe7a
* https://github.com/boto/boto3/issues/2485

Useful primer on unittest.mock (fka py-mock, not to be confused with pymock):
* https://www.fugue.co/blog/2016-02-11-python-mocking-101

'mock' became part of the stdlib in python 3.3 and was backported to 2.7
as 'py-mock'.  Of course, python being python, there is also a pymock
and that's totally different.

Detailed walkthrough of credential protection while using moto:
* https://blog.codecentric.de/en/2020/01/testing-aws-python-code-with-moto/


* [ci] Add manager pytests

* [ci] Provide aws credentials for pytest

* [ci] Remove AWS creds registration, andt push  use conftest to provide a region


Co-authored-by: Tim Snyder <snyder.tim@gmail.com>
Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>
Co-authored-by: David Biancolin <david.biancolin@gmail.com>
2021-05-12 18:05:42 -05:00
David Biancolin d22301f4ad Regenerate AGFIs 2021-05-08 01:25:55 +00:00
David Biancolin c15d9ffd76 [workloads] Add a poweroff workload for testing a networked target 2021-05-08 01:24:00 +00:00
David Biancolin a65961e2a0 [manager] Minor buildafi bug fixes 2021-05-08 00:33:33 +00:00
Tim Snyder 1c789350b0
Refactor tar2afi logic from aws_build into seperate function (#683)
Enables one to run 'firesim tar2afi --launchtime <timestamp>' to run only
the tar->afi portion of buildafi for the configs listed in config_build.ini

Behavior of buildafi is unchanged
2021-03-31 09:15:15 -05:00
Tim Snyder 9ffba8dbf4
#695 must mixin WithAutoILA to platform config to populate ILA (#712)
* #695 must mixin WithAutoILA to platform config to populate ILA

* Add WithAutoILA to all default recipes per PR feedback
2021-02-03 14:41:03 -06:00
David Biancolin 4f3bf879e8 Regenerate AGFIs
[ci skip]
2021-01-26 21:19:22 +00:00
David Biancolin 0bae4a880a Regenerate AGFI 2021-01-18 07:40:24 +00:00
David Biancolin b85fc2e20a Regenerate AGFIs; Drop timing on no-nic boom
[ci skip]
2021-01-15 07:45:37 +00:00
David Biancolin f51d2ecb34
Merge pull request #676 from firesim/bump-ami-str
Bump AMI string
2020-12-15 21:52:29 -05:00
Tim Snyder 866c43272b
warn_only on simoutputs copy back (#681)
fixes #667
by making behavior the same when get() fails on simoutput as
what currently happens for output from the rootfs
2020-12-14 22:08:09 -06:00
David Biancolin fbf58492c0 Regenerate AGFIs 2020-12-11 03:21:34 +00:00
David Biancolin bdae0a4d79 Temoporarily use a compound config for multiclock recipe 2020-12-11 03:19:28 +00:00