diff --git a/SConstruct b/SConstruct index 60493ae2c5..d7cd56424e 100755 --- a/SConstruct +++ b/SConstruct @@ -363,6 +363,13 @@ if main['GCC'] or main['CLANG']: 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). + main.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.", diff --git a/ext/testlib/configuration.py b/ext/testlib/configuration.py index d0fca7451a..95800deb46 100644 --- a/ext/testlib/configuration.py +++ b/ext/testlib/configuration.py @@ -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/v21-2' + defaults.resource_url = 'http://dist.gem5.org/dist/develop' defaults.resource_path = os.path.abspath(os.path.join(defaults.base_dir, 'tests', 'gem5', diff --git a/src/Doxyfile b/src/Doxyfile index 8ed8839f9a..f29acbbde4 100644 --- a/src/Doxyfile +++ b/src/Doxyfile @@ -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 = v21.2.0.0 +PROJECT_NUMBER = DEVELOP-FOR-V22-0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/src/base/version.cc b/src/base/version.cc index 0da32c2494..56c982fa28 100644 --- a/src/base/version.cc +++ b/src/base/version.cc @@ -32,6 +32,6 @@ namespace gem5 /** * @ingroup api_base_utils */ -const char *gem5Version = "21.2.0.0"; +const char *gem5Version = "[DEVELOP-FOR-v22.0"; } // namespace gem5 diff --git a/src/python/gem5/resources/downloader.py b/src/python/gem5/resources/downloader.py index 2cb73baef4..5afceeb2dc 100644 --- a/src/python/gem5/resources/downloader.py +++ b/src/python/gem5/resources/downloader.py @@ -45,7 +45,7 @@ def _resources_json_version_required() -> str: """ Specifies the version of resources.json to obtain. """ - return "21.2" + return "develop" def _get_resources_json_uri() -> str: uri = ( diff --git a/tests/compiler-tests.sh b/tests/compiler-tests.sh index 43092dadec..15ffb1673b 100755 --- a/tests/compiler-tests.sh +++ b/tests/compiler-tests.sh @@ -99,7 +99,7 @@ for compiler in ${images[@]}; do # targets for this test build_indices=(${build_permutation[@]:0:$builds_count}) - repo_name="${base_url}/${compiler}:v21-2" + repo_name="${base_url}/${compiler}:latest" # Grab compiler image docker pull $repo_name >/dev/null diff --git a/tests/jenkins/presubmit.sh b/tests/jenkins/presubmit.sh index d15df01193..a5e901331b 100755 --- a/tests/jenkins/presubmit.sh +++ b/tests/jenkins/presubmit.sh @@ -37,8 +37,8 @@ set -e -DOCKER_IMAGE_ALL_DEP=gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 -DOCKER_IMAGE_CLANG_COMPILE=gcr.io/gem5-test/clang-version-9:v21-2 +DOCKER_IMAGE_ALL_DEP=gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest +DOCKER_IMAGE_CLANG_COMPILE=gcr.io/gem5-test/clang-version-9:latest PRESUBMIT_STAGE2=tests/jenkins/presubmit-stage2.sh GEM5ART_TESTS=tests/jenkins/gem5art-tests.sh diff --git a/tests/nightly.sh b/tests/nightly.sh index 190c33d1f3..e421d978e7 100755 --- a/tests/nightly.sh +++ b/tests/nightly.sh @@ -66,7 +66,7 @@ build_target () { # compilation: https://gem5.atlassian.net/browse/GEM5-753 docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ "${gem5_root}" --rm \ - gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 \ + gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest \ bash -c "scons build/${isa}/gem5.opt -j${compile_threads} \ || (rm -rf build && scons build/${isa}/gem5.opt -j${compile_threads})" } @@ -76,12 +76,12 @@ unit_test () { docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ "${gem5_root}" --rm \ - gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 \ + gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest \ scons build/NULL/unittests.${build} -j${compile_threads} } # Ensure we have the latest docker images. -docker pull gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 +docker pull gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest # Try to build the ISA targets. build_target NULL @@ -99,18 +99,18 @@ unit_test debug # Run the gem5 long tests. docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ "${gem5_root}"/tests --rm \ - gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 \ + gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest \ ./main.py run --length long -j${compile_threads} -t${run_threads} -vv # For the GPU tests we compile and run the GPU ISA inside a gcn-gpu container. -docker pull gcr.io/gem5-test/gcn-gpu:v21-2 +docker pull gcr.io/gem5-test/gcn-gpu:latest docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" gcr.io/gem5-test/gcn-gpu:v21-2 bash -c \ + "${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest bash -c \ "scons build/${gpu_isa}/gem5.opt -j${compile_threads} \ || (rm -rf build && scons build/${gpu_isa}/gem5.opt -j${compile_threads})" # get square -wget -qN http://dist.gem5.org/dist/v21-2/test-progs/square/square +wget -qN http://dist.gem5.org/dist/develop/test-progs/square/square mkdir -p tests/testing-results @@ -118,18 +118,18 @@ mkdir -p tests/testing-results # Thus, we always want to run this in the nightly regressions to make sure # basic GPU functionality is working. docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" gcr.io/gem5-test/gcn-gpu:v21-2 build/${gpu_isa}/gem5.opt \ + "${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \ configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c square # get HeteroSync -wget -qN http://dist.gem5.org/dist/v21-2/test-progs/heterosync/gcn3/allSyncPrims-1kernel +wget -qN http://dist.gem5.org/dist/develop/test-progs/heterosync/gcn3/allSyncPrims-1kernel # run HeteroSync sleepMutex -- 16 WGs (4 per CU in default config), each doing # 10 Ld/St per thread and 4 iterations of the critical section is a reasonable # moderate contention case for the default 4 CU GPU config and help ensure GPU # atomics are tested. docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" gcr.io/gem5-test/gcn-gpu:v21-2 build/${gpu_isa}/gem5.opt \ + "${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \ configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c \ allSyncPrims-1kernel --options="sleepMutex 10 16 4" @@ -139,7 +139,7 @@ docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ # moderate contention case for the default 4 CU GPU config and help ensure GPU # atomics are tested. docker run --rm -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" gcr.io/gem5-test/gcn-gpu:v21-2 build/${gpu_isa}/gem5.opt \ + "${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest build/${gpu_isa}/gem5.opt \ configs/example/apu_se.py --reg-alloc-policy=dynamic -n3 -c \ allSyncPrims-1kernel --options="lfTreeBarrUniq 10 16 4" @@ -149,7 +149,7 @@ build_and_run_SST () { variant=$2 docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" --rm gcr.io/gem5-test/sst-env:v21-2 \ + "${gem5_root}" --rm gcr.io/gem5-test/sst-env:latest \ bash -c "\ scons build/${isa}/libgem5_${variant}.so -j${compile_threads} --without-tcmalloc; \ cd ext/sst; \ diff --git a/tests/weekly.sh b/tests/weekly.sh index b6eda61932..8acb5d79e8 100755 --- a/tests/weekly.sh +++ b/tests/weekly.sh @@ -56,7 +56,7 @@ fi # Run the gem5 very-long tests. docker run -u $UID:$GID --volume "${gem5_root}":"${gem5_root}" -w \ "${gem5_root}"/tests --rm \ - gcr.io/gem5-test/ubuntu-20.04_all-dependencies:v21-2 \ + gcr.io/gem5-test/ubuntu-20.04_all-dependencies:latest \ ./main.py run --length very-long -j${threads} -t${threads} -vv mkdir -p tests/testing-results @@ -64,7 +64,7 @@ mkdir -p tests/testing-results # GPU weekly tests start here # before pulling gem5 resources, make sure it doesn't exist already docker run --rm --volume "${gem5_root}":"${gem5_root}" -w \ - "${gem5_root}" gcr.io/gem5-test/gcn-gpu:v21-2 bash -c \ + "${gem5_root}" gcr.io/gem5-test/gcn-gpu:latest bash -c \ "rm -rf ${gem5_root}/gem5-resources" # delete Pannotia datasets and output files in case a failed regression run left # them around @@ -91,13 +91,17 @@ git clone https://gem5.googlesource.com/public/gem5-resources \ # To ensure the v21.2 version of these tests continues to run as future # versions are released, we run this check. If there's been another release, # we checkout the correct version of gem5 resources. +# +# Note: We disable this code on the develop branch and just checkout develop. + cd "${gem5_root}/gem5-resources" -version_tag=$(git tag | grep "v21.2") - -if [[ ${version_tag} != "" ]]; then - git checkout "${version_tag}" -fi - +git checkout develop +#version_tag=$(git tag | grep "v21.2") +# +#if [[ ${version_tag} != "" ]]; then +# git checkout "${version_tag}" +#fi +# cd "${gem5_root}" # For the GPU tests we compile and run the GPU ISA inside a gcn-gpu container. @@ -105,7 +109,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:v21-2 +docker pull gcr.io/gem5-test/gcn-gpu:latest 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 \ @@ -225,7 +229,7 @@ docker run --rm -v ${PWD}:${PWD} \ "export GEM5_PATH=${gem5_root} ; make gem5-fusion" # # get input dataset for BC test -wget http://dist.gem5.org/dist/v21-2/datasets/pannotia/bc/1k_128k.gr +wget http://dist.gem5.org/dist/develop/datasets/pannotia/bc/1k_128k.gr # run BC docker run --rm -v ${gem5_root}:${gem5_root} -w ${gem5_root} -u $UID:$GID \ hacc-test-weekly ${gem5_root}/build/${gpu_isa}/gem5.opt \ @@ -297,7 +301,7 @@ docker run --rm -v ${gem5_root}:${gem5_root} -w \ "export GEM5_PATH=${gem5_root} ; make gem5-fusion" # get PageRank input dataset -wget http://dist.gem5.org/dist/v21-2/datasets/pannotia/pagerank/coAuthorsDBLP.graph +wget http://dist.gem5.org/dist/develop/datasets/pannotia/pagerank/coAuthorsDBLP.graph # run PageRank (Default) docker run --rm -v ${gem5_root}:${gem5_root} -w ${gem5_root} -u $UID:$GID \ hacc-test-weekly ${gem5_root}/build/${gpu_isa}/gem5.opt \ diff --git a/util/dockerfiles/gcn-gpu/Dockerfile b/util/dockerfiles/gcn-gpu/Dockerfile index 50d34bd6c6..8dd1b1b139 100644 --- a/util/dockerfiles/gcn-gpu/Dockerfile +++ b/util/dockerfiles/gcn-gpu/Dockerfile @@ -70,7 +70,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/v21-2/rocm_patches/ROCclr.patch | git apply -v +RUN wget -q -O - dist.gem5.org/dist/develop/rocm_patches/ROCclr.patch | git apply -v WORKDIR /ROCclr/build RUN cmake -DOPENCL_DIR="/ROCm-OpenCL-Runtime" \