-
Notifications
You must be signed in to change notification settings - Fork 19
stdlib: JSON-configurable RISCV Matched Board files, testing scripts, and output #265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
erin-le
wants to merge
13
commits into
darchr:develop
Choose a base branch
from
erin-le:develop
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Change-Id: Id76227e8ae9b0f5545d58661e9019f98f446f9f6
Added PB designs of different sizes, modified riscvmatched_board.py and riscvmatched_cache.py to be configurable with a JSON file, and wrote a script (json_maker.py) to generate new JSON files from the PB design. Change-Id: I59ea7927848307c1c027f5fcc3ba74364cb43ef1
Added a bash script for testing, made changes to json_maker.py to work with the script, and fixed bugs in the JSON-configurable RISCV matched files. Change-Id: I8398b74564f93868b7a1acd79497c84eb7226d08
This commit adds further changes to pb_matched_run.sh, which is used to run the script that generates a config json and starts a simulation. Edits to other files were also made to reflect the changes in pb_matched_run.sh. Change-Id: I1a1d01d77d567fb65e1441eb3135ffc9ef3cb7a9
Removed the ability to configure pipeline parameters via JSON from riscvmatched_core.py and created a new JSON file with high/low values (nopipe_params.json) that has the pipeline parameters removed. Change-Id: I52746d5afba9db8900fc5481fc3b5887fb849c21
The following benchmarks were run with simple-config.py: riscv-print-this, riscv-bubblesort, riscv-floatmm, riscv-hello Each benchmark was run with different rows of a size 16 foldover PB design, for a total of 32 unique board configurations. For riscv-print-this, riscv-bubblesort, and run 0_0_16 of riscv-floatmm, each configuration had 5 runs. For the rest of the riscv-floatmm configurations and all of the riscv-hello configurations, each configuration had 3 runs. This commit pushes the JSON files for each configuration, the output files of each run, and some minor changes to the files used to run tests. Change-Id: I69e0be6df2312a910fa125ec86061156fab9e678
This commit pushes the output files from running riscv-print-this, riscv-bubblesort, riscv-floatmm, riscv-hello, and a number of microbenchmarks. There are two sets of files. The ones under matched_board_tests_MATLAB used a 16 by 16 Hadamard matrix generated by Matlab. At the time, we assumed that all Hadamard matrices could be used as PB designs, but we were later uncertain about this. As such, the files under matched_board_tests_paper used a size 16 PB design from the original paper on PB designs. Change-Id: I0e652393482d099be4579f0c16da48985cfc1913
This commit adds more information to README.md about the process we followed when performing tests. It also adds explanatory comments to the code. Change-Id: If748e6b8cb125caec3163a809a301bae8e060bf7
Change-Id: Id939730a982bced5beb52a986e75a2d850aba695
After changing the U74MemReadFU and U74MemWrite parameters to have 1 and 2 as their high and low values, the microbenchmarks were run again. The output files are under the folder matched_board_tests_paper/microbench_2. Change-Id: Ice98d8bc9364b0f9d099dc09fac0d161c7e6dea6
Added and modified files to conduct a full factorial experiment on the RISCV Matched Board using the parameters in nopipe_params.json. Change-Id: I7bf73e743c444b650719bb6827850922e514c49a
The Yates algorithm is a method to generate estimates for the effect of each parameter and interactions between parameters. To use it, we have to access the output stats files in a order different from the order they were generated in. Specifically, the binary values of the run numbers are flipped. This commit adds a script which generates a JSON that maps between the original and flipped number (in base 10), as well as a generated JSON for number of parameters = 13. Change-Id: I5f10df6790a4c2a42c37d40dbd89a77d5ee4d300
kaustav-goswami
pushed a commit
that referenced
this pull request
Oct 31, 2023
The L3 cache did not work due to argument type mismatch in the call to the constructor `DMAController`. The second argument is expecting a `RubySystem` type but the code passes in a `cache_line_size` variable. After I change the second argument to `self.ruby_system` everything works.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request adds the RISCV Matched Board files that were modified to have their parameters be configurable by JSON, the various scripts and files that were created in order to generate configuration JSONs and run tests, and the output files that resulted from running tests.
The Matched Board files are under src/python/gem5/prebuilt/riscvmatched. The scripts and other files are under example.
The files used to generate each configuration JSON were example/nopipe_params.json (containing two values for each parameter), example/old/hadamard-matrices/H_16.txt and example/pb-designs/PB_16.txt (matrices that choose between parameter values), and example/json_maker.py.
The files example/microbench_pb_run.sh (for the microbenchmarks) and example/pb_matched_run.sh (for all other benchmarks) were used to run the simulations.
The test output files can be found under matched_board_tests_MATLAB and matched_board_tests_paper. They correspond to H_16.txt and PB_16.txt, respectively.
More information on the testing process and methodology can be found in example/README.md.