diff --git a/docker/Dockerfile b/docker/Dockerfile index 593e8ca7d6..07e335293b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -16,15 +16,16 @@ SHELL [ "/bin/bash", "-c" ] ARG EXTRA_PACKAGES="" ARG ROCM_REPO_VERSION="debian" +ARG ROCM_REPO_DIST="ubuntu" ENV PATH ${HOME}/.local/bin:${PATH} RUN apt-get update && \ apt-get dist-upgrade -y && \ - apt-get install -y build-essential cmake libnuma-dev wget gnupg2 m4 bash-completion git-core autoconf libtool autotools-dev python3-pip lsb-release libpapi-dev libpfm4-dev && \ + apt-get install -y build-essential cmake libnuma-dev wget gnupg2 m4 bash-completion git-core autoconf libtool autotools-dev python3-pip lsb-release libpapi-dev libpfm4-dev libudev-dev && \ python3 -m pip install 'cmake==3.18.4' && \ wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && \ - echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${ROCM_REPO_VERSION}/ ubuntu main" | tee /etc/apt/sources.list.d/rocm.list && \ + echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${ROCM_REPO_VERSION}/ ${ROCM_REPO_DIST} main" | tee /etc/apt/sources.list.d/rocm.list && \ apt-get update && \ apt-get dist-upgrade -y && \ apt-get install -y rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev ${EXTRA_PACKAGES} diff --git a/docker/build-docker-release.sh b/docker/build-docker-release.sh index d5c611cc6a..0eea44c7f2 100755 --- a/docker/build-docker-release.sh +++ b/docker/build-docker-release.sh @@ -12,18 +12,22 @@ build-release() CONTAINER=$1 ROCM_VERSION=$2 CODE_VERSION=$3 - docker run -it --rm -v ${PWD}:/home/omnitrace --env ROCM_VERSION=${ROCM_VERSION} --env VERSION=${CODE_VERSION} ${CONTAINER} /home/omnitrace/scripts/build-release.sh + MPI=$4 + docker run -it --rm -v ${PWD}:/home/omnitrace --env ROCM_VERSION=${ROCM_VERSION} --env VERSION=${CODE_VERSION} --env MPI=${MPI} ${CONTAINER} /home/omnitrace/scripts/build-release.sh } : ${DISTRO:=ubuntu} : ${VERSIONS:=20.04 18.04} +: ${ROCM_VERSIONS:=5.0 4.5 4.3} +: ${MPI:=0} CODE_VERSION=$(cat VERSION) for VERSION in ${VERSIONS} do TAG=${DISTRO}-${VERSION} - build-release jrmadsen/omnitrace-${TAG}-rocm-4.5 4.5.0 ${CODE_VERSION} - build-release jrmadsen/omnitrace-${TAG}-rocm-4.3 4.3.0 ${CODE_VERSION} - build-release jrmadsen/omnitrace-${TAG}-rocm-4.3.1 4.3.1 ${CODE_VERSION} + for ROCM_VERSION in ${ROCM_VERSIONS} + do + build-release jrmadsen/omnitrace-${TAG}-rocm-${ROCM_VERSION} ${ROCM_VERSION} ${CODE_VERSION} ${MPI} + done done diff --git a/docker/build-docker.sh b/docker/build-docker.sh index 236b260a3d..7d7ba46091 100755 --- a/docker/build-docker.sh +++ b/docker/build-docker.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -: ${ROCM_VERSIONS:="4.5 4.3 4.3.1"} +: ${ROCM_VERSIONS:="5.0 4.5 4.3"} : ${DISTRO:=ubuntu} : ${VERSIONS:=20.04 18.04} @@ -12,6 +12,10 @@ for VERSION in ${VERSIONS} do for i in ${ROCM_VERSIONS} do - docker build . --tag jrmadsen/omnitrace-${DISTRO}-${VERSION}-rocm-${i} --build-arg DISTRO=${DISTRO} --build-arg VERSION=${VERSION} --build-arg ROCM_REPO_VERSION=${i} + ROCM_REPO_VERSION=${i} + if [ "${i}" = "5.0" ]; then ROCM_REPO_VERSION=debian; fi + if [ "${i}" = "4.1" ]; then ROCM_REPO_DIST="xenial"; fi + if [ "${i}" = "4.0" ]; then ROCM_REPO_DIST="xenial"; fi + docker build . --tag jrmadsen/omnitrace-${DISTRO}-${VERSION}-rocm-${i} --build-arg DISTRO=${DISTRO} --build-arg VERSION=${VERSION} --build-arg ROCM_REPO_VERSION=${ROCM_REPO_VERSION} --build-arg ROCM_REPO_DIST=${ROCM_REPO_DIST} done done diff --git a/scripts/build-release.sh b/scripts/build-release.sh index 67eab888dc..8803b7345a 100755 --- a/scripts/build-release.sh +++ b/scripts/build-release.sh @@ -31,7 +31,7 @@ if [ ! -f build-release/${PACKAGE_BASE_TAG}.sh ]; then cp build-release/${DISTRO}-core/omnitrace-${VERSION}-Linux.sh build-release/${PACKAGE_BASE_TAG}.sh fi -apt-get install -y libopenmpi-dev openmpi-bin +apt-get install -y libopenmpi-dev openmpi-bin libudev-dev STANDARD_ARGS="${STANDARD_ARGS} -DOMNITRACE_USE_HIP=ON -DOMNITRACE_USE_MPI_HEADERS=ON -DDYNINST_USE_OpenMP=ON" @@ -49,6 +49,8 @@ if [ ! -f build-release/${PACKAGE_BASE_TAG}-ROCm-${ROCM_VERSION}-PAPI.sh ]; then cp build-release/${DISTRO}-rocm-${ROCM_VERSION}-papi/omnitrace-${VERSION}-Linux.sh build-release/${PACKAGE_BASE_TAG}-ROCm-${ROCM_VERSION}-PAPI.sh fi +if [ "${MPI}" -lt 1 ]; then exit 0; fi + STANDARD_ARGS="${STANDARD_ARGS} -DOMNITRACE_USE_MPI=ON" if [ ! -f build-release/${PACKAGE_BASE_TAG}-ROCm-${ROCM_VERSION}-PAPI-OpenMPI.sh ]; then