589a729702
* roctracer: use multiple tracks for HIP streams Use different perfetto tracks for each stream, and set the name of these tracks to the stream pointer values. Setting the name like this matches the args in the API traces. This fixes overlapping work on multiple streams appearing as a call stack. * Fix -pedantic * Run clang-format * Add option to disable per stream tracks in perfetto * Updated scheme for roctracer activity + general roctracer fixes - Per-device tracks - Handle HSA OPS in ROCm 5.3 - the changes in ROCm 5.3 were causing HSA ops to get discarded - Default for OMNITRACE_ROCTRACER_DISCARD_INVALID is now zero - i.e. default behavior is to flip beg_ns and end_ns when beg_ns > end_ns * Flush perfetto at end of hip_activity_callback - fixes unterminated regions * GitHub Actions and run-ci script updates - improve reliability * Set OMNITRACE_TMPDIR in testing - files in /tmp get occasionally deleted during CI Co-authored-by: Gergely Meszaros <gergely@streamhpc.com>
269 wiersze
8.4 KiB
YAML
269 wiersze
8.4 KiB
YAML
name: Installer Packaging (CPack)
|
|
run-name: cpack
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [main, releases/**]
|
|
tags:
|
|
- v*
|
|
paths-ignore:
|
|
- '*.md'
|
|
- 'source/docs/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
GIT_DISCOVERY_ACROSS_FILESYSTEM: 1
|
|
|
|
jobs:
|
|
release:
|
|
if: github.repository == 'AMDResearch/omnitrace' && startsWith(github.ref, 'refs/tags/')
|
|
runs-on: ubuntu-20.04
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Generate Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: True
|
|
generate_release_notes: True
|
|
|
|
release-docs:
|
|
if: github.repository == 'AMDResearch/omnitrace' && startsWith(github.ref, 'refs/tags/')
|
|
runs-on: ubuntu-20.04
|
|
permissions:
|
|
contents: write
|
|
packages: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
ref: gh-pages
|
|
- name: Install Conda
|
|
uses: s-weigand/setup-conda@v1
|
|
- name: Update Docs
|
|
working-directory: source/docs
|
|
run: |
|
|
conda env create -n omnitrace-docs -f environment.yml
|
|
conda activate omnitrace-docs
|
|
git config --global user.name 'Jonathan R. Madsen'
|
|
git config --global user.email 'jrmadsen@users.noreply.github.com'
|
|
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
|
|
git pull --rebase=true origin ${{ github.ref }}
|
|
./update-docs.sh
|
|
git add ../../docs
|
|
git commit -m "Update HTML (automated)"
|
|
git push -f
|
|
|
|
ubuntu:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# ubuntu 18.04
|
|
- os-distro: "ubuntu"
|
|
os-version: "18.04"
|
|
rocm-version: "0.0"
|
|
- os-distro: "ubuntu"
|
|
os-version: "18.04"
|
|
rocm-version: "4.5"
|
|
- os-distro: "ubuntu"
|
|
os-version: "18.04"
|
|
rocm-version: "5.0"
|
|
- os-distro: "ubuntu"
|
|
os-version: "18.04"
|
|
rocm-version: "5.1"
|
|
- os-distro: "ubuntu"
|
|
os-version: "18.04"
|
|
rocm-version: "5.2"
|
|
# ubuntu 20.04
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "0.0"
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "4.5"
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "5.0"
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "5.1"
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "5.2"
|
|
- os-distro: "ubuntu"
|
|
os-version: "20.04"
|
|
rocm-version: "5.3"
|
|
# ubuntu 20.04
|
|
- os-distro: "ubuntu"
|
|
os-version: "22.04"
|
|
rocm-version: "0.0"
|
|
- os-distro: "ubuntu"
|
|
os-version: "22.04"
|
|
rocm-version: "5.3"
|
|
# opensuse 15.3
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "0.0"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "4.5"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "5.0"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "5.1"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "5.2"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.3"
|
|
rocm-version: "5.3"
|
|
# opensuse 15.4
|
|
- os-distro: "opensuse"
|
|
os-version: "15.4"
|
|
rocm-version: "0.0"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.4"
|
|
rocm-version: "5.0"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.4"
|
|
rocm-version: "5.1"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.4"
|
|
rocm-version: "5.2"
|
|
- os-distro: "opensuse"
|
|
os-version: "15.4"
|
|
rocm-version: "5.3"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Configure ROCm Version
|
|
if: ${{ matrix.rocm-version == 0 }}
|
|
run: |
|
|
echo "CI_SCRIPT_ARGS=--core +python" >> $GITHUB_ENV
|
|
|
|
- name: Configure ROCm Version
|
|
if: ${{ matrix.rocm-version > 0 }}
|
|
run: |
|
|
echo "CI_SCRIPT_ARGS=--rocm +python" >> $GITHUB_ENV
|
|
|
|
- name: Build Base Container
|
|
timeout-minutes: 30
|
|
run: |
|
|
pushd docker
|
|
./build-docker.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }}
|
|
popd
|
|
|
|
- name: Build Release
|
|
timeout-minutes: 150
|
|
run: |
|
|
pushd docker
|
|
./build-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- ${CI_SCRIPT_ARGS}
|
|
popd
|
|
|
|
- name: List Files
|
|
timeout-minutes: 10
|
|
run: |
|
|
find build-release -type f | egrep '\.(sh|deb|rpm)$'
|
|
|
|
- name: STGZ Artifacts
|
|
timeout-minutes: 10
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: omnitrace-stgz-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
|
path: |
|
|
build-release/stgz/*.sh
|
|
|
|
- name: DEB Artifacts
|
|
timeout-minutes: 10
|
|
if: ${{ matrix.os-distro == 'ubuntu' }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: omnitrace-deb-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
|
path: |
|
|
build-release/deb/*.deb
|
|
|
|
- name: RPM Artifacts
|
|
timeout-minutes: 10
|
|
if: ${{ matrix.os-distro != 'ubuntu' }}
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: omnitrace-rpm-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
|
path: |
|
|
build-release/rpm/*.rpm
|
|
|
|
# before testing remove any artifacts of the build
|
|
- name: Remove Build
|
|
timeout-minutes: 10
|
|
run: |
|
|
shopt -s nullglob
|
|
for i in $(find build-release -type f | egrep '/(stgz|deb|rpm)/.*\.(sh|deb|rpm)$'); do mv ${i} ./; done
|
|
sudo rm -rf build-release
|
|
sudo rm -rf /opt/omnitrace
|
|
|
|
- name: Test STGZ Install
|
|
timeout-minutes: 20
|
|
run: |
|
|
set -v
|
|
for i in omnitrace-*.sh
|
|
do
|
|
./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --stgz ${i}
|
|
done
|
|
|
|
- name: Upload STGZ Release Assets
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
|
with:
|
|
fail_on_unmatched_files: True
|
|
files: |
|
|
omnitrace-*.sh
|
|
|
|
- name: Test DEB Install
|
|
timeout-minutes: 20
|
|
if: ${{ matrix.os-distro == 'ubuntu' }}
|
|
run: |
|
|
set -v
|
|
for i in omnitrace_*.deb
|
|
do
|
|
./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --deb ${i}
|
|
done
|
|
|
|
- name: Upload DEB Release Assets
|
|
uses: softprops/action-gh-release@v1
|
|
if: matrix.os-distro == 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
|
with:
|
|
fail_on_unmatched_files: True
|
|
files: |
|
|
omnitrace_*.deb
|
|
|
|
- name: Test RPM Install
|
|
timeout-minutes: 20
|
|
if: ${{ matrix.os-distro != 'ubuntu' }}
|
|
run: |
|
|
set -v
|
|
for i in omnitrace-*.rpm
|
|
do
|
|
./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --rpm ${i}
|
|
done
|
|
|
|
- name: Upload RPM Release Assets
|
|
uses: softprops/action-gh-release@v1
|
|
if: matrix.os-distro != 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
|
with:
|
|
fail_on_unmatched_files: True
|
|
files: |
|
|
omnitrace-*.rpm
|