218f8bcbea
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>
[ROCm/rocprofiler-systems commit: 96d7b8f0ab]
176 Zeilen
6.1 KiB
YAML
176 Zeilen
6.1 KiB
YAML
name: RedHat Linux (GCC, Python, ROCm)
|
|
run-name: redhat
|
|
|
|
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:
|
|
rhel:
|
|
runs-on: ubuntu-20.04
|
|
container:
|
|
image: jrmadsen/omnitrace:ci-base-rhel-${{ matrix.os-release }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: ['g++']
|
|
os-release: [ '8.7', '9.0', '9.1' ]
|
|
rocm-version: [ '0.0', '5.3', '5.4' ]
|
|
build-type: ['Release']
|
|
include:
|
|
- compiler: 'g++'
|
|
os-release: '9.1'
|
|
rocm-version: '5.5'
|
|
build-type: 'Release'
|
|
- compiler: 'g++'
|
|
os-release: '9.1'
|
|
rocm-version: '5.6'
|
|
build-type: 'Release'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Configure Env
|
|
shell: bash
|
|
run:
|
|
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
|
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
|
env
|
|
|
|
- name: Install Packages
|
|
shell: bash
|
|
run: |
|
|
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
|
|
if: ${{ matrix.rocm-version > 0 }}
|
|
timeout-minutes: 30
|
|
shell: bash
|
|
run: |
|
|
OS_VERSION_MAJOR=$(cat /etc/os-release | grep 'VERSION_ID' | sed 's/=/ /1' | awk '{print $NF}' | sed 's/"//g' | sed 's/\./ /g' | awk '{print $1}')
|
|
RPM_TAG=".el${OS_VERSION_MAJOR}"
|
|
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) ))
|
|
if [ "${OS_VERSION_MAJOR}" -eq 8 ]; then PERL_REPO=powertools; else PERL_REPO=crb; fi && \
|
|
dnf -y --enablerepo=${PERL_REPO} install perl-File-BaseDir
|
|
yum install -y https://repo.radeon.com/amdgpu-install/${{ matrix.rocm-version }}/rhel/${{ matrix.os-release }}/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1${RPM_TAG}.noarch.rpm
|
|
yum install -y rocm-dev rocm-smi-lib roctracer-dev rocprofiler-dev libpciaccess
|
|
|
|
- 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 }}-rhel-${{ matrix.os-release }}-${{ 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/omnitrace
|
|
-DOMNITRACE_BUILD_TESTING=ON
|
|
-DOMNITRACE_USE_MPI=OFF
|
|
-DOMNITRACE_USE_HIP=${USE_HIP}
|
|
-DOMNITRACE_USE_OMPT=OFF
|
|
-DOMNITRACE_USE_PYTHON=ON
|
|
-DOMNITRACE_USE_MPI_HEADERS=ON
|
|
-DOMNITRACE_CI_MPI_RUN_AS_ROOT=ON
|
|
-DOMNITRACE_MAX_THREADS=64
|
|
-DOMNITRACE_INSTALL_PERFETTO_TOOLS=OFF
|
|
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs
|
|
-DOMNITRACE_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11"
|
|
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|
|
--
|
|
-LE "transpose|rccl"
|
|
|
|
- name: Install
|
|
timeout-minutes: 10
|
|
run:
|
|
cmake --build build --target install --parallel 2
|
|
|
|
- name: Test Install
|
|
timeout-minutes: 10
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source /opt/omnitrace/share/omnitrace/setup-env.sh
|
|
./scripts/test-install.sh --test-omnitrace-{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/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
|
|
|
|
- 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
|