Files
rocm-systems/.github/workflows/ubuntu-jammy.yml
T
ajanicijamd 96d7b8f0ab Update Perfetto and fix tests (#378)
Fix for "SWDEV-479652" - Perfetto-based tests are failing.

Updated version of perfetto submodule to v46.0.
Modified Omnitrace code that uses Perfetto, so it can compile.
Modified the testing code, so it can run the version of trace_processor_shell provided (v46.0).

---------

Signed-off-by: Aleksandar Janicijevic <Aleksandar.Janicijevic@amd.com>
Co-authored-by: David Galiffi <David.Galiffi@amd.com>
2024-09-13 13:43:26 -04:00

250 lines
8.6 KiB
YAML

name: Ubuntu 22.04 (GCC, Python, ROCm)
run-name: ubuntu-jammy
on:
push:
branches: [ main, develop, 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: [ main, develop, 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:
OMNITRACE_CI: ON
OMNITRACE_TMPDIR: "%env{PWD}%/testing-tmp"
jobs:
ubuntu-jammy-external:
runs-on: ubuntu-20.04
container:
image: jrmadsen/omnitrace:ci-base-ubuntu-22.04
strategy:
fail-fast: false
matrix:
compiler: ['g++-11', 'g++-12']
hip: ['OFF']
mpi: ['OFF']
ompt: ['OFF']
papi: ['OFF']
python: ['ON']
lto: ['OFF']
strip: ['OFF']
hidden: ['ON', 'OFF']
build-type: ['Release']
mpi-headers: ['ON', 'OFF']
static-libgcc: ['OFF']
static-libstdcxx: ['OFF']
build-dyninst: ['OFF']
rocm-version: ['0.0']
include:
- compiler: 'g++'
hip: 'ON'
mpi: 'OFF'
ompt: 'OFF'
papi: 'OFF'
python: 'ON'
lto: 'OFF'
strip: 'OFF'
hidden: 'ON'
build-type: 'Release'
mpi-headers: 'OFF'
static-libgcc: 'OFF'
static-libstdcxx: 'OFF'
build-dyninst: 'OFF'
rocm-version: '5.3'
- compiler: 'g++'
hip: 'ON'
mpi: 'OFF'
ompt: 'OFF'
papi: 'OFF'
python: 'ON'
lto: 'OFF'
strip: 'OFF'
hidden: 'ON'
build-type: 'Release'
mpi-headers: 'OFF'
static-libgcc: 'OFF'
static-libstdcxx: 'OFF'
build-dyninst: 'OFF'
rocm-version: 'latest'
env:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMNITRACE_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 update &&
apt-get install -y software-properties-common &&
apt-get upgrade -y &&
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev libopenmpi-dev libfabric-dev openmpi-bin environment-modules ${{ 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 &&
python3 -m pip install --upgrade pip &&
python3 -m pip install numpy perfetto dataclasses &&
python3 -m pip install 'cmake==3.21.4' &&
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
- name: Install ROCm Packages
timeout-minutes: 25
if: ${{ matrix.rocm-version != '0.0' }}
uses: nick-fields/retry@v3
with:
retry_wait_seconds: 30
timeout_minutes: 25
max_attempts: 5
shell: bash
command: |
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add -
echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{ matrix.rocm-version }}/ jammy main" | tee /etc/apt/sources.list.d/rocm.list
apt-get update
ROCM_VERSION=$(apt-cache search rocm-dev[0-9] | awk '{print $1}' | sed 's/rocm-dev//g')
apt-get install -y {rocm-dev,hip-dev,roctracer-dev,rocprofiler-dev,rocm-smi-lib,rocminfo}${ROCM_VERSION}
echo "/opt/rocm/bin" >> $GITHUB_PATH
echo "ROCM_PATH=/opt/rocm" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
/opt/rocm/bin/hipcc -O3 -c ./examples/transpose/transpose.cpp -o /tmp/transpose.o
- name: Test Environment Modules
timeout-minutes: 15
shell: bash
run: |
set -v
source /usr/share/modules/init/$(basename ${SHELL})
module avail
- name: Configure Env
run: |
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV
- name: Configure, Build, and Test
timeout-minutes: 115
shell: bash
run:
git config --global --add safe.directory ${PWD} &&
cmake --version &&
TAG="" &&
append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } &&
append-tagname ${{ matrix.hip }} rocm-${{ matrix.rocm-version }} &&
append-tagname ${{ matrix.mpi }} mpi &&
append-tagname ${{ matrix.ompt }} ompt &&
append-tagname ${{ matrix.papi }} papi &&
append-tagname ${{ matrix.python }} python &&
append-tagname ${{ matrix.mpi-headers }} mpip &&
append-tagname ${{ matrix.build-dyninst }} internal-dyninst &&
append-tagname ${{ matrix.lto }} lto &&
append-tagname ${{ matrix.strip }} strip &&
append-tagname ${{ matrix.hidden }} hidden-viz &&
append-tagname ${{ matrix.static-libgcc }} libgcc &&
append-tagname ${{ matrix.static-libstdcxx }} libstdcxx &&
python3 ./scripts/run-ci.py -B build
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-jammy-${{ matrix.compiler }}${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/omnitrace-dev
-DOMNITRACE_BUILD_TESTING=ON
-DOMNITRACE_USE_MPI=${{ matrix.mpi }}
-DOMNITRACE_USE_HIP=${{ matrix.hip }}
-DOMNITRACE_USE_OMPT=${{ matrix.ompt }}
-DOMNITRACE_USE_PAPI=${{ matrix.papi }}
-DOMNITRACE_USE_PYTHON=${{ matrix.python }}
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }}
-DOMNITRACE_BUILD_LTO=${{ matrix.lto }}
-DOMNITRACE_BUILD_DYNINST=${{ matrix.build-dyninst }}
-DOMNITRACE_BUILD_HIDDEN_VISIBILITY=${{ matrix.hidden }}
-DOMNITRACE_BUILD_STATIC_LIBGCC=${{ matrix.static-libgcc }}
-DOMNITRACE_BUILD_STATIC_LIBSTDCXX=${{ matrix.static-libstdcxx }}
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs
-DOMNITRACE_PYTHON_ENVS="py3.7;py3.8;py3.9;py3.10;py3.11"
-DOMNITRACE_STRIP_LIBRARIES=${{ matrix.strip }}
-DOMNITRACE_MAX_THREADS=64
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
-DUSE_CLANG_OMP=OFF
- 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/omnitrace
./omnitrace-*.sh --prefix=/opt/omnitrace --exclude-subdir --skip-license
- name: Test Install with Modulefile
timeout-minutes: 15
shell: bash
run: |
set -v
source /usr/share/modules/init/$(basename ${SHELL})
module use /opt/omnitrace/share/modulefiles
module avail
module load omnitrace
./scripts/test-install.sh --test-omnitrace-{instrument,avail,sample,python,rewrite,runtime}=1
- name: Test User API
timeout-minutes: 10
run: |
set -v
./scripts/test-find-package.sh --install-dir /opt/omnitrace
- 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/omnitrace-tests-config/*.cfg
build/omnitrace-tests-output/**/*.txt
build/omnitrace-tests-output/**/*-instr*.json