misc: Merge branch stable into develop branch

This ensures both branches are in-sync and have not diverged.

Change-Id: Ib487d8596037017b9ec03d7e8a76229373c153db
This commit is contained in:
Bobby R. Bruce
2022-12-30 20:06:49 +00:00
13 changed files with 190 additions and 57 deletions

View File

@@ -1,3 +1,136 @@
# Version 22.1.0.0
This release has 500 contributions from 48 unique contributors and marks our second major release of 2022.
This release incorporates several new features, improvements, and bug fixes for the computer architecture reserach community.
See below for more details!
## New features and improvements
- The gem5 binary can now be compiled to include multiple ISA targets.
A compilation of gem5 which includes all gem5 ISAs can be created using: `scons build/ALL/gem5.opt`.
This will use the Ruby `MESI_Two_Level` cache coherence protocol by default, to use other protocols: `scons build/ALL/gem5.opt PROTOCOL=<other protocol>`.
The classic cache system may continue to be used regardless as to which Ruby cache coherence protocol is compiled.
- The `m5` Python module now includes functions to set exit events are particular simululation ticks:
- *setMaxTick(tick)* : Used to to specify the maximum simulation tick.
- *getMaxTick()* : Used to obtain the maximum simulation tick value.
- *getTicksUntilMax()*: Used to get the number of ticks remaining until the maximum tick is reached.
- *scheduleTickExitFromCurrent(tick)* : Used to schedule an exit exit event a specified number of ticks in the future.
- *scheduleTickExitAbsolute(tick)* : Used to schedule an exit event as a specified tick.
- We now include the `RiscvMatched` board as part of the gem5 stdlib.
This board is modeled after the [HiFive Unmatched board](https://www.sifive.com/boards/hifive-unmatched) and may be used to emulate its behavior.
See "configs/example/gem5_library/riscv-matched-fs.py" and "configs/example/gem5_library/riscv-matched-hello.py" for examples using this board.
- An API for [SimPoints](https://doi.org/10.1145/885651.781076) has been added.
SimPoints can substantially improve gem5 Simulation time by only simulating representative parts of a simulation then extrapolating statistical data accordingly.
Examples of using SimPoints with gem5 can be found in "configs/example/gem5_library/checkpoints/simpoints-se-checkpoint.py" and "configs/example/gem5_library/checkpoints/simpoints-se-restore.py".
- "Workloads" have been introduced to gem5.
Workloads have been incorporated into the gem5 Standard library.
They can be used specify the software to be run on a simulated system that come complete with input parameters and any other dependencies necessary to run a simuation on the target hardware.
At the level of the gem5 configuration script a user may specify a workload via a board's `set_workload` function.
For example, `set_workload(Workload("x86-ubuntu-18.04-boot"))` sets the board to use the "x86-ubuntu-18.04-boot" workload.
This workload specifies a boot consisting of the Linux 5.4.49 kernel then booting an Ubunutu 18.04 disk image, to exit upon booting.
Workloads are agnostic to underlying gem5 design and, via the gem5-resources infrastructure, will automatically retrieve all necessary kernels, disk-images, etc., necessary to execute.
Examples of using gem5 Workloads can be found in "configs/example/gem5_library/x86-ubuntu-ruby.py" and "configs/example/gem5_library/riscv-ubuntu-run.py".
- To aid gem5 developers, we have incorporated [pre-commit](https://pre-commit.com) checks into gem5.
These checks automatically enforce the gem5 style guide on Python files and a subset of other requirements (such as line length) on altered code prior to a `git commit`.
Users may install pre-commit by running `./util/pre-commit-install.sh`.
Passing these checks is a requirement to submit code to gem5 so installation is strongly advised.
- A multiprocessing module has been added.
This allows for multiple simulations to be run from a single gem5 execution via a single gem5 configuration script.
Example of usage found [in this commit message](https://gem5-review.googlesource.com/c/public/gem5/+/63432).
**Note: This feature is still in development.
While functional, it'll be subject to subtantial changes in future releases of gem5**.
- The stdlib's `ArmBoard` now supports Ruby caches.
- Due to numerious fixes and improvements, Ubuntu 22.04 can be booted as a gem5 workload, both in FS and SE mode.
- Substantial improvements have been made to gem5's GDB capabilities.
- The `HBM2Stack` has been added to the gem5 stdlib as a memory component.
- The `MinorCPU` has been fully incorporated into the gem5 Standard Library.
- We now allow for full-system simulation of GPU applications.
The introduction of GPU FS mode allows for the same use-cases as SE mode but reduces the requirement of specific host environments or usage of a Docker container.
The GPU FS mode also has improved simulated speed by functionally simulating memory copies, and provides an easier update path for gem5 developers.
An X86 host and KVM are required to run GPU FS mode.
## API (user facing) changes
- The default CPU Vendor String has been updated to `HygonGenuine`.
This is due to newer versions of GLIBC being more strict about checking current system's supported features.
The previous value, `M5 Simulator`, is not recognized as a valid vendor string and therefore GLIBC returns an error.
- [The stdlib's `_connect_things` funciton call has been moved from the `AbstractBoard`'s constructor to be run as board pre-instantiation process](https://gem5-review.googlesource.com/c/public/gem5/+/65051).
This is to overcome instances where stdlib components (memory, processor, and cache hierarhcy) require Board information known only after its construction.
**This change breaks cases where a user utilizes the stdlib `AbstractBoard` but does not use the stdlib `Simulator` module. This can be fixed by adding the `_pre_instantiate` function before `m5.instantiate`**.
An exception has been added which explains this fix, if this error occurs.
- The setting of checkpoints has been moved from the stdlib's "set_workload" functions to the `Simulator` module.
Setting of checkpoints via the stdlib's "set_workload" functions is now deprecated and will be removed in future releases of gem5.
- The gem5 namespace `Trace` has been renamed `trace` to conform to the gem5 style guide.
- Due to the allowing of multiple ISAs per gem5 build, the `TARGET_ISA` variable has been replaced with `USE_$(ISA)` variables.
For example, if a build contains both the X86 and ARM ISAs the `USE_X86` and `USE_ARM` variables will be set.
## Big Fixes
- Several compounding bugs were causing bugs with floating point operations within gem5 simulations.
These have been fixed.
- Certain emulated syscalls were behaving incorrectly when using RISC-V due to incorrect `open(2)` flag values.
These values have been fixed.
- The GIVv3 List register mapping has been fixed.
- Access permissions for GICv3 cpu registers have been fixed.
- In previous releases of gem5 the `sim_quantum` value was set for all cores when using the Standard Library.
This caused issues when setting exit events at a particular tick as it resulted in the exit being off by `sim_quantum`.
As such, the `sim_quantum` value is only when using KVM cores.
- PCI ranges in `VExpress_GEM5_Foundation` fixed.
- The `SwitchableProcessor` processor has been fixed to allow switching to a KVM core.
Previously the `SwitchableProcessor` only allowed a user to switch from a KVM core to a non-KVM core.
- The Standard Library has been fixed to permit multicore simulations in SE mode.
- [A bug was fixed in the rcr X86 instruction](https://gem5.atlassian.net/browse/GEM5-1265).
## Build related changes
- gem5 can now be compiled with Scons 4 build system.
- gem5 can now be compiled with Clang version 14 (minimum Clang version 6).
- gem5 can now be compiled with GCC Version 12 (minimum GCC version 7).
## Other minor updates
- The gem5 stdlib examples in "configs/example/gem5_library" have been updated to, where appropriate, use the stdlib's Simulator module.
These example configurations can be used for reference as to how `Simulator` module may be utilized in gem5.
- Granulated SGPR computation has been added for gfx9 gpu-compute.
- The stdlib statistics have been improved:
- A `get_simstats` function has been added to access statistics from the `Simulator` module.
- Statistics can be printed: `print(simstats.board.core.some_integer)`.
- GDB ports are now specified for each workload, as opposed to per-simulation run.
- The `m5` utility has been expanded to include "workbegin" and "workend" annotations.
This can be added with `m5 workbegin` and `m5 workend`.
- A `PrivateL1SharedL2CacheHierarchy` has been added to the Standard Library.
- A `GEM5_USE_PROXY` environment variable has been added.
This allows users to specify a socks5 proxy server to use when obtaining gem5 resources and the resources.json file.
It uses the format `<host>:<port>`.
- The fastmodel support has been improved to function with Linux Kernel 5.x.
- The `set_se_binary_workload` function now allows for the passing of input parameters to a binary workload.
- A functional CHI cache hierarchy has been added to the gem5 Standard Library: "src/python/gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py".
- The RISC-V K extension has been added.
It includes the following instructions:
- Zbkx: xperm8, xperm4
- Zknd: aes64ds, aes64dsm, aes64im, aes64ks1i, aes64ks2
- Zkne: aes64es, aes64esm, aes64ks1i, aes64ks2
- Zknh: sha256sig0, sha256sig1, sha256sum0, sha256sum1, sha512sig0, sha512sig1, sha512sum0, sha512sum1
- Zksed: sm4ed, sm4ks
- Zksh: sm3p0, sm3p1
# Version 22.0.0.2
**[HOTFIX]** This hotfix contains a set of critical fixes to be applied to gem5 v22.0.
This hotfix:
- Fixes the ARM booting of Linux kernels making use of FEAT_PAuth.
- Removes incorrect `requires` functions in AbstractProcessor and AbstractGeneratorCore.
These `requires` were causing errors when running generators with any ISA other than NULL.
- Fixes the standard library's `set_se_binary_workload` function to exit on Exit Events (work items) by default.
- Connects a previously unconnected PCI port in the example SST RISC-V config to the membus.
- Updates the SST-gem5 README with the correct download links.
- Adds a `getAddrRanges` function to the `HBMCtrl`.
This ensures the XBar connected to the controller can see the address ranges covered by both pseudo channels.
- Fixes test_download_resources.py so the correct parameter is passed to the download test script.
# Version 22.0.0.1
**[HOTFIX]** Fixes relative import in "src/python/gem5/components/processors/simple_core.py".

View File

@@ -420,14 +420,6 @@ for variant_path in variant_paths:
conf.CheckLinkFlag('-Wl,--threads')
conf.CheckLinkFlag(
'-Wl,--thread-count=%d' % GetOption('num_jobs'))
# Treat warnings as errors but white list some warnings that we
# want to allow (e.g., deprecation warnings).
env.Append(CCFLAGS=['-Werror',
'-Wno-error=deprecated-declarations',
'-Wno-error=deprecated',
])
else:
error('\n'.join((
"Don't know what compiler options to use for your compiler.",

View File

@@ -62,7 +62,7 @@ See `INSTALL.md`.
Downloading the built bootloader containing a Linux Kernel and a workload,
```sh
wget http://dist.gem5.org/dist/v22-0/misc/riscv/bbl-busybox-boot-exit
wget http://dist.gem5.org/dist/v22-1/misc/riscv/bbl-busybox-boot-exit
```
Running the simulation
@@ -87,7 +87,7 @@ extract them under the $M5_PATH directory (make sure M5_PATH points to a valid
directory):
```sh
wget http://dist.gem5.org/dist/v22-0/arm/aarch-sst-20211207.tar.bz2
wget http://dist.gem5.org/dist/v22-1/arm/aarch-sst-20211207.tar.bz2
tar -xf aarch-sst-20211207.tar.bz2
# copying bootloaders

View File

@@ -213,7 +213,7 @@ def define_defaults(defaults):
os.pardir,
os.pardir))
defaults.result_path = os.path.join(os.getcwd(), 'testing-results')
defaults.resource_url = 'http://dist.gem5.org/dist/develop'
defaults.resource_url = 'http://dist.gem5.org/dist/v22-1'
defaults.resource_path = os.path.abspath(os.path.join(defaults.base_dir,
'tests',
'gem5',

View File

@@ -31,7 +31,7 @@ PROJECT_NAME = gem5
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = DEVELOP-FOR-22.1
PROJECT_NUMBER = v22.1.0.0
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.

View File

@@ -32,6 +32,6 @@ namespace gem5
/**
* @ingroup api_base_utils
*/
const char *gem5Version = "[DEVELOP-FOR-22.1]";
const char *gem5Version = "22.1.0.0";
} // namespace gem5

View File

@@ -55,7 +55,7 @@ def _resources_json_version_required() -> str:
"""
Specifies the version of resources.json to obtain.
"""
return "develop"
return "22.1"
def _get_resources_json_uri() -> str:

View File

@@ -114,7 +114,7 @@ for compiler in ${images[@]}; do
# targets for this test
build_indices=(${build_permutation[@]:0:$builds_count})
repo_name="${base_url}/${compiler}:latest"
repo_name="${base_url}/${compiler}:v22-1"
# Grab compiler image
docker pull $repo_name >/dev/null

View File

@@ -37,8 +37,8 @@
set -e
DOCKER_IMAGE_ALL_DEP=gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
DOCKER_IMAGE_CLANG_COMPILE=gcr.io/gem5-test/clang-version-14:latest
DOCKER_IMAGE_ALL_DEP=gcr.io/gem5-test/ubuntu-22.04_all-dependencies:v22-1
DOCKER_IMAGE_CLANG_COMPILE=gcr.io/gem5-test/clang-version-14:v22-1
PRESUBMIT_STAGE2=tests/jenkins/presubmit-stage2.sh
GEM5ART_TESTS=tests/jenkins/gem5art-tests.sh

View File

@@ -35,6 +35,10 @@ gem5_root="${dir}/.."
# The per-container Docker memory limit.
docker_mem_limit="18g"
# The docker tag to use (varies between develop, and versions on the staging
# branch)
tag="v22-1"
# The first argument is the number of threads to be used for compilation. If no
# argument is given we default to one.
compile_threads=1
@@ -66,13 +70,13 @@ unit_test () {
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" --rm \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:${tag} \
scons build/ALL/unittests.${build} -j${compile_threads} \
--ignore-style
}
# Ensure we have the latest docker images.
docker pull gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
docker pull gcr.io/gem5-test/ubuntu-22.04_all-dependencies:${tag}
# Run the unit tests.
unit_test opt
@@ -81,7 +85,7 @@ unit_test debug
# Run the gem5 long tests.
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}"/tests --memory="${docker_mem_limit}" --rm \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:${tag} \
./main.py run --length long -j${compile_threads} -t${run_threads} -vv
# Unfortunately, due docker being unable run KVM, we do so separately.
@@ -101,10 +105,10 @@ cd "${gem5_root}/tests"
cd "${gem5_root}"
# For the GPU tests we compile and run the GPU ISA inside a gcn-gpu container.
docker pull gcr.io/gem5-test/gcn-gpu:latest
docker pull gcr.io/gem5-test/gcn-gpu:${tag}
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" \
gcr.io/gem5-test/gcn-gpu:latest bash -c \
gcr.io/gem5-test/gcn-gpu:${tag} bash -c \
"scons build/${gpu_isa}/gem5.opt -j${compile_threads} --ignore-style \
|| (rm -rf build && scons build/${gpu_isa}/gem5.opt \
-j${compile_threads} --ignore-style)"
@@ -119,7 +123,7 @@ mkdir -p tests/testing-results
# basic GPU functionality is working.
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" \
gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \
gcr.io/gem5-test/gcn-gpu:${tag} build/${gpu_isa}/gem5.opt \
configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c square
# get HeteroSync
@@ -131,7 +135,7 @@ wget -qN http://dist.gem5.org/dist/develop/test-progs/heterosync/gcn3/allSyncPri
# atomics are tested.
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" \
gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \
gcr.io/gem5-test/gcn-gpu:${tag} build/${gpu_isa}/gem5.opt \
configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c \
allSyncPrims-1kernel --options="sleepMutex 10 16 4"
@@ -142,7 +146,7 @@ docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
# atomics are tested.
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" \
gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \
gcr.io/gem5-test/gcn-gpu:${tag} build/${gpu_isa}/gem5.opt \
configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c \
allSyncPrims-1kernel --options="lfTreeBarrUniq 10 16 4"
@@ -153,7 +157,7 @@ build_and_run_SST () {
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --rm --memory="${docker_mem_limit}" \
gcr.io/gem5-test/sst-env:latest bash -c "\
gcr.io/gem5-test/sst-env:${tag} bash -c "\
scons build/${isa}/libgem5_${variant}.so -j${compile_threads} \
--without-tcmalloc --ignore-style; \
cd ext/sst; \
@@ -168,7 +172,7 @@ build_and_run_systemc () {
rm -rf "${gem5_root}/build/ARM"
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" --rm \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest bash -c "\
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:${tag} bash -c "\
scons -j${compile_threads} --ignore-style build/ARM/gem5.opt; \
scons --with-cxx-config --without-python --without-tcmalloc USE_SYSTEMC=0 \
-j${compile_threads} build/ARM/libgem5_opt.so \
@@ -176,7 +180,7 @@ scons --with-cxx-config --without-python --without-tcmalloc USE_SYSTEMC=0 \
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" --rm \
gcr.io/gem5-test/systemc-env:latest bash -c "\
gcr.io/gem5-test/systemc-env:${tag} bash -c "\
cd util/systemc/gem5_within_systemc; \
make -j${compile_threads}; \
../../../build/ARM/gem5.opt ../../../configs/example/se.py -c \

View File

@@ -35,6 +35,10 @@ gem5_root="${dir}/.."
# The per-container Docker memory limit.
docker_mem_limit="24g"
# The docker tag to use (varies between develop, and versions on the staging
# branch)
tag="v22-1"
# We assume the first two arguments are the number of threads followed by the
# GPU ISA to test. These default to 1 and GCN3_X86 is no argument is given.
threads=1
@@ -59,7 +63,7 @@ fi
# Run the gem5 very-long tests.
docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}"/tests --memory="${docker_mem_limit}" --rm \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest \
gcr.io/gem5-test/ubuntu-22.04_all-dependencies:${tag} \
./main.py run --length very-long -j${threads} -t${threads} -vv
mkdir -p tests/testing-results
@@ -68,7 +72,7 @@ mkdir -p tests/testing-results
# before pulling gem5 resources, make sure it doesn't exist already
docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \
"${gem5_root}" --memory="${docker_mem_limit}" \
gcr.io/gem5-test/gcn-gpu:latest bash -c \
gcr.io/gem5-test/gcn-gpu:${tag} bash -c \
"rm -rf ${gem5_root}/gem5-resources"
# delete Pannotia datasets and output files in case a failed regression run left
# them around
@@ -113,7 +117,7 @@ cd "${gem5_root}"
# avoid needing to set all of these, we instead build a docker for it, which
# has all these variables pre-set in its Dockerfile
# To avoid compiling gem5 multiple times, all GPU benchmarks will use this
docker pull gcr.io/gem5-test/gcn-gpu:latest
docker pull gcr.io/gem5-test/gcn-gpu:${tag}
docker build -t hacc-test-weekly ${gem5_root}/gem5-resources/src/gpu/halo-finder
docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \

View File

@@ -5,154 +5,154 @@ services:
build:
context: gcn-gpu
dockerfile: Dockerfile
image: gcr.io/gem5-test/gcn-gpu
image: gcr.io/gem5-test/gcn-gpu:v22-1
gpu-fs:
build:
context: gpu-fs
dockerfile: Dockerfile
image: gcr.io/gem5-test/gpu-fs
image: gcr.io/gem5-test/gpu-fs:v22-1
sst:
build:
context: sst-11.1.0
dockerfile: Dockerfile
image: gcr.io/gem5-test/sst-env
image: gcr.io/gem5-test/sst-env:v22-1
systemc:
build:
context: systemc-2.3.3
dockerfile: Dockerfile
image: gcr.io/gem5-test/systemc-env
image: gcr.io/gem5-test/systemc-env:v22-1
ubuntu-18.04_all-dependencies:
build:
context: ubuntu-18.04_all-dependencies
dockerfile: Dockerfile
image: gcr.io/gem5-test/ubuntu-18.04_all-dependencies
image: gcr.io/gem5-test/ubuntu-18.04_all-dependencies:v22-1
ubuntu-20.04_all-dependencies:
build:
context: ubuntu-20.04_all-dependencies
dockerfile: Dockerfile
image: gcr.io/gem5-test/ubuntu-20.04_all-dependencies
image: gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v22-1
ubuntu-22.04_all-dependencies:
build:
context: ubuntu-22.04_all-dependencies
dockerfile: Dockerfile
image: gcr.io/gem5-test/ubuntu-22.04_all-dependencies
image: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:v22-1
ubuntu-22.04_min-dependencies:
build:
context: ubuntu-22.04_min-dependencies
dockerfile: Dockerfile
image: gcr.io/gem5-test/ubuntu-22.04_min-dependencies
image: gcr.io/gem5-test/ubuntu-22.04_min-dependencies:v22-1
gcc-7:
build:
context: ubuntu-18.04_gcc-version
dockerfile: Dockerfile
args:
- version=7
image: gcr.io/gem5-test/gcc-version-7
image: gcr.io/gem5-test/gcc-version-7:v22-1
gcc-8:
build:
context: ubuntu-18.04_gcc-version
dockerfile: Dockerfile
args:
- version=8
image: gcr.io/gem5-test/gcc-version-8
image: gcr.io/gem5-test/gcc-version-8:v22-1
gcc-9:
build:
context: ubuntu-20.04_gcc-version
dockerfile: Dockerfile
args:
- version=9
image: gcr.io/gem5-test/gcc-version-9
image: gcr.io/gem5-test/gcc-version-9:v22-1
gcc-10:
build:
context: ubuntu-20.04_gcc-version
dockerfile: Dockerfile
args:
- version=10
image: gcr.io/gem5-test/gcc-version-10
image: gcr.io/gem5-test/gcc-version-10:v22-1
gcc-11:
build:
context: ubuntu-22.04_gcc-version
dockerfile: Dockerfile
args:
- version=11
image: gcr.io/gem5-test/gcc-version-11
image: gcr.io/gem5-test/gcc-version-11:v22-1
gcc-12:
build:
context: ubuntu-22.04_gcc-version
dockerfile: Dockerfile
args:
- version=12
image: gcr.io/gem5-test/gcc-version-12
image: gcr.io/gem5-test/gcc-version-12:v22-1
clang-6:
build:
context: ubuntu-18.04_clang-version
dockerfile: Dockerfile
args:
- version=6.0
image: gcr.io/gem5-test/clang-version-6.0
image: gcr.io/gem5-test/clang-version-6.0:v22-1
clang-7:
build:
context: ubuntu-18.04_clang-version
dockerfile: Dockerfile
args:
- version=7
image: gcr.io/gem5-test/clang-version-7
image: gcr.io/gem5-test/clang-version-7:v22-1
clang-8:
build:
context: ubuntu-18.04_clang-version
dockerfile: Dockerfile
args:
- version=8
image: gcr.io/gem5-test/clang-version-8
image: gcr.io/gem5-test/clang-version-8:v22-1
clang-9:
build:
context: ubuntu-18.04_clang-version
dockerfile: Dockerfile
args:
- version=9
image: gcr.io/gem5-test/clang-version-9
image: gcr.io/gem5-test/clang-version-9:v22-1
clang-10:
build:
context: ubuntu-20.04_clang-version
dockerfile: Dockerfile
args:
- version=10
image: gcr.io/gem5-test/clang-version-10
image: gcr.io/gem5-test/clang-version-10:v22-1
clang-11:
build:
context: ubuntu-20.04_clang-version
dockerfile: Dockerfile
args:
- version=11
image: gcr.io/gem5-test/clang-version-11
image: gcr.io/gem5-test/clang-version-11:v22-1
clang-12:
build:
context: ubuntu-20.04_clang-version
dockerfile: Dockerfile
args:
- version=12
image: gcr.io/gem5-test/clang-version-12
image: gcr.io/gem5-test/clang-version-12:v22-1
clang-13:
build:
context: ubuntu-22.04_clang-version
dockerfile: Dockerfile
args:
- version=13
image: gcr.io/gem5-test/clang-version-13
image: gcr.io/gem5-test/clang-version-13:v22-1
clang-14:
build:
context: ubuntu-22.04_clang-version
dockerfile: Dockerfile
args:
- version=14
image: gcr.io/gem5-test/clang-version-14
image: gcr.io/gem5-test/clang-version-14:v22-1
llvm-gnu-cross-compiler-riscv64:
build:
context: llvm-gnu-cross-compiler-riscv64
dockerfile: Dockerfile
image: gcr.io/gem5-test/llvm-gnu-cross-compiler-riscv64
image: gcr.io/gem5-test/llvm-gnu-cross-compiler-riscv64:v22-1
gem5-all-min-dependencies:
build:
context: gem5-all-min-dependencies
dockerfile: Dockerfile
image: gcr.io/gem5-test/gem5-all-min-dependencies
image: gcr.io/gem5-test/gem5-all-min-dependencies:v22-1

View File

@@ -69,7 +69,7 @@ RUN git clone -b rocm-4.0.0 \
WORKDIR /ROCclr
# The patch allows us to avoid building blit kernels on-the-fly in gem5
RUN wget -q -O - dist.gem5.org/dist/develop/rocm_patches/ROCclr.patch | git apply -v
RUN wget -q -O - dist.gem5.org/dist/v22-1/rocm_patches/ROCclr.patch | git apply -v
WORKDIR /ROCclr/build
RUN cmake -DOPENCL_DIR="/ROCm-OpenCL-Runtime" \