resources: Merge branch 'master' into develop
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index a67107b..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-output
-__pycache__/
diff --git a/README.md b/README.md
index b2070d3..a6c339a 100755
--- a/README.md
+++ b/README.md
@@ -34,9 +34,9 @@
applicable to gem5-resources.
The compiled resources for gem5 can be found under
-http://dist.gem5.org/dist/{VERSION}. E.g. compiled resources for gem5 v20.2.0.0
+http://dist.gem5.org/dist/{VERSION}. E.g. compiled resources for gem5 v20.2.0.2
are under http://dist.gem5.org/dist/v20-2-0-2 and are compiled from
-gem5-resources v20.2.0.0. http://dist.gem5.org/dist/develop is kept in sync
+gem5-resources v20.2.0.2. http://dist.gem5.org/dist/develop is kept in sync
with the develop branch, and therefore should not be depended upon for stable,
regular usage.
@@ -63,7 +63,7 @@
The change will then be reviewed via our [Gerrit code review system](
https://gem5-review.googlesource.com). Once fully accepted and merged into
the gem5-resources repository, please contact Bobby R. Bruce
-[mailto:bbruce@ucdavis.edu](bbruce@ucdavis.edu) to have the compiled sources
+[bbruce@ucdavis.edu](mailto:bbruce@ucdavis.edu) to have the compiled sources
uploaded to the gem5 resources bucket.
# Requirements
@@ -359,15 +359,11 @@
## Compilation
-To compile Square the [ROCM HIPCC Compiler](
-https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html)
-must be installed.
-
To compile:
```
cd src/square
-make gfx8-apu
+docker run --rm -v ${PWD}:${PWD} -w ${PWD} -u $UID:$GID gcr.io/gem5-test/gcn-gpu make gfx8-apu
```
The compiled binary can be found in `src/square/bin`
@@ -376,12 +372,22 @@
<http://dist.gem5.org/dist/v20/test-progs/square/square.o>
-# Resource: SPEC-2006 tests
+# Resource: SPEC 2006
-Contains scripts to create a disk image and to run SPEC-2006 tests on gem5.
-Instructions on how to use these scripts can be found here `src/spec2006-tests/README.md`.
+The [Standard Performance Evaluation Corporation](
+https://www.spec.org/benchmarks.html) (SPEC) CPU 2006 benchmarks are designed
+to provide performance measurements that can be used to compare
+compute-intensive workloads on different computer systems. SPEC CPU 2006
+contains 12 different benchmark tests.
-# Resource: SPEC 2017 tests
+`src/spec-2006` provides resources on creating a SPEC 2006 disk image, and
+necessary scripts to run the SPEC 2006 benchmarks within X86 gem5 simulations.
+Please consult the `src/spec-2006/README.md` for more information.
+
+**Please note, due to licensing issues, the SPEC 2006 iso cannot be provided
+as part of this repository.**
+
+# Resource: SPEC 2017
The [Standard Performance Evaluation Corporation](
https://www.spec.org/benchmarks.html) (SPEC) CPU 2017 benchmarks are designed
@@ -414,20 +420,20 @@
The [Princeton Application Repository for Shared-Memory Computers (PARSEC)](
https://parsec.cs.princeton.edu/) is a benchmark suite composed of
multithreaded programs. In `src/parsec` we provide the source to build a disk
-image which may be used, along side configuration files, to run the PARSEC
+image which may be used, alongside configuration files, to run the PARSEC
Benchmark Suite on gem5 architectural simulations. Please consult
`src/parsec/README.md` for build and execution information.
-A pre-build parsec benchmark image, for X86, can be found here:
+A pre-built parsec benchmark image, for X86, can be found here:
<http://dist.gem5.org/images/x86/ubuntu-18-04/parsec>.
# Resource: NAS Parallel Benchmarks (NPB) Tests
The [NAS Parallel Benchmarks] (NPB) are a small set of programs designed to
help evaluate the performance of parallel supercomputers. The set consists of
-five kenels and three pseudo-applications. gem5 resources provides a disk
-image, and scripts allowing for the NPB image to be run within gem5 X86
-simulations. A pre-build npb disk image can be downloaded here:
+five Lunux Kernels and three pseudo-applications. gem5 resources provides a
+disk image, and scripts allowing for the NPB image to be run within gem5 X86
+simulations. A pre-built npb disk image can be downloaded here:
<http://dist.gem5.org/images/x86/ubuntu-18-04/npb>.
The npb resources can be found in `src/npb`. It consists of:
@@ -489,12 +495,12 @@
`src/pthreads`.
* **square**: Consult individual copyright notices of source files in
`src/square`.
-* **spec2006-tests**: SPEC CPU 2006 requires purchase of benchmark suite from
+* **spec 2006**: SPEC CPU 2006 requires purchase of benchmark suite from
[SPEC](https://www.spec.org/cpu2006/) thus, it cannot be freely distributed.
-Consult individual copyright notices of source files in `src/spec2006-tests`.
-* **spec-2017**: SPEC CPU 2017 requires purchase of benchmark suite from
+Consult individual copyright notices of source files in `src/spec-2006`.
+* **spec 2017**: SPEC CPU 2017 requires purchase of benchmark suite from
[SPEC](https://www.spec.org/cpu2017/) thus, it cannot be freely distributed.
-Consult individual copyright notices of source files in `src/spec2017-tests`.
+Consult individual copyright notices of source files in `src/spec-2017`.
* **gapbs**: Consult individual copyright notices of source files in
`src/gapbs`.
* **parsec**: The PARSEC license can be found at
diff --git a/src/boot-exit/README.md b/src/boot-exit/README.md
index d5c2b6c..eefe6dd 100755
--- a/src/boot-exit/README.md
+++ b/src/boot-exit/README.md
@@ -12,7 +12,7 @@
|___ disk-image/
| |___ shared/ # Auxiliary files needed for disk creation
| |___ boot-exit/
- | | |___ boot-exit-image/ # Will be created once the disk is generated
+ | |___ boot-exit-image/ # Will be created once the disk is generated
| | |___ boot-exit # The generated disk image
| |___ boot-exit.json # The Packer script
| |___ exit.sh # Exits the simulated guest upon booting
@@ -45,8 +45,8 @@
```sh
cd disk-image
# if packer (tool to build the disk) is not already installed
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip
-unzip packer_1.4.3_linux_amd64.zip
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip
+unzip packer_1.6.0_linux_amd64.zip
# validate the packer script
./packer validate boot-exit/boot-exit.json
@@ -100,7 +100,7 @@
An example use of this script is the following:
```sh
-build/X86/gem5.opt configs-boot-tests/run_exit.py [path to the Linux kernel] [path to the disk image] kvm classic 4 init
+gem5/build/X86/gem5.opt configs/run_exit.py [path to the Linux kernel] [path to the disk image] kvm classic 4 init
```
## Linux Kernels
diff --git a/src/boot-exit/disk-image/boot-exit/boot-exit.json b/src/boot-exit/disk-image/boot-exit/boot-exit.json
index c82c2e7..1ad08df 100755
--- a/src/boot-exit/disk-image/boot-exit/boot-exit.json
+++ b/src/boot-exit/disk-image/boot-exit/boot-exit.json
@@ -32,8 +32,7 @@
],
"headless": "{{ user `headless` }}",
"http_directory": "shared",
- "iso_checksum": "{{ user `iso_checksum` }}",
- "iso_checksum_type": "{{ user `iso_checksum_type` }}",
+ "iso_checksum": "{{ user `iso_checksum_type` }}:{{ user `iso_checksum` }}",
"iso_urls": [ "{{ user `iso_url` }}" ],
"memory": "{{ user `vm_memory`}}",
"output_directory": "boot-exit/{{ user `image_name` }}-image",
diff --git a/src/gapbs/README.md b/src/gapbs/README.md
index 12a3069..528f7b2 100644
--- a/src/gapbs/README.md
+++ b/src/gapbs/README.md
@@ -16,8 +16,8 @@
```sh
cd disk-image/
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip # (if packer is not already installed)
-unzip packer_1.4.3_linux_amd64.zip # (if packer is not already installed)
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip # (if packer is not already installed)
+unzip packer_1.6.0_linux_amd64.zip # (if packer is not already installed)
./packer validate gapbs/gapbs.json
./packer build gapbs/gapbs.json
```
@@ -48,5 +48,5 @@
Example usage:
```sh
-build/X86/gem5.opt configs/run_gapbs.py --kernel [path to the linux kernel] --disk [path to the disk image] --cpu-type kvm --num_cpus 1 --mem_sys classic --benchmark cc --synthetic 1 --graph 20
+gem5/build/X86/gem5.opt configs/run_gapbs.py [path to the linux kernel] [path to the disk image] kvm 1 classic cc 1 20
```
diff --git a/src/gapbs/disk-image/gapbs/gapbs.json b/src/gapbs/disk-image/gapbs/gapbs.json
index 96c3546..aefa3ef 100644
--- a/src/gapbs/disk-image/gapbs/gapbs.json
+++ b/src/gapbs/disk-image/gapbs/gapbs.json
@@ -42,7 +42,7 @@
[ "-cpu", "host" ],
[ "-display", "none" ]
],
- "qemu_binary": "/usr/local/bin/qemu-system-x86_64",
+ "qemu_binary": "/usr/bin/qemu-system-x86_64",
"shutdown_command": "echo '{{ user `ssh_password` }}'|sudo -S shutdown -P now",
"ssh_password": "{{ user `ssh_password` }}",
"ssh_username": "{{ user `ssh_username` }}",
diff --git a/src/npb/README.md b/src/npb/README.md
index 441e1e6..8babbbb 100755
--- a/src/npb/README.md
+++ b/src/npb/README.md
@@ -31,7 +31,7 @@
|___ disk-image/
| |___ shared/ # Auxiliary files needed for disk creation
| |___ npb/
- | | |___ npb-image/ # Will be created once the disk is generated
+ | |___ npb-image/ # Will be created once the disk is generated
| | |___ npb # The generated disk image
| |___ npb.json # The Packer script to build the disk image
| |___ runscript.sh # Executes a user provided script in simulated guest
@@ -63,8 +63,8 @@
```sh
cd disk-image
# if packer is not already installed
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip
-unzip packer_1.4.3_linux_amd64.zip
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip
+unzip packer_1.6.0_linux_amd64.zip
# validate the packer script
./packer validate npb/npb.json
@@ -102,7 +102,7 @@
An example of how to use these scripts:
```sh
-build/X86/gem5.opt configs-npb-tests/run_npb.py [path to the Linux kernel] [path to the npb disk image] kvm classic bt.A.x 4
+gem5/build/X86/gem5.opt configs/run_npb.py [path to the Linux kernel] [path to the npb disk image] kvm classic bt.A.x 4
```
## Linux Kernel
@@ -114,7 +114,7 @@
cd linux
git checkout v4.19.83
# copy the Linux kernel configuration file for v4.19.83 from boot-tests/linux-configs/
-cp ../../boot-tests/linux-configs/config.4.19.83 .config
+cp ../../boot-exit/linux-configs/config.4.19.83 .config
make -j8
```
The compiled Linux binary will be named as `vmlinux`.
diff --git a/src/npb/disk-image/npb/npb.json b/src/npb/disk-image/npb/npb.json
index 1f8df4c..73e62d6 100755
--- a/src/npb/disk-image/npb/npb.json
+++ b/src/npb/disk-image/npb/npb.json
@@ -32,8 +32,7 @@
],
"headless": "{{ user `headless` }}",
"http_directory": "shared/",
- "iso_checksum": "{{ user `iso_checksum` }}",
- "iso_checksum_type": "{{ user `iso_checksum_type` }}",
+ "iso_checksum": "{{ user `iso_checksum_type` }}:{{ user `iso_checksum` }}",
"iso_urls": [ "{{ user `iso_url` }}" ],
"memory": "{{ user `vm_memory`}}",
"output_directory": "npb/{{ user `image_name` }}-image",
diff --git a/src/parsec/README.md b/src/parsec/README.md
index b3a9e1a..17fed8e 100644
--- a/src/parsec/README.md
+++ b/src/parsec/README.md
@@ -1,4 +1,4 @@
-# PARSEC tests
+# PARSEC
This document includes instructions on how to create an Ubuntu 18.04 disk-image with PARSEC benchmark installed. The disk-image will be compatible with the gem5 simulator.
@@ -46,8 +46,8 @@
```sh
cd disk-image
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip
-unzip packer_1.4.3_linux_amd64.zip
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip
+unzip packer_1.6.0_linux_amd64.zip
```
In order to build the disk-image first the script needs to be validated. Run the following command to validate `disk-image/parsec/parsec.json`.
@@ -83,9 +83,9 @@
Below are the examples of running an experiment with the two configurations.
```sh
-gem5/build/gem5.opt configs/run_parsec.py linux-stable/vmlinux.4.19.83 disk-image/parsec/parsec-image/parsec timing bodytrack simsmall 1
+gem5/build/X86/gem5.opt configs/run_parsec.py linux-stable/vmlinux-4.19.83 disk-image/parsec/parsec-image/parsec timing bodytrack simsmall 1
-gem5/build/gem5.opt configs-mesi-two-level/run_parsec_mesi_two_level.py linux-stable/vmlinux.4.19.83 disk-image/parsec/parsec-image/parsec timing raytrace simsmall 2
+gem5/build/X86_MESI_Two_Level/gem5.opt configs-mesi-two-level/run_parsec_mesi_two_level.py linux-stable/vmlinux-4.19.83 disk-image/parsec/parsec-image/parsec timing raytrace simsmall 2
```
## Working Status
diff --git a/src/parsec/disk-image/parsec/parsec-install.sh b/src/parsec/disk-image/parsec/parsec-install.sh
index 75a6a05..c28961d 100644
--- a/src/parsec/disk-image/parsec/parsec-install.sh
+++ b/src/parsec/disk-image/parsec/parsec-install.sh
@@ -16,6 +16,8 @@
# Installing packages needed to build PARSEC
sudo apt install -y build-essential
+sudo apt install -y autotools-dev
+sudo apt install -y automake
sudo apt install -y m4
sudo apt install -y git
sudo apt install -y python
diff --git a/src/parsec/disk-image/parsec/parsec.json b/src/parsec/disk-image/parsec/parsec.json
index 1d3b0e6..a4270d5 100644
--- a/src/parsec/disk-image/parsec/parsec.json
+++ b/src/parsec/disk-image/parsec/parsec.json
@@ -32,8 +32,7 @@
],
"headless": "{{ user `headless` }}",
"http_directory": "shared/",
- "iso_checksum": "{{ user `iso_checksum` }}",
- "iso_checksum_type": "{{ user `iso_checksum_type` }}",
+ "iso_checksum": "{{ user `iso_checksum_type` }}:{{ user `iso_checksum` }}",
"iso_urls": [ "{{ user `iso_url` }}" ],
"memory": "{{ user `vm_memory`}}",
"output_directory": "parsec/{{ user `image_name` }}-image",
diff --git a/src/parsec/disk-image/parsec/post-installation.sh b/src/parsec/disk-image/parsec/post-installation.sh
index 958a8a3..b23246a 100644
--- a/src/parsec/disk-image/parsec/post-installation.sh
+++ b/src/parsec/disk-image/parsec/post-installation.sh
@@ -11,4 +11,6 @@
# copy and run outside (host) script after booting
cat /home/gem5/runscript.sh >> /root/.bashrc
+chmod -R gem5:gem5 /home/gem5/parsec-benchmark/
+
echo 'Post Installation Done'
diff --git a/src/spec-2006/README.md b/src/spec-2006/README.md
index 3122f90..50052ce 100644
--- a/src/spec-2006/README.md
+++ b/src/spec-2006/README.md
@@ -22,10 +22,10 @@
|___ disk-image/
| |___ shared/
| |___ spec-2006/
- | | |___ spec-2006-image/
- | | | |___ spec2006 # the disk image will be generated here
- | | |___ spec-2006.json # the Packer script
- | |___ CPU2006v1.0.1.iso # SPEC 2006 ISO (add here)
+ | |___ spec-2006-image/
+ | | |___ spec-2006 # the disk image will be generated here
+ | |___ spec-2006.json # the Packer script
+ | |___ CPU2006v1.0.1.iso # SPEC 2006 ISO (add here)
|
|___ configs
| |___ system
@@ -52,13 +52,13 @@
```sh
cd disk-image
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip #(download the packer binary)
-unzip packer_1.4.3_linux_amd64.zip
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip #(download the packer binary)
+unzip packer_1.6.0_linux_amd64.zip
./packer validate spec-2006/spec-2006.json #validate the Packer script
./packer build spec-2006/spec-2006.json
```
-The path to the disk image is `spec-2006/spec-2006-image/spec2006`.
+The path to the disk image is `spec-2006/spec-2006-image/spec-2006`.
Please refer to [this tutorial](https://gem5art.readthedocs.io/en/latest/tutorials/spec2006-tutorial.html#preparing-scripts-to-modify-the-disk-image)
for more information about the scripts used in this document.
@@ -109,7 +109,7 @@
Assume the compiled Linux kernel is available in the assumed root folder, the
following is an example of running a SPEC 2006 workload in full system mode,
`
-gem5/build/X86/gem5.opt configs/run_spec.py -z vmlinux-4.19.83 disk-image/spec2006/spec2006-image/spec2006 atomic 403.gcc test
+gem5/build/X86/gem5.opt --outdir [path to the gem5 output directory] configs/run_spec.py -z vmlinux-4.19.83 disk-image/spec-2006/spec-2006-image/spec-2006 atomic 403.gcc test
`
## Working Status
diff --git a/src/spec-2006/disk-image/spec-2006/spec-2006.json b/src/spec-2006/disk-image/spec-2006/spec-2006.json
index 1edfc3d..1e2fb7b 100644
--- a/src/spec-2006/disk-image/spec-2006/spec-2006.json
+++ b/src/spec-2006/disk-image/spec-2006/spec-2006.json
@@ -32,8 +32,7 @@
],
"headless": "{{ user `headless` }}",
"http_directory": "shared",
- "iso_checksum": "{{ user `iso_checksum` }}",
- "iso_checksum_type": "{{ user `iso_checksum_type` }}",
+ "iso_checksum": "{{ user `iso_checksum_type` }}:{{ user `iso_checksum` }}",
"iso_urls": [ "{{ user `iso_url` }}" ],
"memory": "{{ user `vm_memory`}}",
"output_directory": "spec-2006/{{ user `image_name` }}-image",
diff --git a/src/spec-2017/README.md b/src/spec-2017/README.md
index 32d53bf..d03d2d7 100644
--- a/src/spec-2017/README.md
+++ b/src/spec-2017/README.md
@@ -22,10 +22,10 @@
|___ disk-image/
| |___ shared/
| |___ spec-2017/
- | | |___ spec-2017-image/
- | | | |___ spec-2017 # the disk image will be generated here
- | | |___ spec-2017.json # the Packer script
- | |___ cpu2017-1.1.0.iso # SPEC 2017 ISO (add here)
+ | |___ spec-2017-image/
+ | | |___ spec-2017 # the disk image will be generated here
+ | |___ spec-2017.json # the Packer script
+ | |___ cpu2017-1.1.0.iso # SPEC 2017 ISO (add here)
|
|___ configs
| |___ system/
@@ -53,8 +53,8 @@
```sh
cd disk-image
-wget https://releases.hashicorp.com/packer/1.4.3/packer_1.4.3_linux_amd64.zip # download the packer binary
-unzip packer_1.4.3_linux_amd64.zip
+wget https://releases.hashicorp.com/packer/1.6.0/packer_1.6.0_linux_amd64.zip # download the packer binary
+unzip packer_1.6.0_linux_amd64.zip
./packer validate spec-2017/spec-2017.json # validate the Packer script
./packer build spec-2017/spec-2017.json
```
@@ -110,7 +110,7 @@
Assume the compiled Linux kernel is available in the assumed root folder, the
following is an example of running a SPEC 2017 workload in full system mode,
`
-gem5/build/X86/gem5.opt configs/run_spec.py -z vmlinux-4.19.83 disk-image/spec-2017/spec-2017-image/spec-2017 atomic 403.gcc test
+gem5/build/X86/gem5.opt --outdir [path to the gem5 output directory] configs/run_spec.py -z vmlinux-4.19.83 disk-image/spec-2017/spec-2017-image/spec-2017 atomic 403.gcc test
`
## Working Status
diff --git a/src/spec-2017/disk-image/spec-2017/spec-2017.json b/src/spec-2017/disk-image/spec-2017/spec-2017.json
index b750f14..007dea5 100644
--- a/src/spec-2017/disk-image/spec-2017/spec-2017.json
+++ b/src/spec-2017/disk-image/spec-2017/spec-2017.json
@@ -32,8 +32,7 @@
],
"headless": "{{ user `headless` }}",
"http_directory": "shared",
- "iso_checksum": "{{ user `iso_checksum` }}",
- "iso_checksum_type": "{{ user `iso_checksum_type` }}",
+ "iso_checksum": "{{ user `iso_checksum_type` }}:{{ user `iso_checksum` }}",
"iso_urls": [ "{{ user `iso_url` }}" ],
"memory": "{{ user `vm_memory`}}",
"output_directory": "spec-2017/{{ user `image_name` }}-image",
diff --git a/src/square/.gitignore b/src/square/.gitignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/src/square/.gitignore
@@ -0,0 +1 @@
+bin
diff --git a/src/square/Makefile b/src/square/Makefile
index 5d7f226..4f4eb82 100644
--- a/src/square/Makefile
+++ b/src/square/Makefile
@@ -3,7 +3,9 @@
BIN_DIR?= ./bin
-gfx8-apu: square.cpp $(BIN_DIR)
+gfx8-apu: $(BIN_DIR)/square.o
+
+$(BIN_DIR)/square.o: square.cpp $(BIN_DIR)
$(HIPCC) --amdgpu-target=gfx801 $(CXXFLAGS) square.cpp -o $(BIN_DIR)/square.o
$(BIN_DIR):