Commit Graph

907 Commits

Author SHA1 Message Date
Abraham Gonzalez afdc694694 Fix workloads for new API 2022-05-27 18:36:59 +00:00
Abraham Gonzalez 632bc0ab6c New API modifications 2022-05-27 18:20:28 +00:00
Abraham Gonzalez b7f90761d6 Address PR comments + Small cleanup 2022-05-07 04:41:51 +00:00
Abraham Gonzalez 7ad48750d9 Fix workloads/ dir + Fix CI 2022-05-07 04:10:24 +00:00
Abraham Gonzalez 319d05a9e3 Verify ExternallyProvisioned 2022-05-02 05:19:03 +00:00
Abraham Gonzalez 352ecd9b77 Bump sampledb + Pytest 2022-05-02 04:51:32 +00:00
Abraham Gonzalez d92a5715d8 Delete buildafi 2022-05-02 04:27:46 +00:00
Abraham Gonzalez 508697dda8 Merge remote-tracking branch 'origin/main' into where-to-run 2022-05-02 04:27:14 +00:00
Abraham Gonzalez ef4d3298c9
Add Python typing to all files + Cleanup based off it (#1042)
* Fix typing across codebase

* Switches can be on any instance
2022-05-01 02:13:56 +00:00
Abraham Gonzalez cf818b2868 Merge remote-tracking branch 'origin/runtools-mypy' into where-to-run 2022-05-01 00:41:23 +00:00
Abraham Gonzalez c6101ce8cf Switches can be on any instance 2022-04-30 23:16:53 +00:00
Abraham Gonzalez 40c0c6a15a Implement mappers for externally provisioned 2022-04-30 22:20:58 +00:00
Abraham Gonzalez a917bcf155 Merge remote-tracking branch 'origin/what-to-build' into runtools-mypy 2022-04-30 21:19:10 +00:00
Abraham Gonzalez 3eb1bb6053 Fix typing across codebase 2022-04-30 20:42:06 +00:00
Abraham Gonzalez 09e14cd930 Fix pytest 2022-04-30 20:38:23 +00:00
Abraham Gonzalez 9c19d87c65 Update #1 2022-04-30 01:42:16 +00:00
Abraham Gonzalez c98ffb3c11 Fix hwdb + Update entries 2022-04-29 20:52:26 +00:00
Abraham Gonzalez e718a0fc8d Fix typechecking 2022-04-29 00:45:10 +00:00
Abraham Gonzalez 70e6d137c7 Merge remote-tracking branch 'origin/main' into what-to-build 2022-04-29 00:33:29 +00:00
Tim Snyder 606521f70a clarify get_aws_userid docstring 2022-04-28 00:36:21 +00:00
Tim Snyder 8c56581681 revert accidental removal of BuildConfigFile.__repr__ 2022-04-28 00:01:14 +00:00
Tim Snyder 2fbfe723ad
Apply suggestions from code review
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
2022-04-27 18:49:56 -05:00
Abraham Gonzalez 3e1571c2ce
Apply suggestions from code review
Co-authored-by: Sagar Karandikar <sagark@eecs.berkeley.edu>
2022-04-27 15:28:19 -07:00
Abraham Gonzalez ef3f7a315a Fix bugs 2022-04-27 02:24:06 +00:00
Abraham Gonzalez f94ddcf522 Wrap things up a bit in dataclasses 2022-04-27 01:42:21 +00:00
Abraham Gonzalez f75cfcbe18 Merge in Sagar changes 2022-04-27 00:27:53 +00:00
Abraham Gonzalez 863426c41e
Apply suggestions from code review 2022-04-25 20:28:42 -07:00
Abraham Gonzalez 3012b931e6 Fix small bugs 2022-04-26 03:06:37 +00:00
Abraham Gonzalez 225fdc8dd3
Apply suggestions from code review 2022-04-25 20:05:52 -07:00
Abraham Gonzalez 14accca27b
Update deploy/awstools/awstools.py 2022-04-25 17:32:15 -07:00
Abraham Gonzalez 5e091937fd Bug fixes + Confirm working for no_net sim 2022-04-26 00:30:43 +00:00
Abraham Gonzalez 864162532b Again 2022-04-25 22:32:50 +00:00
Abraham Gonzalez 38bb4cc171 Fix some circular imports + Cleanup + Bugfixes 2022-04-25 22:18:26 +00:00
Abraham Gonzalez f0d63fc11c runtools typing complete - rootLogger 2022-04-25 22:18:26 +00:00
Abraham Gonzalez 718930a22d Update function naming 2022-04-25 22:17:32 +00:00
abejgonzalez 2c67f9bc46 awstools typing + small organization 2022-04-25 22:17:32 +00:00
Abraham Gonzalez e549cc6688 Update typing 2022-04-25 22:15:12 +00:00
Abraham Gonzalez f2887d39d8 Fix some circular imports + Cleanup + Bugfixes 2022-04-25 19:20:25 +00:00
Abraham Gonzalez 8dcb1271a9 runtools typing complete - rootLogger 2022-04-25 06:14:40 +00:00
Abraham Gonzalez 07d84a3f9e closer 2022-04-24 01:36:55 +00:00
Abraham Gonzalez 6bcfa35163 Fix issues round 1 2022-04-23 02:56:56 +00:00
Abraham Gonzalez f0e5b30f7d Rip from vitis-integration-ontop-fsim-mill 2022-04-23 00:35:40 +00:00
David Biancolin 17e623fb7b Regenerate AGFIs 2022-04-23 00:25:57 +00:00
Tim Snyder d086ed8a0c reimplement buildafi deprecation warning
Implementation that used warn(DeprecationWarning) wasn't printing to output or being logged
implement it with more straightforward logging messages and by changing taskname to buildbitstream
2022-04-22 15:01:45 +00:00
Tim Snyder d24dbdd6c3 cleanup TypedDict import
We've moved to python 3.8 now.  No longer need backup import
2022-04-22 15:01:45 +00:00
Tim Snyder be89839eb5 fixup bitbuilder 'merge'
There were other changes to buildafi.py that I didn't catch in
my first pass.
2022-04-22 15:01:45 +00:00
Abraham Gonzalez 1c1c13b2c6 Update function naming 2022-04-22 04:15:44 +00:00
abejgonzalez a37c468157 awstools typing + small organization 2022-04-22 04:07:46 +00:00
Tim Snyder c311fa60ae cleanup use of TABs in bitbuilder.py 2022-04-18 19:47:08 +00:00
Tim Snyder e2135d6cfe add --platform and reloacate awsinit
managerinit now requires a --platform flag that defaults to f1
awsinit is moved into awstools.py
updated docs to remove references to awsinit
2022-04-18 19:46:46 +00:00
Tim Snyder 27dba16613 Merge remote-tracking branch 'origin/main' into what-to-build
manually merged changes from buildafi.py into bitbuilder.py
2022-04-18 16:29:11 +00:00
Abraham Gonzalez 5d8f51b132 Move `deploy_triplet` under `PLAT_CFG` 2022-04-17 00:03:08 +00:00
Abraham Gonzalez 46b9e3b784
Remove hyphen in workloads/unitest [ci skip] 2022-04-16 16:56:15 -07:00
Tim Snyder a0be76cc36 deprecate buildafi and create buildbitstream 2022-04-15 20:33:59 +00:00
Tim Snyder 0092c26895 refactor BuildConfigFile.build_bitstream back into main.build_bitstream
doesn't make sense to have a method in BuildConfigFile that has expectations regarding
being called after methods of a completely different class.  It also seems like a better
design to keep all of the decisions about whether fabric is running something in parallel
or series together in the firesim task method main.build_bitstream
2022-04-15 20:33:23 +00:00
Tim Snyder ac2fda235a Merge remote-tracking branch 'origin/main' into local-fpga-merged-into-main-wo-vitis 2022-04-15 19:17:10 +00:00
Tim Snyder 109ad6beb5 Merge remote-tracking branch 'origin/what-to-build' into local-fpga-merged-into-main-wo-vitis
Manually merged buildafi.py changes into bitbuilder.py
2022-04-15 19:16:56 +00:00
Abraham Gonzalez 8172c90a3c Bump AGFIs 2022-04-15 00:29:40 +00:00
Abraham Gonzalez ae9d357694 _ instead of - in YAML + Use classname for bfarms + Small renaming 2022-04-14 01:02:42 +00:00
Tim Snyder 6bd99b2b8c Merge remote-tracking branch 'origin/main' into use_conda 2022-04-13 00:22:58 +00:00
Tim Snyder 65912f1639 ensure xdma drivers are built with system gcc
newer conda toolchain has --enable-default-pie.  Kernel driver build
on centos doesn't like that.  Adding -fno-pic to the build causes string.h
to not be found.  Will look into this more later
2022-04-08 00:34:52 +00:00
abejgonzalez d8bcecf659 Misspelled AFI name in HWDB entry 2022-04-07 15:09:08 +00:00
abejgonzalez f7afd8256a Bump AGFIs + Switch BoomNoNic to 65M 2022-04-07 04:29:55 +00:00
Tim Snyder 5dd1486ee2
Merge branch 'main' into use_conda 2022-04-06 15:48:40 +00:00
Tim Snyder bd38d6f164 copy local libs for switch also
* moves get_local_shared_librares into runtools.utils so that same helper
  can be used for switch and driver
* stop setting LD_LIBRARY_PATH for FireSim-f1 when running, instead
  add $ORIGIN to the beginning of RPATH for both driver and switch
* cleaned up a TODO that was TODONE by Sagar a long time ago
* switch makefile updated to use standard env vars (so that it is easier
  to tweak the build in standard ways). The only actual change is addition
  of $ORIGIN at front of rpath
2022-04-06 15:40:37 +00:00
abejgonzalez 35589bc8e7 Merge remote-tracking branch 'origin/main' into local-fpga-merged-into-main-wo-vitis 2022-04-04 18:04:32 -07:00
abejgonzalez e3f8103823 Add build.yaml comment on build farms 2022-04-04 17:01:14 -07:00
Tim Snyder 41df476b8a copy all DSOs known by ldd with driver
NOTE: if we start dynamically loading things at runtime, this will not cover that case
2022-04-04 20:31:19 +00:00
Sagar Karandikar 204f9b07a0
Update deploy/runtools/firesim_topology_with_passes.py
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
2022-04-04 12:09:52 -07:00
abejgonzalez b53422702d Merge remote-tracking branch 'origin/local-fpga' 2022-04-02 22:29:06 -07:00
Sagar Karandikar 6bb0fbc395 update comments 2022-03-31 17:44:24 +00:00
Tim Snyder 5eed280437 Merge remote-tracking branch 'origin/main' into use_conda 2022-03-31 03:18:05 +00:00
Sagar Karandikar 910438b1b6 fix 2022-03-31 02:19:21 +00:00
Sagar Karandikar 3a333930ca revert the change from #842 that makes launchrunfarm block on instances passing status checks. make ci use instance_liveness instead 2022-03-31 01:22:33 +00:00
David Biancolin 641b29b2e8
Merge pull request #981 from firesim/mergify/copy/main/pr-797
Use FIRRTL 'FPGA backend' passes in the GG compiler + Isolate Emitter
2022-03-24 09:19:36 -07:00
David Biancolin 3e5ded7938 Regenerate AGFIs 2022-03-23 22:37:55 +00:00
Tim Snyder 68ae92db1e scripts/update_test_amis.py uses code from moto instead of copy 2022-03-22 05:01:38 +00:00
abejgonzalez 812c277b36 Fix terminate run farm args 2022-03-18 23:40:22 +00:00
abejgonzalez ffa022be2b __init__ comments for BuildHosts 2022-03-18 20:50:29 +00:00
abejgonzalez a119aa4cf0 Address PR comments 2022-03-18 20:40:06 +00:00
abejgonzalez 692e3a3b7a Fix errors 2022-03-18 18:38:14 +00:00
abejgonzalez 1c678c3fbf Add default build farm to build API tests 2022-03-18 18:08:04 +00:00
abejgonzalez 81e7379024 Update __repr__ and __str__ funcs 2022-03-18 18:00:58 +00:00
abejgonzalez 3191710b66 Cleanup fabric typing 2022-03-18 17:39:13 +00:00
abejgonzalez c42fc0c8e0 Merge remote-tracking branch 'origin/where-to-build' into where-to-build-v2 2022-03-18 17:29:11 +00:00
abejgonzalez 840caf796e Address PR comments 2022-03-18 17:22:22 +00:00
Sagar Karandikar 70b729ed9d update tests to use pagination 2022-03-17 00:50:00 +00:00
Sagar Karandikar d87cfceb7c remove strict=True on test_scripts.py 2022-03-17 00:39:19 +00:00
Sagar Karandikar 66b83807de more pagination 2022-03-16 23:42:48 +00:00
Sagar Karandikar 13cf92fa27 refactor 2022-03-16 22:51:07 +00:00
Sagar Karandikar b842690e68 fix pagination when getting afi tags 2022-03-16 22:33:39 +00:00
Sagar Karandikar db61793548 fix pagination for agfi->afi lookup 2022-03-16 22:16:33 +00:00
Tim Snyder 24f48d716e use sys.exit() not exit()
exit() is meant to be a helper in interactive repls and won't work if python is started with -S in a script
https://stackoverflow.com/questions/6501121/difference-between-exit-and-sys-exit-in-python
2022-03-15 07:06:47 +00:00
Tim Snyder 9de9851d5a rm parameters on RuntimeConfig.terminate_run_farm
propagate storing args in runtime_config by no longer needing
terminatesome parameters on the runtime_conf.terminate_run_farm() method
per Abes PR feedback
2022-03-15 06:56:18 +00:00
Tim Snyder 54dc32f9e6
Apply suggestions from code review
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
2022-03-14 14:02:48 -05:00
Tim Snyder da75c7b61b cleanup and finish yaml unit tests
* switch to using pytest-mock mocker fixture
* create a task_mocker that understands how to mock firesim.TASKS correctly
* write the remaining tests and fix the ones I didn't have correct in initial PR
2022-03-14 00:37:31 +00:00
Tim Snyder 6cbc4fb270 add test to demonstrate moto doesn't care about inst type
Abe was curious whether boto would error if you give it a bogus instance
type when launching an instance.  I added a test that shows what moto will
do.  The boto test might be a good example for how to un-munge the environment
for actually using AWS in unit tests that don't mock it out.
2022-03-14 00:37:31 +00:00
Tim Snyder b81bf2f1cf factor FIRESIM_SOURCED and relocate out of main()
created a check_env function and moved the check from main() into
if __name__ == '__main__' because it made testing less annoying

if we decide that we want it to still be in main(), I'd still like the
function to exist so that we can easily test a fixture early in unit testing
that munges the environment checks for testing
2022-03-14 00:37:31 +00:00
Tim Snyder 4e4a48e54a firesim tasks throw if not called via TASKS
When patching for testing, I was concerned about where to do the patching
and making the symbol table lookups throw seemed like a sensible thing.  However,
now that I'm done writing the tests, this seems like it might be overkill
and that's why I'm leaving it in a separate commit in case I want to revert it.
2022-03-14 00:37:28 +00:00
Tim Snyder 44ac18b440 revisit firesim.register_task with PR feedback
* make it a decorator because that's what it really is
* unify BUILD and RUN tasks by introspecting the config class needed at registration time
* unify special cases by allowing tasks to not take a config class and tweaking terminaterunfarm
  so that it only takes the RuntimeConfig (stuffed the args into it like we do with BuildConfigFile)
2022-03-14 00:36:54 +00:00
abejgonzalez 21eabbcbb4 Rework build farm/hosts 2022-03-13 01:08:53 +00:00
Abraham Gonzalez eb56126277
Merge pull request #856 from firesim/awstools-cli-ami-specification
Add AMI flag to awstools CLI
2022-03-11 14:03:08 -08:00
Abraham Gonzalez 3fbac8a983 awstools CLI: add AMI flag 2022-03-11 11:33:27 -08:00
Tim Snyder 9988093bf1 start rewriting test_yaml_api
There are some tests that depend on setup done earlier in the GH workflow (i.e. managerinit being run)
Others that are unclear as to whether they are supposed to fail before buildafi has been run.
Haven't written most of the RUN_TASK tests yet.
2022-03-11 16:25:12 +00:00
Tim Snyder d4ebf87531 rework toplevel manager script to be importable for testing
* don't use globals() to dispatch the tasks, create a module-level dict for that purpose
* pytest toplevel conftest.py will drop a firesim.py -> firesim symlink for test importing
* construct_argument_parser() should return the parser without actually
  parsing so that the testharness can use it with arglists
2022-03-11 16:20:24 +00:00
Tim Snyder 9630898cf1 start with moving yaml api tests into deploy/tests and unhooking from CI
it will get run by pytest
2022-03-09 20:48:33 +00:00
abejgonzalez e87cd4ac56 Test and fix build dir errors | Address PR issues 2022-03-08 08:29:34 +00:00
abejgonzalez 55bcaa56e5 Use global build farm instead of per-build 2022-03-08 07:37:26 +00:00
abejgonzalez 5163ee7316 Use ABC and remove getattr 2022-03-08 06:42:53 +00:00
abejgonzalez c5f98fca31 First pass at review comments 2022-03-08 05:41:42 +00:00
Tim Snyder 3aba45913e update test_amis.json after #977 failed to 2022-03-05 01:44:14 +00:00
Abraham Gonzalez e6b7e4ea21
Update AMI string in deploy 2022-03-01 00:41:56 +01:00
abejgonzalez 417ebe654d Unset bypassVivado [ci skip] 2022-02-24 05:45:38 +00:00
abejgonzalez 0b9af1993c Update comment indicating circ. dep. 3.7+ fix [ci skip] 2022-02-23 21:39:54 -08:00
abejgonzalez 195a0f1420 Fix other merge issues | Fix up type annotations 2022-02-24 02:08:40 +00:00
abejgonzalez 62dcced1c4 Merge remote-tracking branch 'origin/where-to-build' into what-to-build 2022-02-24 01:40:52 +00:00
abejgonzalez 184a8b2825 Cleanup imports | Add comments 2022-02-24 00:27:21 +00:00
abejgonzalez f609ce0eda Get to --help | Add more stubs 2022-02-23 23:29:30 +00:00
abejgonzalez 85403ff345 Address overrideconfigdata kebab casing 2022-02-23 11:23:11 -08:00
abejgonzalez ac4c279121 Fix circular import due to type checking 2022-02-23 11:07:52 -08:00
abejgonzalez f8b8e4120d Add CI for type checking | Fix final type errors 2022-02-23 10:43:02 -08:00
abejgonzalez 7065da625f Add more type checking | Clearer docstrings 2022-02-22 19:15:00 -08:00
abejgonzalez 9d8b91fb03 Add Google-style doc-strings to dispatchers | Check w/ mypy 2022-02-22 18:16:45 -08:00
abejgonzalez b8462c355e Remove build-farm default from build recipes 2022-02-22 14:18:30 -08:00
abejgonzalez 699cf51193 Add more comments to .yamls 2022-02-22 14:17:01 -08:00
abejgonzalez a0b3667ce7 Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-22 13:53:59 -08:00
abejgonzalez 5c53dcbbbd Address some PR comments 2022-02-19 18:27:17 -08:00
Tim Snyder caab42aa9c
Add scripts/update_test_amis.py for maintaining deploy/tests/test_amis.json (#947)
* mv deploy/tests/test_amis{_snake,}.json

_snake is related to the janky way I manually created MOTO_AMIS_PATH the first time
I'm replacing that with a customized version of the moto/scripts/get_amis.py script

* add scripts/update_test_amis.py as copied from moto

just so that the diff is inspectable later...

* Customize scripts/update_test_amis.py for FireSim

And use it to update deploy/tests/test_amis.json
And add a test to check whether test_amis.json needs to be updated
And make all of the tests that will fail confusingly depend on that test

* add comment about running script when you update the AMI

Co-authored-by: Tim Snyder <snyder.tim@gmail.com>
2022-02-18 23:03:32 +00:00
abejgonzalez 7ff85f3cc5 Merge remote-tracking branch 'origin/dev' into prep-for-main 2022-02-15 23:49:00 -08:00
David Biancolin 0cf6dbee67
Merge pull request #940 from firesim/launchrunfarm_patient_perseverence
Launchrunfarm patient perseverence (local-branch-redux)
2022-02-15 17:41:45 -08:00
Tim Snyder 3b20b55cd1 try changing scripts/aws-setup.py to a symlink so that the wget url in setup docs doesn't have to change 2022-02-15 22:55:59 +00:00
Tim Snyder 4f84066959
Update deploy/awstools/awstools.py
Co-authored-by: Sagar Karandikar <sagark@eecs.berkeley.edu>
2022-02-15 16:37:25 -06:00
Tim Snyder 9acf77769d rename 'expand_runfarm_by_count' to 'always_expand' and plumb to config_runtime.ini 2022-02-15 20:09:49 +00:00
abejgonzalez ab1df7a293 Change references to dev/master [ci skip] 2022-02-15 11:07:37 -08:00
Tim Snyder 6f59f47d30 rename 'additive' parameter of launch_instances to 'expand_runfarm_by_count' 2022-02-15 16:27:09 +00:00
Tim Snyder 1febff6616
Update deploy/awstools/awstools.py
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
2022-02-14 21:31:12 -06:00
David Biancolin 56ae2e4e01 Regenerate AGFIs 2022-02-14 23:31:52 +00:00
Tim Snyder 127ad30488 Apply feedback from PR
* make default timeout 0 to match legacy behavior when new
  key is not present in runtime.ini
* Add tests requires
   * moving scripts/aws-setup.py into a loadable module
   * adding sure to machine-launch-script.sh for nicer assertion style
* Generalize awstools.get_instances_by_tag_type to not assume it is
  being called with 'fsimcluster' value, uses tags dict.  Created
  awstools.get_run_instances_by_tag_type that uses old symantics and calls
  the general function similar to launch_run_instances()
* Add `additive` parameter to `awstools.launch_instances()` that controls
  whether `count` is the number to be launched in that call or a total number
  of instances that should be reached including ones already launched that
  match the `type` and `tags`
2022-02-14 22:27:34 +00:00
Tim Snyder fd2041bf41 Add FPGA dev AMI to moto via MOTO_AMIS_PATH env var 2022-02-14 17:22:51 +00: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
abejgonzalez 792940a0a7 Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-08 17:28:42 +00:00
Tim Snyder 8f49835081 Enhance launchrunfarm to patiently try harder #713 2022-02-08 16:33:58 +00:00
Abraham Gonzalez 3ed01c35e8
Implement PerfCounter.identity + CSV Output Format (#876) (#925)
* [autocounter] Implement PerfCounter.Identity + CSV format + improved testing

Co-authored-by: David Biancolin <david.biancolin@gmail.com>
2022-02-08 08:22:17 -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
abejgonzalez 32c8480dd0 Fix more YAML stuff 2022-02-07 23:49:20 +00:00
abejgonzalez 78f414e661 Fix more errors 2022-02-07 19:19:34 +00:00
abejgonzalez eac907474f Fix errors up until AFI starts building 2022-02-05 06:23:17 +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
abejgonzalez 58e63b68b1 Fix missed items in diff | Update CI 2022-02-04 16:03:06 -08:00
abejgonzalez 2c77343723 Update to yaml | Bring in other upstream changes 2022-02-04 13:55:12 -08:00
abejgonzalez f7815452db Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-04 10:54:14 -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
abejgonzalez 405d8d29c4 Update bitbuilder with most recent buildafi changes 2021-11-22 18:49:44 -08:00
abejgonzalez 504cc3571d Remove more extra files from merge 2021-11-22 17:35:21 -08:00
abejgonzalez f8c53d399e Fix up sample inis 2021-11-22 17:34:02 -08:00
abejgonzalez 406af0bc14 Forgot to remove extra files from merge 2021-11-22 17:30:20 -08:00
abejgonzalez 6b7f5522c5 Merge remote-tracking branch 'origin/where-to-build' into what-to-build 2021-11-22 17:27:30 -08:00
Abraham Gonzalez 53868a7212
Add hw config summary in per job outputs (#879) 2021-11-18 18:40:38 -08:00
Abraham Gonzalez a07bf6f826 Update some more naming about build hosts 2021-11-18 22:25:27 +00:00
Abraham Gonzalez 6ae3d32b1f Update default inis 2021-11-18 22:20:58 +00:00
abejgonzalez 578cd89475 Fix some naming | Cleanup arg parsing 2021-11-18 21:28:51 +00:00
abejgonzalez 22203a8418 Rename BuildFarm -> BuildHost + Comment changes + DefaultDispatcher -> IPAddrDispatcher 2021-11-18 21:28:51 +00:00
abejgonzalez a2b59288a9 Add docstrings 2021-11-18 21:28:51 +00:00
abejgonzalez 89f74c5cce Move build-bitstream.sh to platforms 2021-11-18 21:28:51 +00:00
abejgonzalez 1a640f4ee9 Remove driver/replace-rtl scripts 2021-11-18 21:28:51 +00:00
Abraham Gonzalez e58d32fe17 Use argparse default printout 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 1534699f66 Forgot to update inis | Ensure only 1 IP is used per build 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 90787d273e Rewrite get inst ips as lambda 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 3251b9e60a Move build_hosts to new file + Refer to build host from recipes + Small renaming 2021-11-18 21:28:51 +00:00
Abraham Gonzalez df84255bba Cleanup folder naming 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 7b0efebb3e Fix the AGFI entry | Properly copy back results 2021-11-18 21:28:51 +00:00
Abraham Gonzalez d358a42394 Small cleanup + Fix bug w/ build-bitstream retcode 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 0093d6e0fb Push example inis 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 50099ad79b More fixes to get afi building (tested up until the vivado is called) 2021-11-18 21:28:51 +00:00
Abraham Gonzalez 962f935790 Copy changes from PR #848 2021-11-18 21:28:49 +00: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
Abraham Gonzalez c08be33d39 Build RTL/Driver locally 2021-10-15 20:57:54 +00:00
Abraham Gonzalez a6acaa7801 First attempt at separating out AWS F1 bitstream building 2021-10-15 20:52:44 +00:00
Abraham Gonzalez 634ab9de57 Forgot to update inis | Ensure only 1 IP is used per build 2021-10-15 20:50:53 +00:00
Abraham Gonzalez 875bf361e1 Rewrite get inst ips as lambda 2021-10-15 06:42:15 +00:00
Abraham Gonzalez 56ea71b493 Move build_hosts to new file + Refer to build host from recipes + Small renaming 2021-10-15 06:21:47 +00:00
Abraham Gonzalez 7eec2a4a04 Cleanup folder naming 2021-10-15 05:58:50 +00:00
Abraham Gonzalez 14a2d4e9d4 Fix the AGFI entry | Properly copy back results 2021-10-15 05:28:43 +00:00
Abraham Gonzalez 69f0263190 Small cleanup + Fix bug w/ build-bitstream retcode 2021-10-13 04:24:02 +00:00
Abraham Gonzalez 9aca7f6165 Push example inis 2021-10-13 03:24:45 +00:00
Abraham Gonzalez 39aef1c073 More fixes to get afi building (tested up until the vivado is called) 2021-10-13 03:24:45 +00:00
Abraham Gonzalez 8d8c3856b8 Copy changes from PR #848 2021-10-13 03:24:45 +00:00
abejgonzalez 716ef87143 Add timeout if managerinit --copyonly called before awsinit 2021-10-12 20:20:24 -07:00
Abraham Gonzalez 454df47219 Update docs | Add flag with new functionality 2021-10-13 03:08:32 +00:00
Abraham Gonzalez 5c97b4f5e0 Forgot to add awsinit to parser 2021-10-12 23:30:03 +00:00
Abraham Gonzalez 3ffb0a3c0c Prevent non-AWS managers from erroring + small warning changes 2021-10-12 23:27:57 +00:00
Abraham Gonzalez e99e6be49a Separate AWS init stuff from managerinit 2021-10-12 23:17:40 +00: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
Tim Snyder 4f357d7c07
Enable customruntimeconfig to be relative path above firesim (#665)
When using FireSim as a library in another project, it is useful to keep
configuration files in the repo of the toplevel project. This is a minimal
change that enables a user to provide a path like ../../../toplevel-configs/somegreat.conf

infrasetup already copies the file correctly.  This change only modifies
RuntimeHWConfig.get_local_runtimeconf_binaryname() to explicitly strip the
path to os.path.basename
2020-12-10 00:29:35 -06:00
Abraham Gonzalez 3527648572 Bump AMI string 2020-12-09 06:16:39 +00:00
abejgonzalez 57efb2ec03 Rename Ariane to CVA6 2020-11-04 15:38:59 -08:00
David Biancolin 11dbebdef0 Regenerate AGFIs
[ci skip]
2020-10-19 15:27:52 +00:00
David Biancolin 44649158c0 Merge remote-tracking branch 'origin/dev'. Needs CY bump. 2020-10-16 23:19:48 +00:00
Alon Amid b9a9061b0b type 2020-10-15 17:52:56 +00:00
Alon Amid b35e81422c updated build recipes to use chipyard configs 2020-10-15 17:02:44 +00:00
David Biancolin 89a2ac931e Regenerate AGFIs. NB: FMR regression (1.7 -> 3.5) over last regeneration 2020-10-15 15:58:30 +00:00
David Biancolin 02dfcdc718 Regenerate AGFIs 2020-09-27 21:24:35 +00:00
David Biancolin 0f506e9bb1 Update names in all no-nic-targets user topology.
Secretly, I love saying 'Damn It Jerry' for stuff that's my fault.
2020-09-27 21:20:17 +00:00
Jerry Zhao c1cd3e5e70 Bump chipyard for harnessbinder refactor 2020-09-13 06:36:06 +00:00
Jerry Zhao 403b347984
Merge pull request #623 from firesim/diplomatic-clocks
Update AGFIs for new diplomatically clocked designs
2020-08-27 12:44:47 -07:00
Jerry Zhao 05edd6be8c Update AGFIs for new diplomatically clocked designs 2020-08-27 08:06:24 +00:00
Howard Mao 8e85f4642d make config_runtime.ini comment clearer and add to manager docs 2020-08-06 13:19:54 -07:00
Howard Mao 0b3d5febb1 change hostdebug.asserts to hostdebug.disable_synth_asserts 2020-08-05 18:51:07 -07:00