darchr / gem5art Goto Github PK
View Code? Open in Web Editor NEWArtifact, reproducibility, and testing utilites for gem5
License: BSD 3-Clause "New" or "Revised" License
Artifact, reproducibility, and testing utilites for gem5
License: BSD 3-Clause "New" or "Revised" License
The way every artifact is updated now is based on their path, however we have to change this to take the name for the artifact from the artifact member 'name'.
E.g., host OS, compiler, libraries, environment variables,etc.
See also collective knowledge: https://ck.readthedocs.io/en/latest/
E.g., simple grep on filesystem
There's some duplicated information (e.g., the name of the disk and the name in the disk object and the path on disk vs ...)
Relates to #112
Is gem5art going to release notes on how to run standard workloads like SPEC2k17 or SPEC2k6 using System Emulation mode?
This is because Full System mode takes more time when compared to SE mode.
Also, the tool does not give instruction on running a Multi-programmed workload (Multi-core) using SE mode.
Will, there be near future support on it by this tool?
Add a way to launch a run that doesn't add things to the database, etc.
Add member variable status to gem5rub objects that user can set in their simulation (most probably in their run script).
File: artifact.py
method: registerArtifact()
Problem:
if ppath.is_file():
data['hash'] = getHash(ppath)
data['git'] = {}
elif ppath.is_dir():
data['git'] = getGit(ppath)
data['hash'] = data['git']['hash']
else:
raise Exception("Path {} doesn't exist".format(ppath))
The method assumes the file/folder already exists, but it is not the true during the artifact creation.
The artifact will be created the first time at artifact.py:188 (self = cls(data)
)
What is the initial assumption for new artifacts?
Right now, the gem5Run objects are often differentiated based on the parameters passed to the run script (i.e. run.params
). It would be good to give each of the parameters a name.
For instances run.param_names = ['cpus', 'workload', 'input size']
Python's pathlib is a much improved way to use paths in Python 3. We should replace all occurrences of paths with Path
.
When no_kvm option is enabled, linux boot fails for atomic cpu since memory mode should be atomic but even when I fix that Assertion `!inParallelMode || this == curEventQueue()' fails during the linux boot.
Here is the related line:
I followed this tutorial: https://gem5art.readthedocs.io/en/latest/tutorials/boot-tutorial.html
When I run the launch script, I get results directory and everything but when I check, for example, results/run_exit/vmlinux-5.2.3/boot-exit/atomic/classic/1/init/simout, I see that even though the configuration script is in the targeted location, it cannot find it (config-boot-tests/run_exit.py).
Here is my folder structure:
boot-tests:
------config-boot-tests
------disk-image
------gem5
------linux-configs
------linux-stable
------results
------venv
------launch_boot_tests.py
Here is command and error:
command line: gem5/build/X86/gem5.opt -re --outdir=/home/muhammet/Desktop/boot-tests/results/run_exit/vmlinux-5.2.3/boot-exit/atomic/classic/1/init boot-tests/configs-boot-tests/run_exit.py linux-stable/vmlinux-5.2.3 disk-image/boot-exit/boot-exit-image/boot-exit atomic classic 1 init
Script configs-boot-tests/run_exit.py not found.
It would be cool if we had "official" artifacts from gem5-resources.
Right now, you need to say from gem5art.artifact.artifact import Artifact
. This is too many artifacts
.
Currently, saveResults() does not include files in subdirectories in result.zip. Also, when I unzip the file, it uses the absolute paths to structure the output folder. I think it's better to use relative paths.
Working packer scripts:
I was wondering if there are plans to add a SimPoints or SMARTS style methodology to gem5art?
In particular (for SimPoints), how would one account for the mismatch in generating SimPoints on a normal machine and then running them in FS mode where the instructions include the kernel and other processes? Is there a way in gem5 to only count instructions for a certain PID, etc?
Arm is an important one.
Starting to figure out how RISC-V will work as well.
hi
have anyone already made disk image from TPC benchmark?
Links that may be helpful:
getRuns
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.