Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding workflows for Ubuntu 24.04 #14

Draft
wants to merge 11 commits into
base: amd-staging
Choose a base branch
from
9 changes: 9 additions & 0 deletions .github/workflows/containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -98,6 +100,13 @@ jobs:
- os-distro: "ubuntu"
os-version: "22.04"
rocm-version: "6.2"
# 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"
# opensuse 15.5
- os-distro: "opensuse"
os-version: "15.5"
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/cpack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ jobs:
- os-distro: "ubuntu"
os-version: "22.04"
rocm-version: "6.2"
# 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"
# opensuse 15.5
- os-distro: "opensuse"
os-version: "15.5"
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/ubuntu-focal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,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 &&
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/ubuntu-jammy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,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' &&
Expand Down
174 changes: 174 additions & 0 deletions .github/workflows/ubuntu-noble.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
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'
- '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'
- 'docker/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
ROCPROFSYS_CI: ON
ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp"

jobs:
ubuntu-noble-external:
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']
build-dyninst: ['OFF']
rocm-version: ['0.0', '6.2']

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 }} &&
wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v46.0/linux-amd64/trace_processor_shell -P /opt/trace_processor/bin &&
chmod +x /opt/trace_processor/bin/trace_processor_shell &&
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, Build, and Test
timeout-minutes: 115
shell: bash
run:
git config --global --add safe.directory ${PWD} &&
cmake --version &&
TAG="${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-24.04-${{ matrix.compiler }}-python-mpip" &&
USE_HIP=OFF &&
if [ ${{ matrix.rocm-version }} != "0.0" ]; then USE_HIP=ON; TAG="${TAG}-rocm-${{ matrix.rocm-version }}"; fi &&
python3 ./scripts/run-ci.py -B build
--name ${TAG}
--build-jobs 2
--site GitHub
--
-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_USE_MPI=OFF
-DROCPROFSYS_USE_HIP=${USE_HIP}
-DROCPROFSYS_USE_OMPT=OFF
-DROCPROFSYS_USE_PYTHON=ON
-DROCPROFSYS_USE_MPI_HEADERS=ON
-DROCPROFSYS_CI_MPI_RUN_AS_ROOT=ON
-DROCPROFSYS_MAX_THREADS=64
-DROCPROFSYS_INSTALL_PERFETTO_TOOLS=OFF
-DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs
-DROCPROFSYS_PYTHON_ENVS="py3.8;py3.9;py3.10;py3.11;py3.12"
-DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl"
-DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }}
--
-LE "transpose|rccl"

- name: Install
timeout-minutes: 10
run:
cmake --build build --target install --parallel 2

- name: CPack and Install
run: |
cd build
cpack -G STGZ
mkdir -p /opt/rocprofiler-systems
./rocprofiler-systems-*.sh --prefix=/opt/rocprofiler-systems --exclude-subdir --skip-license

- name: Test Install
timeout-minutes: 10
shell: bash
run: |
set -v
source /opt/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh
./scripts/test-install.sh --test-rocprof-sys-{instrument,avail,sample,rewrite,runtime,python}=1

- name: Test User API
timeout-minutes: 10
run: |
set -v
./scripts/test-find-package.sh --install-dir /opt/rocprofiler-systems

- name: CTest Artifacts
if: failure()
continue-on-error: True
uses: actions/upload-artifact@v4
with:
name: ctest-${{ github.job }}-${{ strategy.job-index }}-log
path: |
build/*.log

- name: Data Artifacts
if: failure()
continue-on-error: True
uses: actions/upload-artifact@v4
with:
name: data-${{ github.job }}-${{ strategy.job-index }}-files
path: |
build/rocprofsys-tests-config/*.cfg
build/rocprofsys-tests-output/**/*.txt
build/rocprofsys-tests-output/**/*-instr*.json

- name: Kill Perfetto
if: success() || failure()
continue-on-error: True
run: |
set +e
RUNNING_PROCS=$(pgrep trace_processor_shell)
if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi
4 changes: 2 additions & 2 deletions docker/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ 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 git-core flex gettext 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'
python3 -m pip --break-system-packages 'cmake==3.18.4'

RUN if [ "${ROCM_VERSION}" != "0.0" ]; then \
wget https://repo.radeon.com/amdgpu-install/${ROCM_VERSION}/ubuntu/${ROCM_REPO_DIST}/${AMDGPU_DEB} && \
Expand Down
4 changes: 2 additions & 2 deletions docker/Dockerfile.ubuntu.ci
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ 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 \
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'
python3 -m pip --break-system-packages 'cmake==3.18.4'

COPY ./dyninst-source /tmp/dyninst

Expand Down
3 changes: 3 additions & 0 deletions docker/build-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
;;
Expand Down
4 changes: 2 additions & 2 deletions source/lib/rocprof-sys/library/runtime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
Loading