Adding installer for Ubuntu 24.04 (#14)

* Add installers for ubuntu 24.04

* Formatting change to the ubuntu-focal and ubuntu-jammy workflows

* Initial Ubuntu 24.04 workflow - just build test

[ROCm/rocprofiler-systems commit: 398ea62629]
This commit is contained in:
David Galiffi
2024-12-11 19:36:04 -05:00
کامیت شده توسط GitHub
والد abcb5dc0e3
کامیت b73bd13a86
9فایلهای تغییر یافته به همراه163 افزوده شده و 10 حذف شده
@@ -33,6 +33,8 @@ jobs:
version: "20.04"
- distro: "ubuntu"
version: "22.04"
- distro: "ubuntu"
version: "24.04"
- distro: "opensuse"
version: "15.5"
- distro: "opensuse"
@@ -104,6 +106,16 @@ jobs:
- os-distro: "ubuntu"
os-version: "22.04"
rocm-version: "6.3"
# ubuntu 24.04
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "0.0"
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "6.2"
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "6.3"
# opensuse 15.5
- os-distro: "opensuse"
os-version: "15.5"
@@ -53,6 +53,16 @@ jobs:
- os-distro: "ubuntu"
os-version: "22.04"
rocm-version: "6.3"
# ubuntu 24.04
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "0.0"
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "6.2"
- os-distro: "ubuntu"
os-version: "24.04"
rocm-version: "6.3"
# opensuse 15.5
- os-distro: "opensuse"
os-version: "15.5"
@@ -428,7 +428,12 @@ jobs:
max_attempts: 5
command: |
sudo apt-get update &&
sudo apt-get install -y autoconf bison build-essential clang environment-modules gettext libomp-dev libtool m4 python3-pip texinfo ${{ matrix.compiler }} ${{ matrix.deps }} &&
sudo apt-get install -y \
autoconf autotools-dev bash-completion bison build-essential \
bzip2 cmake curl environment-modules flex gettext git-core gnupg2 \
gzip libiberty-dev libomp-dev libpapi-dev libpfm4-dev libtool locales \
lsb-release m4 python3-pip texinfo unzip wget zip zlib1g-dev \
${{ matrix.deps }} ${{ matrix.compiler }} &&
if [ "${{ matrix.mpi }}" = "mpich" ]; then sudo apt-get install -y libmpich-dev mpich; fi &&
if [ "${{ matrix.mpi }}" = "openmpi" ]; then sudo apt-get install -y libopenmpi-dev openmpi-bin libfabric-dev; fi &&
wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.0/linux-amd64/trace_processor_shell -P /opt/trace_processor/bin &&
@@ -111,7 +111,9 @@ jobs:
apt-get update &&
apt-get install -y software-properties-common &&
apt-get upgrade -y &&
apt-get install -y autoconf bison build-essential clang environment-modules gettext libfabric-dev libiberty-dev libomp-dev libopenmpi-dev libtool m4 openmpi-bin python3-pip texinfo ${{ matrix.compiler }} &&
apt-get install -y autoconf bison build-essential clang environment-modules \
gettext libfabric-dev libiberty-dev libomp-dev libopenmpi-dev libtool m4 \
openmpi-bin python3-pip texinfo ${{ matrix.compiler }} &&
python3 -m pip install --upgrade pip &&
python3 -m pip install --upgrade numpy perfetto dataclasses &&
python3 -m pip install 'cmake==3.18.4' &&
@@ -0,0 +1,112 @@
name: Ubuntu 24.04 (GCC, Python, ROCm)
run-name: ubuntu-noble
on:
push:
branches: [ amd-mainline, amd-staging, release/** ]
paths-ignore:
- '*.md'
- 'docs/**'
- 'source/docs/**'
- 'source/python/gui/**'
- '.github/workflows/docs.yml'
- '.github/workflows/cpack.yml'
- '.github/workflows/containers.yml'
- '.github/workflows/formatting.yml'
- '.github/workflows/weekly-mainline-sync.yml'
- 'docker/**'
pull_request:
branches: [ amd-mainline, amd-staging, release/** ]
paths-ignore:
- '*.md'
- 'docs/**'
- 'source/docs/**'
- 'source/python/gui/**'
- '.github/workflows/docs.yml'
- '.github/workflows/cpack.yml'
- '.github/workflows/containers.yml'
- '.github/workflows/formatting.yml'
- '.github/workflows/weekly-mainline-sync.yml'
- 'docker/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
ROCPROFSYS_CI: ON
ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp"
jobs:
ubuntu-noble:
runs-on: ubuntu-20.04
container:
image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler: ['g++']
build-type: ['Release', 'Debug']
strip: ['OFF']
build-dyninst: ['OFF']
rocm-version: ['0.0', '6.3']
env:
ROCPROFSYS_CI: 'ON'
steps:
- uses: actions/checkout@v4
- name: Install Packages
timeout-minutes: 25
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 30
timeout_minutes: 25
max_attempts: 5
command: |
apt-get -y update && apt-get upgrade -y &&
apt-get install -y \
libiberty-dev clang libomp-dev libopenmpi-dev libfabric-dev \
openmpi-bin ${{ matrix.compiler }} &&
for i in 8 9 10 11 12; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
- name: Install ROCm Packages
if: ${{ matrix.rocm-version > 0 }}
timeout-minutes: 30
shell: bash
run: |
ROCM_VERSION=${{ matrix.rocm-version }}
ROCM_MAJOR=$(echo ${ROCM_VERSION} | sed 's/\./ /g' | awk '{print $1}')
ROCM_MINOR=$(echo ${ROCM_VERSION} | sed 's/\./ /g' | awk '{print $2}')
ROCM_VERSN=$(( (${ROCM_MAJOR}*10000)+(${ROCM_MINOR}*100) ))
echo "ROCM_MAJOR=${ROCM_MAJOR} ROCM_MINOR=${ROCM_MINOR} ROCM_VERSN=${ROCM_VERSN}"
wget -q https://repo.radeon.com/amdgpu-install/${{ matrix.rocm-version }}/ubuntu/noble/amdgpu-install_${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1_all.deb
apt-get install -y ./amdgpu-install_${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1_all.deb
apt-get update
apt-get install -y rocm-dev
- name: Configure
timeout-minutes: 30
shell: bash
run: |
git config --global --add safe.directory ${PWD} &&
cmake --version
USE_ROCM=OFF
if [ ${{ matrix.rocm-version }} != "0.0" ]; then USE_ROCM=ON; fi
cmake -B build \
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') \
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} \
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems \
-DROCPROFSYS_BUILD_TESTING=ON \
-DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl" \
-DROCPROFSYS_USE_HIP=${USE_ROCM} \
-DRCOPROFSYS_USE_PYTHON=ON \
-DROCPROFSYS_STRIP_LIBRARIES=${{ matrix.strip }} \
-DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs \
-DROCPROFSYS_PYTHON_ENVS="py3.8;py3.9;py3.10;py3.11;py3.12"
- name: Build
timeout-minutes: 115
run: cmake --build build --parallel 2
@@ -25,10 +25,15 @@ ENV PATH ${HOME}/.local/bin:${PATH}
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get install -y apt-utils autoconf autotools-dev bash-completion bison \
build-essential cmake curl git-core gnupg2 libnuma1 libopenmpi-dev \
build-essential cmake curl flex gettext git-core gnupg2 libnuma1 libopenmpi-dev \
libpapi-dev libpfm4-dev librpm-dev libtool libudev1 lsb-release m4 \
python3-pip rpm texinfo wget && \
python3 -m pip install 'cmake==3.18.4'
OS_VERSION=$(cat /etc/os-release | grep VERSION_ID | sed 's/=/ /'1 | awk '{print $NF}' | sed 's/"//g') && \
if [ "${OS_VERSION}" == "24.04" ]; then \
python3 -m pip install --break-system-packages 'cmake==3.18.4'; \
else \
python3 -m pip install 'cmake==3.18.4'; \
fi
RUN if [ "${ROCM_VERSION}" != "0.0" ]; then \
wget https://repo.radeon.com/amdgpu-install/${ROCM_VERSION}/ubuntu/${ROCM_REPO_DIST}/${AMDGPU_DEB} && \
@@ -26,11 +26,15 @@ ENV CMAKE_PREFIX_PATH /usr/local:${CMAKE_PREFIX_PATH}
RUN apt-get update && \
apt-get dist-upgrade -y && \
apt-get install -y autoconf autotools-dev bash-completion bison build-essential \
bzip2 cmake curl environment-modules git-core gnupg2 gzip libiberty-dev \
libpapi-dev libpfm4-dev libtool locales lsb-release m4 python3-pip texinfo \
unzip wget zip zlib1g-dev && \
bzip2 cmake curl environment-modules flex gettext git-core gnupg2 gzip \
libiberty-dev libpapi-dev libpfm4-dev libtool locales lsb-release m4 \
python3-pip texinfo unzip wget zip zlib1g-dev && \
apt-get autoclean && \
python3 -m pip install 'cmake==3.18.4'
if [ "${OS_VERSION}" == "24.04" ]; then \
python3 -m pip install --break-system-packages 'cmake==3.18.4' \
else \
python3 -m pip install 'cmake==3.18.4'; \
fi
COPY ./dyninst-source /tmp/dyninst
@@ -176,6 +176,9 @@ do
case "${ROCM_VERSION}" in
6.*)
case "${VERSION}" in
24.04)
ROCM_REPO_DIST="noble"
;;
22.04)
ROCM_REPO_DIST="jammy"
;;
@@ -63,11 +63,11 @@ auto&
get_sampling_on_child_threads_history(int64_t _idx = utility::get_thread_index())
{
static auto _v = utility::get_filled_array<ROCPROFSYS_MAX_THREADS>(
[]() { return utility::get_reserved_vector<bool>(32); });
[]() { return utility::get_reserved_vector<bool>(64); });
if(_idx >= ROCPROFSYS_MAX_THREADS)
{
static thread_local auto _tl_v = utility::get_reserved_vector<bool>(32);
static thread_local auto _tl_v = utility::get_reserved_vector<bool>(128);
return _tl_v;
}