diff --git a/.github/workflows/rocprofiler-systems-containers.yml b/.github/workflows/rocprofiler-systems-containers.yml index 9e937e7f9d..fd93df1e75 100644 --- a/.github/workflows/rocprofiler-systems-containers.yml +++ b/.github/workflows/rocprofiler-systems-containers.yml @@ -26,8 +26,6 @@ jobs: fail-fast: false matrix: include: - - distro: "ubuntu" - version: "20.04" - distro: "ubuntu" version: "22.04" - distro: "ubuntu" @@ -83,13 +81,6 @@ jobs: fail-fast: false matrix: include: - # ubuntu 20.04 - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "0.0" - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "6.3" # ubuntu 22.04 - os-distro: "ubuntu" os-version: "22.04" diff --git a/.github/workflows/rocprofiler-systems-cpack.yml b/.github/workflows/rocprofiler-systems-cpack.yml index 3902976b6b..fea8884084 100644 --- a/.github/workflows/rocprofiler-systems-cpack.yml +++ b/.github/workflows/rocprofiler-systems-cpack.yml @@ -31,13 +31,6 @@ jobs: fail-fast: false matrix: include: - # ubuntu 20.04 - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "0.0" - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "6.3" # ubuntu 22.04 - os-distro: "ubuntu" os-version: "22.04" @@ -119,7 +112,9 @@ jobs: - uses: actions/checkout@v4 with: - sparse-checkout: projects/rocprofiler-systems + sparse-checkout: | + projects/rocprofiler-systems + .github submodules: recursive - name: Configure ROCm Version diff --git a/.github/workflows/rocprofiler-systems-formatting.yml b/.github/workflows/rocprofiler-systems-formatting.yml index c42f72a736..e04b2f89d8 100644 --- a/.github/workflows/rocprofiler-systems-formatting.yml +++ b/.github/workflows/rocprofiler-systems-formatting.yml @@ -16,9 +16,52 @@ concurrency: jobs: - call-workflow-passing-data: - name: Documentation - uses: ROCm/rocm-docs-core/.github/workflows/linting.yml@develop + lint-md: + name: "Markdown" + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + sparse-checkout: projects/rocprofiler-systems + + - name: Fetch config + shell: sh + working-directory: projects/rocprofiler-systems/ + run: | + test -f .markdownlint.yaml && echo "Using local config file" || curl --silent --show-error --fail --location https://raw.github.com/ROCm/rocm-docs-core/develop/.markdownlint.yaml -O + + - name: Use markdownlint-cli2 + uses: DavidAnson/markdownlint-cli2-action@v10.0.1 + with: + globs: "projects/rocprofiler-systems/**/*.md" + + spelling: + name: "Spelling" + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + sparse-checkout: projects/rocprofiler-systems + + - name: Fetch config + working-directory: + shell: sh + run: | + cp projects/rocprofiler-systems/.wordlist.txt . + curl --silent --show-error --fail --location https://raw.github.com/ROCm/rocm-docs-core/develop/.spellcheck.yaml -o .spellcheck.yaml + curl --silent --show-error --fail --location https://raw.github.com/ROCm/rocm-docs-core/develop/.wordlist.txt >> .wordlist.txt + + sed -i "s|docs/\*\*/\*.md|projects/rocprofiler-systems/docs/**/*.md|g" .spellcheck.yaml + + - name: Run spellcheck + uses: rojopolis/spellcheck-github-actions@0.46.0 + + - name: On fail + if: failure() + run: | + echo "Please check for spelling mistakes or add them to '.wordlist.txt' in either the root of this project or in rocm-docs-core." python: runs-on: ubuntu-22.04 diff --git a/.github/workflows/rocprofiler-systems-opensuse.yml b/.github/workflows/rocprofiler-systems-opensuse.yml index dc41be34e1..0975db1345 100644 --- a/.github/workflows/rocprofiler-systems-opensuse.yml +++ b/.github/workflows/rocprofiler-systems-opensuse.yml @@ -4,29 +4,23 @@ run-name: opensuse-15 on: push: paths: + - '.github/workflows/rocprofiler-systems-opensuse.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' pull_request: paths: + - '.github/workflows/rocprofiler-systems-opensuse.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/rocprofiler-systems-weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' @@ -86,6 +80,7 @@ jobs: shell: bash working-directory: projects/rocprofiler-systems/ run: + git config --global --add safe.directory ${GITHUB_WORKSPACE} && git config --global --add safe.directory ${PWD} && cmake --version && python3 ./scripts/run-ci.py -B build diff --git a/.github/workflows/rocprofiler-systems-python.yml b/.github/workflows/rocprofiler-systems-python.yml index f0361b4e21..37cd5f6db3 100644 --- a/.github/workflows/rocprofiler-systems-python.yml +++ b/.github/workflows/rocprofiler-systems-python.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 @@ -33,14 +33,14 @@ jobs: with: python-version: ${{ matrix.python-version }} - name: Install dependencies + working-directory: projects/rocprofiler-systems/source/python/gui run: | - cd projects/rocprofiler-systems/source/python/gui python -m pip install --upgrade pip pip install flake8 if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Lint with flake8 + working-directory: projects/rocprofiler-systems/source/python/gui run: | - cd projects/rocprofiler-systems/source/python/gui # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # flake8 options are defined in setup.cfg diff --git a/.github/workflows/rocprofiler-systems-redhat.yml b/.github/workflows/rocprofiler-systems-redhat.yml index 0a5d7dc003..218cbf149e 100644 --- a/.github/workflows/rocprofiler-systems-redhat.yml +++ b/.github/workflows/rocprofiler-systems-redhat.yml @@ -4,31 +4,23 @@ run-name: redhat on: push: paths: + - '.github/workflows/rocprofiler-systems-redhat.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' pull_request: paths: + - '.github/workflows/rocprofiler-systems-redhat.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' @@ -103,6 +95,7 @@ jobs: shell: bash working-directory: projects/rocprofiler-systems/ run: + git config --global --add safe.directory ${GITHUB_WORKSPACE} && git config --global --add safe.directory ${PWD} && cmake --version && TAG="${{ github.repository_owner }}-${{ github.ref_name }}-rhel-${{ matrix.os-release }}-${{ matrix.compiler }}-python-mpip" && diff --git a/.github/workflows/rocprofiler-systems-ubuntu-focal.yml b/.github/workflows/rocprofiler-systems-ubuntu-focal.yml deleted file mode 100644 index ec4b431b8c..0000000000 --- a/.github/workflows/rocprofiler-systems-ubuntu-focal.yml +++ /dev/null @@ -1,513 +0,0 @@ -name: Ubuntu 20.04 (GCC, Python, ROCm, MPICH, OpenMPI) -run-name: ubuntu-focal - -on: - push: - paths: - - 'projects/rocprofiler-systems/**' - - '!projects/rocprofiler-systems/*.md' - - '!projects/rocprofiler-systems/docs/**' - - '!projects/rocprofiler-systems/source/docs/**' - - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - - '!projects/rocprofiler-systems/docker/**' - - '!projects/rocprofiler-systems/.wordlist.txt' - - '!projects/rocprofiler-systems/CMakePresets.json' - pull_request: - paths: - - 'projects/rocprofiler-systems/**' - - '!projects/rocprofiler-systems/*.md' - - '!projects/rocprofiler-systems/docs/**' - - '!projects/rocprofiler-systems/source/docs/**' - - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - - '!projects/rocprofiler-systems/docker/**' - - '!projects/rocprofiler-systems/.wordlist.txt' - - '!projects/rocprofiler-systems/CMakePresets.json' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - ROCPROFSYS_CI: ON - ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp" - -jobs: - ubuntu-focal-external: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++-7', 'g++-8'] - lto: ['OFF'] - strip: ['OFF'] - python: ['OFF'] - build-type: ['Release'] - mpi-headers: ['OFF'] - static-libgcc: ['OFF'] - static-libstdcxx: ['OFF'] - include: - - compiler: 'g++-9' - lto: 'OFF' - strip: 'ON' - python: 'OFF' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'ON' - - compiler: 'g++-10' - lto: 'OFF' - strip: 'ON' - python: 'ON' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'OFF' - - compiler: 'g++-11' - lto: 'ON' - strip: 'ON' - python: 'OFF' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'OFF' - - steps: - - uses: actions/checkout@v4 - with: - sparse-checkout: projects/rocprofiler-systems/ - - - name: Install Packages - timeout-minutes: 25 - uses: nick-fields/retry@v3 - with: - retry_wait_seconds: 30 - timeout_minutes: 25 - max_attempts: 5 - command: | - cd projects/rocprofiler-systems/ - apt-get update && - apt-get install -y software-properties-common && - add-apt-repository -y ppa:ubuntu-toolchain-r/test && - apt-get update && - apt-get upgrade -y && - apt-get install -y autoconf bison build-essential clang environment-modules gettext libiberty-dev libmpich-dev libtool m4 mpich python3-pip texinfo ${{ matrix.compiler }} && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - - name: Test Environment Modules - timeout-minutes: 15 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: | - set -v - source /usr/share/modules/init/$(basename ${SHELL}) - module avail - - - name: Configure Env - working-directory: projects/rocprofiler-systems/ - 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 - working-directory: projects/rocprofiler-systems/ - run: - git config --global --add safe.directory ${PWD} && - TAG="" && - append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } && - append-tagname ${{ matrix.lto }} lto && - append-tagname ${{ matrix.strip }} strip && - append-tagname ${{ matrix.python }} python && - append-tagname ${{ matrix.mpi-headers }} mpip && - append-tagname ${{ matrix.static-libgcc }} libgcc && - append-tagname ${{ matrix.static-libstdcxx }} libstdcxx && - cmake --version && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ 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/rocprofiler-systems - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_USE_MPI=OFF - -DROCPROFSYS_USE_ROCM=OFF - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PAPI=OFF - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_USE_PYTHON=${{ matrix.python }} - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_STRIP_LIBRARIES=${{ matrix.strip }} - -DROCPROFSYS_BUILD_LTO=${{ matrix.lto }} - -DROCPROFSYS_BUILD_STATIC_LIBGCC=${{ matrix.static-libgcc }} - -DROCPROFSYS_BUILD_STATIC_LIBSTDCXX=${{ matrix.static-libstdcxx }} - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;videodecode;jpegdecode;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -DMPI_HEADERS_ALLOW_MPICH=OFF - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" - - - name: Test Build-Tree Module - timeout-minutes: 45 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: | - cd build - source /usr/share/modules/init/$(basename ${SHELL}) - module use ./share/modulefiles - module avail - module load rocprofiler-systems - echo $(which rocprof-sys-instrument) - ldd $(which rocprof-sys-instrument) - rocprof-sys-instrument --help - rocprof-sys-avail --help - rocprof-sys-sample --help - - - name: Test Build-Tree Source Script - timeout-minutes: 45 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: | - cd build - source ./share/rocprofiler-systems/setup-env.sh - echo $(which rocprof-sys-instrument) - ldd $(which rocprof-sys-instrument) - rocprof-sys-instrument --help - rocprof-sys-avail --help - rocprof-sys-sample --help - - - name: Install - timeout-minutes: 10 - working-directory: projects/rocprofiler-systems/ - run: - cmake --build build --target install --parallel 2 - - - name: Test Install - timeout-minutes: 15 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: | - source /usr/share/modules/init/$(basename ${SHELL}) - module use /opt/rocprofiler-systems/share/modulefiles - module avail - module load rocprofiler-systems - ./scripts/test-install.sh --test-rocprof-sys-{instrument,avail,sample,rewrite,runtime}=1 --test-rocprof-sys-python=${{ matrix.python }} - - - name: Test User API - timeout-minutes: 10 - working-directory: projects/rocprofiler-systems/ - 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: | - projects/rocprofiler-systems/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: | - projects/rocprofiler-systems/build/rocprofsys-tests-config/*.cfg - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*.txt - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*-instr*.json - - - name: Kill Perfetto - if: success() || failure() - continue-on-error: True - working-directory: projects/rocprofiler-systems/ - run: | - set +e - RUNNING_PROCS=$(pgrep trace_processor_shell) - if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi - - ubuntu-focal-external-rocm: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++'] - rocm-version: ['6.3'] - mpi-headers: ['OFF'] - build-jobs: ['3'] - ctest-exclude: ['-LE "transpose|videodecode|jpegdecode|network"'] - - env: - BUILD_TYPE: MinSizeRel - OMPI_ALLOW_RUN_AS_ROOT: 1 - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - - steps: - - uses: actions/checkout@v4 - with: - sparse-checkout: projects/rocprofiler-systems/ - - - name: Install Packages - timeout-minutes: 25 - uses: nick-fields/retry@v3 - with: - retry_wait_seconds: 30 - timeout_minutes: 25 - max_attempts: 5 - command: | - cd projects/rocprofiler-systems/ - apt-get update && - apt-get install -y software-properties-common wget gnupg2 && - 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/focal/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 autoconf bison build-essential clang curl gettext libfabric-dev libnuma1 libomp-dev libopenmpi-dev libpapi-dev libtool libudev1 m4 openmpi-bin python3-pip rocm-dev texinfo && - apt-get install -y rocdecode-dev libavformat-dev libavcodec-dev && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - - name: Configure Env - working-directory: projects/rocprofiler-systems/ - run: | - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV - echo "CMAKE_PREFIX_PATH=/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - cat << EOF > test-install.cfg - ROCPROFSYS_PROFILE = ON - ROCPROFSYS_TRACE = ON - ROCPROFSYS_USE_PID = OFF - ROCPROFSYS_USE_SAMPLING = OFF - ROCPROFSYS_USE_PROCESS_SAMPLING = OFF - ROCPROFSYS_COUT_OUTPUT = ON - ROCPROFSYS_TIME_OUTPUT = OFF - ROCPROFSYS_TIMEMORY_COMPONENTS = cpu_clock cpu_util current_peak_rss kernel_mode_time monotonic_clock monotonic_raw_clock network_stats num_io_in num_io_out num_major_page_faults num_minor_page_faults page_rss peak_rss priority_context_switch process_cpu_clock process_cpu_util read_bytes read_char system_clock thread_cpu_clock thread_cpu_util timestamp trip_count user_clock user_mode_time virtual_memory voluntary_context_switch wall_clock written_bytes written_char - ROCPROFSYS_OUTPUT_PATH = rocprofsys-tests-output - ROCPROFSYS_OUTPUT_PREFIX = %tag%/ - ROCPROFSYS_DEBUG = OFF - ROCPROFSYS_VERBOSE = 3 - ROCPROFSYS_DL_VERBOSE = 3 - ROCPROFSYS_PERFETTO_BACKEND = system - EOF - realpath test-install.cfg - cat test-install.cfg - - - name: Configure, Build, and Test - timeout-minutes: 115 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: - git config --global --add safe.directory ${PWD} && - cmake --version && - TAG="-rocm-${{ matrix.rocm-version }}" && - TAG="$(echo ${TAG} | sed 's/debian/latest/g')" && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-rocm-${{ 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=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_BUILD_DEVELOPER=ON - -DROCPROFSYS_BUILD_EXTRA_OPTIMIZATIONS=OFF - -DROCPROFSYS_BUILD_LTO=OFF - -DROCPROFSYS_USE_MPI=OFF - -DROCPROFSYS_USE_ROCM=ON - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_USE_PAPI=OFF - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_USE_SANITIZER=OFF - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_CI_MPI_RUN_AS_ROOT=${{ matrix.mpi-headers }} - -DROCPROFSYS_CI_GPU=OFF - -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - ${{ matrix.ctest-exclude }} - - - name: Install - working-directory: projects/rocprofiler-systems/ - run: - cmake --build build --target install --parallel 2 - - - name: Test Install - timeout-minutes: 15 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: | - source /opt/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh - ./scripts/test-install.sh --test-rocprof-sys-{instrument,avail,sample,python,rewrite,runtime}=1 - - - name: Test User API - timeout-minutes: 10 - working-directory: projects/rocprofiler-systems/ - 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: | - projects/rocprofiler-systems/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: | - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*.txt - projects/rocprofiler-systems/build/rocprofsys-tests-config/*.cfg - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*.txt - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*-instr*.json - - - name: Kill Perfetto - if: success() || failure() - continue-on-error: True - working-directory: projects/rocprofiler-systems/ - run: | - set +e - RUNNING_PROCS=$(pgrep trace_processor_shell) - if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi - - ubuntu-focal-codecov: - runs-on: ubuntu-latest - - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - options: --cap-add CAP_SYS_ADMIN - - env: - ROCPROFSYS_VERBOSE: 2 - ROCPROFSYS_CAUSAL_BACKEND: perf - - steps: - - uses: actions/checkout@v4 - with: - sparse-checkout: projects/rocprofiler-systems/ - - - name: Install Packages - timeout-minutes: 25 - uses: nick-fields/retry@v3 - with: - retry_wait_seconds: 30 - timeout_minutes: 25 - max_attempts: 5 - command: | - cd projects/rocprofiler-systems/ - apt-get update && - apt-get install -y autoconf bison build-essential clang environment-modules gcc g++ libmpich-dev libomp-dev libtool m4 mpich python3-pip texinfo && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - name: Configure Env - working-directory: projects/rocprofiler-systems/ - run: - echo "${HOME}/.local/bin" >> $GITHUB_PATH - - - name: Configure, Build, and Test - timeout-minutes: 115 - shell: bash - working-directory: projects/rocprofiler-systems/ - run: - git config --global --add safe.directory ${PWD} && - cmake --version && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-codecov-mpi-python-ompt-papi - --build-jobs 2 - --site GitHub - --coverage - -- - -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems - -DROCPROFSYS_BUILD_CI=OFF - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_BUILD_DEBUG=OFF - -DROCPROFSYS_BUILD_HIDDEN_VISIBILITY=OFF - -DROCPROFSYS_USE_MPI=ON - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_USE_OMPT=ON - -DROCPROFSYS_USE_PAPI=ON - -DROCPROFSYS_USE_ROCM=OFF - -DROCPROFSYS_USE_RCCL=OFF - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;videodecode;jpegdecode;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" diff --git a/.github/workflows/rocprofiler-systems-ubuntu-jammy.yml b/.github/workflows/rocprofiler-systems-ubuntu-jammy.yml index f5651573ea..2de949fb73 100644 --- a/.github/workflows/rocprofiler-systems-ubuntu-jammy.yml +++ b/.github/workflows/rocprofiler-systems-ubuntu-jammy.yml @@ -4,31 +4,23 @@ run-name: ubuntu-jammy on: push: paths: + - '.github/workflows/rocprofiler-systems-ubuntu-jammy.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' pull_request: paths: + - '.github/workflows/rocprofiler-systems-ubuntu-jammy.yml' - 'projects/rocprofiler-systems/**' - '!projects/rocprofiler-systems/*.md' - '!projects/rocprofiler-systems/docs/**' - '!projects/rocprofiler-systems/source/docs/**' - '!projects/rocprofiler-systems/source/python/gui/**' - - '!projects/rocprofiler-systems/.github/workflows/docs.yml' - - '!projects/rocprofiler-systems/.github/workflows/cpack.yml' - - '!projects/rocprofiler-systems/.github/workflows/containers.yml' - - '!projects/rocprofiler-systems/.github/workflows/formatting.yml' - - '!projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml' - '!projects/rocprofiler-systems/docker/**' - '!projects/rocprofiler-systems/.wordlist.txt' - '!projects/rocprofiler-systems/CMakePresets.json' @@ -111,9 +103,13 @@ jobs: timeout-minutes: 115 shell: bash working-directory: projects/rocprofiler-systems/ + env: + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 run: + git config --global --add safe.directory ${GITHUB_WORKSPACE} && git config --global --add safe.directory ${PWD} && cmake --version && + gcc --version && TAG="" && append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } && append-tagname ${{ matrix.mpi }} mpi && @@ -303,6 +299,7 @@ jobs: shell: bash working-directory: projects/rocprofiler-systems/ run: + git config --global --add safe.directory ${GITHUB_WORKSPACE} && git config --global --add safe.directory ${PWD} && cmake --version && TAG="" && @@ -399,4 +396,83 @@ jobs: path: | projects/rocprofiler-systems/build/rocprofsys-tests-config/*.cfg projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*.txt - projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*-instr*.json \ No newline at end of file + projects/rocprofiler-systems/build/rocprofsys-tests-output/**/*-instr*.json + + ubuntu-jammy-codecov: + runs-on: ubuntu-latest + + container: + image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-22.04 + options: --cap-add CAP_SYS_ADMIN + + env: + ROCPROFSYS_VERBOSE: 2 + ROCPROFSYS_CAUSAL_BACKEND: perf + ROCPROFSYS_CI: 'ON' + + steps: + - uses: actions/checkout@v4 + with: + sparse-checkout: projects/rocprofiler-systems/ + + - name: Install Packages + timeout-minutes: 25 + uses: nick-fields/retry@v3 + with: + retry_wait_seconds: 30 + timeout_minutes: 25 + max_attempts: 5 + command: | + cd projects/rocprofiler-systems/ + apt-get update && + apt-get install -y autoconf bison build-essential clang environment-modules gcc g++ libmpich-dev libomp-dev libtool m4 mpich python3-pip texinfo && + wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && + python3 -m pip install 'cmake==3.21' && + for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && + apt-get -y --purge autoremove && + apt-get -y clean && + /opt/conda/bin/conda clean -y -a + - name: Configure Env + run: + echo "${HOME}/.local/bin" >> $GITHUB_PATH + + - name: Configure, Build, and Test + timeout-minutes: 115 + shell: bash + working-directory: projects/rocprofiler-systems/ + env: + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 + run: + git config --global --add safe.directory ${GITHUB_WORKSPACE} && + git config --global --add safe.directory ${PWD} && + cmake --version && + python3 ./scripts/run-ci.py -B build + --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-jammy-codecov-mpi-python-ompt-papi + --build-jobs 2 + --site GitHub + --coverage + -- + -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems + -DROCPROFSYS_BUILD_CI=OFF + -DROCPROFSYS_BUILD_TESTING=ON + -DROCPROFSYS_BUILD_DYNINST=ON + -DROCPROFSYS_BUILD_BOOST=ON + -DROCPROFSYS_BUILD_TBB=ON + -DROCPROFSYS_BUILD_ELFUTILS=ON + -DROCPROFSYS_BUILD_LIBIBERTY=ON + -DROCPROFSYS_BUILD_DEBUG=OFF + -DROCPROFSYS_BUILD_HIDDEN_VISIBILITY=OFF + -DROCPROFSYS_USE_MPI=ON + -DROCPROFSYS_USE_PYTHON=ON + -DROCPROFSYS_USE_OMPT=ON + -DROCPROFSYS_USE_PAPI=ON + -DROCPROFSYS_USE_ROCM=OFF + -DROCPROFSYS_USE_RCCL=OFF + -DROCPROFSYS_MAX_THREADS=64 + -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;videodecode;jpegdecode;openmp-target" + -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} + -- + -LE "transpose|rccl|videodecode|jpegdecode|network" diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-noble.yml b/.github/workflows/rocprofiler-systems-ubuntu-noble.yml similarity index 69% rename from projects/rocprofiler-systems/.github/workflows/ubuntu-noble.yml rename to .github/workflows/rocprofiler-systems-ubuntu-noble.yml index 3544b32b9d..46e2d06022 100644 --- a/projects/rocprofiler-systems/.github/workflows/ubuntu-noble.yml +++ b/.github/workflows/rocprofiler-systems-ubuntu-noble.yml @@ -1,37 +1,29 @@ -name: Ubuntu 24.04 (GCC, Python, ROCm) +name: rocprofiler-systems 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/**' - - .wordlist.txt - - CMakePresets.json + paths: + - '.github/workflows/rocprofiler-systems-ubuntu-noble.yml' + - 'projects/rocprofiler-systems/**' + - '!projects/rocprofiler-systems/*.md' + - '!projects/rocprofiler-systems/docs/**' + - '!projects/rocprofiler-systems/source/docs/**' + - '!projects/rocprofiler-systems/source/python/gui/**' + - '!projects/rocprofiler-systems/docker/**' + - '!projects/rocprofiler-systems/.wordlist.txt' + - '!projects/rocprofiler-systems/CMakePresets.json' 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/**' - - .wordlist.txt - - CMakePresets.json + paths: + - '.github/workflows/rocprofiler-systems-ubuntu-noble.yml' + - 'projects/rocprofiler-systems/**' + - '!projects/rocprofiler-systems/*.md' + - '!projects/rocprofiler-systems/docs/**' + - '!projects/rocprofiler-systems/source/docs/**' + - '!projects/rocprofiler-systems/source/python/gui/**' + - '!projects/rocprofiler-systems/docker/**' + - '!projects/rocprofiler-systems/.wordlist.txt' + - '!projects/rocprofiler-systems/CMakePresets.json' concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -60,6 +52,8 @@ jobs: steps: - uses: actions/checkout@v4 + with: + sparse-checkout: projects/rocprofiler-systems/ - name: Install Packages timeout-minutes: 25 @@ -69,6 +63,7 @@ jobs: timeout_minutes: 25 max_attempts: 5 command: | + cd projects/rocprofiler-systems/ apt-get -y update && apt-get upgrade -y && apt-get install -y \ libiberty-dev clang libomp-dev libopenmpi-dev libfabric-dev \ @@ -79,6 +74,7 @@ jobs: if: ${{ matrix.rocm-version > 0 }} timeout-minutes: 30 shell: bash + working-directory: projects/rocprofiler-systems/ run: | ROCM_VERSION=${{ matrix.rocm-version }} ROCM_MAJOR=$(echo ${ROCM_VERSION} | sed 's/\./ /g' | awk '{print $1}') @@ -93,7 +89,11 @@ jobs: - name: Configure timeout-minutes: 30 shell: bash + working-directory: projects/rocprofiler-systems/ + env: + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} && git config --global --add safe.directory ${PWD} && cmake --version USE_ROCM=OFF @@ -118,4 +118,5 @@ jobs: - name: Build timeout-minutes: 115 + working-directory: projects/rocprofiler-systems/ run: cmake --build build --parallel 2 diff --git a/projects/rocprofiler-systems/.github/workflows/cpack.yml b/projects/rocprofiler-systems/.github/workflows/cpack.yml deleted file mode 100644 index 8caab6a979..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/cpack.yml +++ /dev/null @@ -1,191 +0,0 @@ -name: Installer Packaging (CPack) -run-name: cpack - -on: - workflow_dispatch: - push: - branches: [amd-staging, amd-mainline, release/**] - tags: - - "v[1-9].[0-9]+.[0-9]+*" - - "rocm-[1-9].[0-9]+.[0-9]+*" - paths-ignore: - - '*.md' - - 'docs/**' - - 'source/docs/**' - pull_request: - branches: [amd-staging, amd-mainline, release/**] - paths: - - '.github/workflows/cpack.yml' - - 'docker/**' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 - -jobs: - installers: - if: github.repository == 'ROCm/rocprofiler-systems' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - # ubuntu 20.04 - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "0.0" - - os-distro: "ubuntu" - os-version: "20.04" - rocm-version: "6.3" - # ubuntu 22.04 - - os-distro: "ubuntu" - os-version: "22.04" - rocm-version: "0.0" - - os-distro: "ubuntu" - os-version: "22.04" - rocm-version: "6.3" - - os-distro: "ubuntu" - os-version: "22.04" - rocm-version: "6.4" - # ubuntu 24.04 - - os-distro: "ubuntu" - os-version: "24.04" - rocm-version: "0.0" - - os-distro: "ubuntu" - os-version: "24.04" - rocm-version: "6.3" - - os-distro: "ubuntu" - os-version: "24.04" - rocm-version: "6.4" - # opensuse 15.5 - - os-distro: "opensuse" - os-version: "15.5" - rocm-version: "0.0" - - os-distro: "opensuse" - os-version: "15.5" - rocm-version: "6.3" - # opensuse 15.6 - - os-distro: "opensuse" - os-version: "15.6" - rocm-version: "0.0" - - os-distro: "opensuse" - os-version: "15.6" - rocm-version: "6.3" - - os-distro: "opensuse" - os-version: "15.6" - rocm-version: "6.4" - # RHEL 8.10 - - os-distro: "rhel" - os-version: "8.10" - rocm-version: "0.0" - - os-distro: "rhel" - os-version: "8.10" - rocm-version: "6.3" - - os-distro: "rhel" - os-version: "8.10" - rocm-version: "6.4" - # RHEL 9.4 - - os-distro: "rhel" - os-version: "9.4" - rocm-version: "0.0" - - os-distro: "rhel" - os-version: "9.4" - rocm-version: "6.3" - - os-distro: "rhel" - os-version: "9.4" - rocm-version: "6.4" - # RHEL 9.5 - - os-distro: "rhel" - os-version: "9.5" - rocm-version: "0.0" - - os-distro: "rhel" - os-version: "9.5" - rocm-version: "6.3" - - os-distro: "rhel" - os-version: "9.5" - rocm-version: "6.4" - - steps: - - name: Free Disk Space - uses: jlumbroso/free-disk-space@v1.2.0 - with: - tool-cache: false - android: true - dotnet: true - haskell: true - large-packages: false - swap-storage: false - - - uses: actions/checkout@v4 - 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: Configure Generators - run: | - echo "CI_GENERATOR_ARGS=--generators STGZ" >> $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} ${CI_GENERATOR_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@v4 - with: - name: rocprofiler-systems-stgz-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer - path: | - build-release/stgz/*.sh - - # 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/rocprofiler-systems - - - name: Test STGZ Install - timeout-minutes: 20 - run: | - set -v - for i in rocprofiler-systems-*.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@v2 - if: startsWith(github.ref, 'refs/tags/') && github.repository == 'ROCm/rocprofiler-systems' - with: - fail_on_unmatched_files: True - files: | - rocprofiler-systems-*.sh diff --git a/projects/rocprofiler-systems/.github/workflows/formatting.yml b/projects/rocprofiler-systems/.github/workflows/formatting.yml deleted file mode 100644 index 993fca0446..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/formatting.yml +++ /dev/null @@ -1,104 +0,0 @@ - -name: Formatting -run-name: formatting - -on: - push: - branches: [ amd-mainline, amd-staging, release/** ] - pull_request: - branches: [ amd-mainline, amd-staging, release/** ] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - - call-workflow-passing-data: - name: Documentation - uses: ROCm/rocm-docs-core/.github/workflows/linting.yml@develop - - python: - runs-on: ubuntu-22.04 - strategy: - matrix: - python-version: [3.8] - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install black - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: black format - run: | - black --diff --check . - - cmake: - runs-on: ubuntu-24.04 - - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y python3-pip - python3 -m pip install gersemi - - name: gersemi - run: | - set +e - gersemi -i $(find . -type f ! -path '*/external/*' | grep -E 'CMakeLists.txt|\.cmake$') - if [ $(git diff | wc -l) -gt 0 ]; then - echo -e "\nError! CMake code not formatted. Run gersemi ...\n" - echo -e "\nFiles:\n" - git diff --name-only - echo -e "\nFull diff:\n" - git diff - exit 1 - fi - - source: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - DISTRIB_CODENAME=$(cat /etc/lsb-release | grep DISTRIB_CODENAME | awk -F '=' '{print $NF}') - sudo apt-get update - sudo apt-get install -y software-properties-common wget curl clang-format-18 - - name: clang-format - run: | - set +e - FILES=$(find source examples tests -type f | egrep '\.(h|hpp|c|cpp)(|\.in)$') - FORMAT_OUT=$(clang-format-18 -output-replacements-xml ${FILES}) - RET=$(echo ${FORMAT_OUT} | grep -c '> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "/opt/rocprofiler-systems/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/rocprofiler-systems/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Configure, Build, and Test - timeout-minutes: 115 - shell: bash - run: - git config --global --add safe.directory ${PWD} && - cmake --version && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-opensuse-${{ matrix.os-release }}-${{ matrix.compiler }}-nompi-python - --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_ROCM=OFF - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_INSTALL_PERFETTO_TOOLS=OFF - -DROCPROFSYS_USE_MPI_HEADERS=ON - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_CI_MPI_RUN_AS_ROOT=ON - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;openmp-target;videodecode;jpegdecode" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - -LE "transpose|rccl|videodecode|jpegdecode|network|mpi" - - - name: Install - timeout-minutes: 10 - run: - cmake --build build --target install --parallel 2 - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export ROCPROFSYS_DEBUG=ON - which rocprof-sys-avail - ldd $(which rocprof-sys-avail) - rocprof-sys-avail --help - rocprof-sys-avail -a - which rocprof-sys-instrument - ldd $(which rocprof-sys-instrument) - rocprof-sys-instrument --help - rocprof-sys-instrument -e -v 1 -o ls.inst --simulate -- ls - for i in $(find rocprofsys-ls.inst-output -type f); do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - rocprof-sys-instrument -e -v 1 -o ls.inst -- ls - rocprof-sys-run -- ./ls.inst - rocprof-sys-instrument -e -v 1 --simulate -- ls - for i in $(find rocprofsys-ls-output -type f); do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - rocprof-sys-instrument -e -v 1 -- ls - - - 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 diff --git a/projects/rocprofiler-systems/.github/workflows/python.yml b/projects/rocprofiler-systems/.github/workflows/python.yml deleted file mode 100644 index 8edbedd503..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/python.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Python -run-name: Python - -on: - push: - branches: [ amd-mainline, amd-staging ] - paths: - - 'source/python/gui/*.py' - - 'source/python/gui/**/*.py' - pull_request: - branches: [ amd-mainline, amd-staging ] - paths: - - 'source/python/gui/*.py' - - 'source/python/gui/**/*.py' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - linting: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.7", "3.8", "3.9", "3.10"] - - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - working-directory: ${{ github.workspace }}/source/python/gui - run: | - python -m pip install --upgrade pip - pip install flake8 - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - working-directory: ${{ github.workspace }}/source/python/gui - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # flake8 options are defined in setup.cfg - flake8 . --count --statistics diff --git a/projects/rocprofiler-systems/.github/workflows/redhat.yml b/projects/rocprofiler-systems/.github/workflows/redhat.yml deleted file mode 100644 index 6de49268eb..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/redhat.yml +++ /dev/null @@ -1,180 +0,0 @@ -name: RedHat Linux (GCC, Python, ROCm) -run-name: redhat - -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/**' - - .wordlist.txt - - CMakePresets.json - 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/**' - - .wordlist.txt - - CMakePresets.json - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - ROCPROFSYS_CI: ON - ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp" - -jobs: - rhel: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-rhel-${{ matrix.os-release }} - strategy: - fail-fast: false - matrix: - compiler: ['g++'] - os-release: [ '8.10', '9.3', '9.4' ] - rocm-version: [ '0.0', '6.3', '6.4' ] - 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 && - echo "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}')" >> $GITHUB_ENV && - env - - - name: Install Packages - shell: bash - run: | - if [ $OS_VERSION_MAJOR -eq 8 ]; then - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.0/linux-amd64/trace_processor_shell -P /opt/trace_processor/bin && - chmod +x /opt/trace_processor/bin/trace_processor_shell - fi - python3 -m pip install --upgrade pip && - python3 -m pip install --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done - - - name: Install ROCm Packages - if: ${{ matrix.rocm-version > 0 }} - timeout-minutes: 30 - shell: bash - run: | - 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 rocdecode-devel - if [ "${OS_VERSION_MAJOR}" -gt 8 ]; then dnf install -y libavcodec-free-devel libavformat-free-devel; fi - - - 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/rocprofiler-systems - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_USE_MPI=OFF - -DROCPROFSYS_USE_ROCM=${USE_HIP} - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=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.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" - - - 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/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 diff --git a/projects/rocprofiler-systems/.github/workflows/release.yml b/projects/rocprofiler-systems/.github/workflows/release.yml deleted file mode 100644 index 1d9dda52f9..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/release.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Release - -on: - workflow_dispatch: - push: - tags: - - "v[1-9].[0-9]+.[0-9]+*" - - "rocm-[1-9].[0-9]+.[0-9]+*" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 - -jobs: - release: - if: github.repository == 'ROCm/rocprofiler-systems' - runs-on: ubuntu-latest - permissions: - contents: write - packages: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Generate generic installer script - shell: bash - run: | - sudo apt-get update - sudo apt-get install -y cmake - cmake -D OUTPUT_DIR=${PWD} -P scripts/write-rocprof-sys-install.cmake - - name: Generate Release - uses: softprops/action-gh-release@v1 - with: - draft: False - generate_release_notes: True - fail_on_unmatched_files: True - files: | - rocprofiler-systems-install.py diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml deleted file mode 100644 index be18f9c894..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml +++ /dev/null @@ -1,487 +0,0 @@ -name: Ubuntu 20.04 (GCC, Python, ROCm, MPICH, OpenMPI) -run-name: ubuntu-focal - -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/**' - - .wordlist.txt - - CMakePresets.json - 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/**' - - .wordlist.txt - - CMakePresets.json - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - ROCPROFSYS_CI: ON - ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp" - -jobs: - ubuntu-focal-external: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++-7', 'g++-8'] - lto: ['OFF'] - strip: ['OFF'] - python: ['OFF'] - build-type: ['Release'] - mpi-headers: ['OFF'] - static-libgcc: ['OFF'] - static-libstdcxx: ['OFF'] - include: - - compiler: 'g++-9' - lto: 'OFF' - strip: 'ON' - python: 'OFF' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'ON' - - compiler: 'g++-10' - lto: 'OFF' - strip: 'ON' - python: 'ON' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'OFF' - - compiler: 'g++-11' - lto: 'ON' - strip: 'ON' - python: 'OFF' - build-type: 'Release' - mpi-headers: 'ON' - static-libgcc: 'ON' - static-libstdcxx: 'OFF' - - 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 && - add-apt-repository -y ppa:ubuntu-toolchain-r/test && - apt-get update && - apt-get upgrade -y && - apt-get install -y autoconf bison build-essential clang environment-modules gettext libiberty-dev libmpich-dev libtool m4 mpich python3-pip texinfo ${{ matrix.compiler }} && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - - 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} && - TAG="" && - append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } && - append-tagname ${{ matrix.lto }} lto && - append-tagname ${{ matrix.strip }} strip && - append-tagname ${{ matrix.python }} python && - append-tagname ${{ matrix.mpi-headers }} mpip && - append-tagname ${{ matrix.static-libgcc }} libgcc && - append-tagname ${{ matrix.static-libstdcxx }} libstdcxx && - cmake --version && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ 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/rocprofiler-systems - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_USE_MPI=OFF - -DROCPROFSYS_USE_ROCM=OFF - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PAPI=OFF - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_USE_PYTHON=${{ matrix.python }} - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_STRIP_LIBRARIES=${{ matrix.strip }} - -DROCPROFSYS_BUILD_LTO=${{ matrix.lto }} - -DROCPROFSYS_BUILD_STATIC_LIBGCC=${{ matrix.static-libgcc }} - -DROCPROFSYS_BUILD_STATIC_LIBSTDCXX=${{ matrix.static-libstdcxx }} - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;videodecode;jpegdecode;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -DMPI_HEADERS_ALLOW_MPICH=OFF - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" - - - name: Test Build-Tree Module - timeout-minutes: 45 - shell: bash - run: | - cd build - source /usr/share/modules/init/$(basename ${SHELL}) - module use ./share/modulefiles - module avail - module load rocprofiler-systems - echo $(which rocprof-sys-instrument) - ldd $(which rocprof-sys-instrument) - rocprof-sys-instrument --help - rocprof-sys-avail --help - rocprof-sys-sample --help - - - name: Test Build-Tree Source Script - timeout-minutes: 45 - shell: bash - run: | - cd build - source ./share/rocprofiler-systems/setup-env.sh - echo $(which rocprof-sys-instrument) - ldd $(which rocprof-sys-instrument) - rocprof-sys-instrument --help - rocprof-sys-avail --help - rocprof-sys-sample --help - - - name: Install - timeout-minutes: 10 - run: - cmake --build build --target install --parallel 2 - - - name: Test Install - timeout-minutes: 15 - shell: bash - run: | - source /usr/share/modules/init/$(basename ${SHELL}) - module use /opt/rocprofiler-systems/share/modulefiles - module avail - module load rocprofiler-systems - ./scripts/test-install.sh --test-rocprof-sys-{instrument,avail,sample,rewrite,runtime}=1 --test-rocprof-sys-python=${{ matrix.python }} - - - 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 - - ubuntu-focal-external-rocm: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++'] - rocm-version: ['6.3'] - mpi-headers: ['OFF'] - build-jobs: ['3'] - ctest-exclude: ['-LE "transpose|videodecode|jpegdecode|network"'] - - env: - BUILD_TYPE: MinSizeRel - OMPI_ALLOW_RUN_AS_ROOT: 1 - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - - 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 wget gnupg2 && - 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/focal/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 autoconf bison build-essential clang curl gettext libfabric-dev libnuma1 libomp-dev libopenmpi-dev libpapi-dev libtool libudev1 m4 openmpi-bin python3-pip rocm-dev texinfo && - apt-get install -y rocdecode-dev libavformat-dev libavcodec-dev && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - - name: Configure Env - run: | - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV - echo "CMAKE_PREFIX_PATH=/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - cat << EOF > test-install.cfg - ROCPROFSYS_PROFILE = ON - ROCPROFSYS_TRACE = ON - ROCPROFSYS_USE_PID = OFF - ROCPROFSYS_USE_SAMPLING = OFF - ROCPROFSYS_USE_PROCESS_SAMPLING = OFF - ROCPROFSYS_COUT_OUTPUT = ON - ROCPROFSYS_TIME_OUTPUT = OFF - ROCPROFSYS_TIMEMORY_COMPONENTS = cpu_clock cpu_util current_peak_rss kernel_mode_time monotonic_clock monotonic_raw_clock network_stats num_io_in num_io_out num_major_page_faults num_minor_page_faults page_rss peak_rss priority_context_switch process_cpu_clock process_cpu_util read_bytes read_char system_clock thread_cpu_clock thread_cpu_util timestamp trip_count user_clock user_mode_time virtual_memory voluntary_context_switch wall_clock written_bytes written_char - ROCPROFSYS_OUTPUT_PATH = rocprofsys-tests-output - ROCPROFSYS_OUTPUT_PREFIX = %tag%/ - ROCPROFSYS_DEBUG = OFF - ROCPROFSYS_VERBOSE = 3 - ROCPROFSYS_DL_VERBOSE = 3 - ROCPROFSYS_PERFETTO_BACKEND = system - EOF - realpath test-install.cfg - cat test-install.cfg - - - name: Configure, Build, and Test - timeout-minutes: 115 - shell: bash - run: - git config --global --add safe.directory ${PWD} && - cmake --version && - TAG="-rocm-${{ matrix.rocm-version }}" && - TAG="$(echo ${TAG} | sed 's/debian/latest/g')" && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-rocm-${{ 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=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_BUILD_DEVELOPER=ON - -DROCPROFSYS_BUILD_EXTRA_OPTIMIZATIONS=OFF - -DROCPROFSYS_BUILD_LTO=OFF - -DROCPROFSYS_USE_MPI=OFF - -DROCPROFSYS_USE_ROCM=ON - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_USE_PAPI=OFF - -DROCPROFSYS_USE_OMPT=OFF - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_USE_SANITIZER=OFF - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_CI_MPI_RUN_AS_ROOT=${{ matrix.mpi-headers }} - -DROCPROFSYS_CI_GPU=OFF - -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - ${{ matrix.ctest-exclude }} - - - name: Install - run: - cmake --build build --target install --parallel 2 - - - name: Test Install - timeout-minutes: 15 - shell: bash - run: | - source /opt/rocprofiler-systems/share/rocprofiler-systems/setup-env.sh - ./scripts/test-install.sh --test-rocprof-sys-{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/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: | - rocprofsys-tests-output/**/*.txt - 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 - - ubuntu-focal-codecov: - runs-on: ubuntu-latest - - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-20.04 - options: --cap-add CAP_SYS_ADMIN - - env: - ROCPROFSYS_VERBOSE: 2 - ROCPROFSYS_CAUSAL_BACKEND: perf - - 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 autoconf bison build-essential clang environment-modules gcc g++ libmpich-dev libomp-dev libtool m4 mpich python3-pip texinfo && - wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v47.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 --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done && - apt-get -y --purge autoremove && - apt-get -y clean && - /opt/conda/bin/conda clean -y -a - - - name: Configure Env - run: - echo "${HOME}/.local/bin" >> $GITHUB_PATH - - - name: Configure, Build, and Test - timeout-minutes: 115 - shell: bash - run: - git config --global --add safe.directory ${PWD} && - cmake --version && - python3 ./scripts/run-ci.py -B build - --name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-codecov-mpi-python-ompt-papi - --build-jobs 2 - --site GitHub - --coverage - -- - -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-systems - -DROCPROFSYS_BUILD_CI=OFF - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_BUILD_DYNINST=ON - -DROCPROFSYS_BUILD_BOOST=ON - -DROCPROFSYS_BUILD_TBB=ON - -DROCPROFSYS_BUILD_ELFUTILS=ON - -DROCPROFSYS_BUILD_LIBIBERTY=ON - -DROCPROFSYS_BUILD_DEBUG=OFF - -DROCPROFSYS_BUILD_HIDDEN_VISIBILITY=OFF - -DROCPROFSYS_USE_MPI=ON - -DROCPROFSYS_USE_PYTHON=ON - -DROCPROFSYS_USE_OMPT=ON - -DROCPROFSYS_USE_PAPI=ON - -DROCPROFSYS_USE_ROCM=OFF - -DROCPROFSYS_USE_RCCL=OFF - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;videodecode;jpegdecode;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-jammy.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-jammy.yml deleted file mode 100644 index 02a21ec52d..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/ubuntu-jammy.yml +++ /dev/null @@ -1,381 +0,0 @@ -name: Ubuntu 22.04 (GCC, Python, ROCm) -run-name: ubuntu-jammy - -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/**' - - .wordlist.txt - - CMakePresets.json - 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/**' - - .wordlist.txt - - CMakePresets.json - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - ROCPROFSYS_CI: ON - ROCPROFSYS_TMPDIR: "%env{PWD}%/testing-tmp" - -jobs: - ubuntu-jammy-external: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-22.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++-11', 'g++-12'] - rocm: ['OFF'] - mpi: ['OFF'] - ompt: ['OFF'] - papi: ['OFF'] - python: ['ON'] - strip: ['OFF'] - hidden: ['ON', 'OFF'] - build-type: ['Release'] - mpi-headers: ['ON', 'OFF'] - build-dyninst: ['ON'] - rocm-version: ['0.0'] - - env: - OMPI_ALLOW_RUN_AS_ROOT: 1 - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - 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 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 }} && - python3 -m pip install --upgrade pip && - python3 -m pip install --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done - - - 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.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.strip }} strip && - append-tagname ${{ matrix.hidden }} hidden-viz && - 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/rocprofiler-systems-dev - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_USE_MPI=${{ matrix.mpi }} - -DROCPROFSYS_USE_ROCM=${{ matrix.rocm }} - -DROCPROFSYS_USE_OMPT=${{ matrix.ompt }} - -DROCPROFSYS_USE_PAPI=${{ matrix.papi }} - -DROCPROFSYS_USE_PYTHON=${{ matrix.python }} - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_BUILD_DYNINST=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_BOOST=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_TBB=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_ELFUTILS=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_LIBIBERTY=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_HIDDEN_VISIBILITY=${{ matrix.hidden }} - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_STRIP_LIBRARIES=${{ matrix.strip }} - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -DUSE_CLANG_OMP=OFF - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" - - - 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 with Modulefile - timeout-minutes: 15 - shell: bash - run: | - set -v - source /usr/share/modules/init/$(basename ${SHELL}) - module use /opt/rocprofiler-systems/share/modulefiles - module avail - module load rocprofiler-systems - ./scripts/test-install.sh --test-rocprof-sys-{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/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 - - ubuntu-jammy-external-rocm: - runs-on: ubuntu-latest - container: - image: dgaliffiamd/rocprofiler-systems:ci-base-ubuntu-22.04 - strategy: - fail-fast: false - matrix: - compiler: ['g++'] - rocm: ['ON'] - mpi: ['OFF'] - ompt: ['OFF'] - papi: ['OFF'] - python: ['ON'] - strip: ['OFF'] - hidden: ['ON'] - build-type: ['Release'] - mpi-headers: ['OFF'] - build-dyninst: ['ON'] - rocm-version: ['6.3', '6.4'] - - env: - OMPI_ALLOW_RUN_AS_ROOT: 1 - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - 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 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 }} && - python3 -m pip install --upgrade pip && - python3 -m pip install --upgrade numpy perfetto dataclasses && - python3 -m pip install 'cmake==3.21' && - for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade numpy perfetto dataclasses; done - - - name: Install ROCm Packages - timeout-minutes: 25 - uses: nick-fields/retry@v3 - with: - retry_wait_seconds: 30 - timeout_minutes: 25 - max_attempts: 5 - shell: bash - command: | - 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/jammy/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 rocdecode-dev libavformat-dev libavcodec-dev - 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.rocm }} 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.strip }} strip && - append-tagname ${{ matrix.hidden }} hidden-viz && - 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/rocprofiler-systems-dev - -DROCPROFSYS_BUILD_TESTING=ON - -DROCPROFSYS_USE_MPI=${{ matrix.mpi }} - -DROCPROFSYS_USE_ROCM=${{ matrix.rocm }} - -DROCPROFSYS_USE_OMPT=${{ matrix.ompt }} - -DROCPROFSYS_USE_PAPI=${{ matrix.papi }} - -DROCPROFSYS_USE_PYTHON=${{ matrix.python }} - -DROCPROFSYS_USE_MPI_HEADERS=${{ matrix.mpi-headers }} - -DROCPROFSYS_BUILD_DYNINST=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_BOOST=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_TBB=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_ELFUTILS=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_LIBIBERTY=${{ matrix.build-dyninst }} - -DROCPROFSYS_BUILD_HIDDEN_VISIBILITY=${{ matrix.hidden }} - -DROCPROFSYS_PYTHON_PREFIX=/opt/conda/envs - -DROCPROFSYS_PYTHON_ENVS="py3.7;py3.8;py3.9;py3.10;py3.11" - -DROCPROFSYS_STRIP_LIBRARIES=${{ matrix.strip }} - -DROCPROFSYS_MAX_THREADS=64 - -DROCPROFSYS_DISABLE_EXAMPLES="transpose;rccl;openmp-target" - -DROCPROFSYS_BUILD_NUMBER=${{ github.run_attempt }} - -DUSE_CLANG_OMP=OFF - -- - -LE "transpose|rccl|videodecode|jpegdecode|network" - - - 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 with Modulefile - timeout-minutes: 15 - shell: bash - run: | - set -v - source /usr/share/modules/init/$(basename ${SHELL}) - module use /opt/rocprofiler-systems/share/modulefiles - module avail - module load rocprofiler-systems - ./scripts/test-install.sh --test-rocprof-sys-{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/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 \ No newline at end of file diff --git a/projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml b/projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml deleted file mode 100644 index 1eaf4d0c50..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/weekly-mainline-sync.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Sync Mainline with Staging -on: - workflow_dispatch: - -jobs: - promote-stg-to-main: - if: github.repository == 'ROCm/rocprofiler-systems' - runs-on: ubuntu-latest - name: Promote Staging to Mainline - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: amd-mainline - fetch-depth: '0' - - - name: Merge - Fast Forward Only - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git checkout amd-mainline - git checkout -b promote-staging-$(date +%F) - git merge --ff-only origin/amd-staging - git push -u origin HEAD - gh pr create --base amd-mainline --title "Promote \`amd-staging\` to \`amd-mainline\`" --fill --label "automerge" diff --git a/projects/rocprofiler-systems/README.md b/projects/rocprofiler-systems/README.md index 8e81fb6a2a..525d82f832 100755 --- a/projects/rocprofiler-systems/README.md +++ b/projects/rocprofiler-systems/README.md @@ -1,6 +1,5 @@ # ROCm Systems Profiler: Application profiling, tracing, and analysis -[![Ubuntu 20.04 with GCC, ROCm, and MPI](https://github.com/ROCm/rocprofiler-systems/actions/workflows/ubuntu-focal.yml/badge.svg)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/ubuntu-focal.yml) [![Ubuntu 22.04 (GCC, Python, ROCm)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/ubuntu-jammy.yml/badge.svg)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/ubuntu-jammy.yml) [![OpenSUSE 15.x with GCC](https://github.com/ROCm/rocprofiler-systems/actions/workflows/opensuse.yml/badge.svg)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/opensuse.yml) [![RedHat Linux (GCC, Python, ROCm)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/redhat.yml/badge.svg)](https://github.com/ROCm/rocprofiler-systems/actions/workflows/redhat.yml) diff --git a/projects/rocprofiler-systems/docker/Dockerfile.ubuntu.ci b/projects/rocprofiler-systems/docker/Dockerfile.ubuntu.ci index 55e5f4a385..2bdda3b1c3 100644 --- a/projects/rocprofiler-systems/docker/Dockerfile.ubuntu.ci +++ b/projects/rocprofiler-systems/docker/Dockerfile.ubuntu.ci @@ -28,7 +28,8 @@ RUN apt-get update && \ apt-get install -y autoconf autotools-dev bash-completion bison build-essential \ bzip2 chrpath cmake curl environment-modules flex gettext git-core gnupg2 \ gzip iproute2 libiberty-dev libpapi-dev libpfm4-dev libsqlite3-dev libtool \ - locales lsb-release m4 ninja-build python3-pip texinfo unzip wget vim zip zlib1g-dev && \ + locales lsb-release m4 ninja-build python3-pip software-properties-common \ + texinfo unzip wget vim zip zlib1g-dev && \ apt-get autoclean && \ if [ "${OS_VERSION}" == "24.04" ]; then \ python3 -m pip install --break-system-packages 'cmake==3.21' perfetto \ diff --git a/projects/rocprofiler-systems/docker/build-docker-release.sh b/projects/rocprofiler-systems/docker/build-docker-release.sh index 30d1ca700d..babc09d643 100755 --- a/projects/rocprofiler-systems/docker/build-docker-release.sh +++ b/projects/rocprofiler-systems/docker/build-docker-release.sh @@ -39,8 +39,8 @@ usage() echo "" echo "Usage: ${BASH_SOURCE[0]} -- " echo " e.g:" - echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 20.04 --rocm-versions 5.0 5.1 -- --core +nopython --rocm-mpi +nopython" - echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 20.04 --python-version 6 7 8 9 10 -- --rocm +python --rocm-mpi +nopython" + echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 22.04 --rocm-versions 6.4 6.3 -- --core +nopython --rocm-mpi +nopython" + echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 22.04 --python-version 6 7 8 9 10 -- --rocm +python --rocm-mpi +nopython" } send-error() @@ -98,8 +98,8 @@ reset-last : ${USER:=$(whoami)} : ${DISTRO:=ubuntu} -: ${VERSIONS:=22.04 20.04} -: ${ROCM_VERSIONS:=5.0 4.5 4.3} +: ${VERSIONS:=22.04} +: ${ROCM_VERSIONS:=6.4 6.3} : ${MPI:=0} : ${PYTHON_VERSIONS:="6 7 8 9 10 11 12 13"} : ${RETRY:=3} diff --git a/projects/rocprofiler-systems/docker/build-docker.sh b/projects/rocprofiler-systems/docker/build-docker.sh index c0b172118b..e138ae1ed7 100755 --- a/projects/rocprofiler-systems/docker/build-docker.sh +++ b/projects/rocprofiler-systems/docker/build-docker.sh @@ -5,7 +5,7 @@ set-user-defaults() : ${USER:=$(whoami)} : ${ROCM_VERSIONS:="6.3"} : ${DISTRO:=ubuntu} - : ${VERSIONS:=20.04} + : ${VERSIONS:=22.04} : ${PYTHON_VERSIONS:="6 7 8 9 10 11 12 13"} : ${BUILD_CI:=""} : ${PUSH:=0} @@ -26,7 +26,7 @@ declare -a MATRIX_ROCM_VERSIONS=() load-matrix() { - local workflow_file=".github/workflows/containers.yml" + local workflow_file="$(git rev-parse --show-toplevel)/.github/workflows/rocprofiler-systems-containers.yml" if [ ! -f "${workflow_file}" ]; then echo -e "\n Error: Cannot find ${workflow_file}" exit 1 @@ -336,9 +336,6 @@ do 22.04) ROCM_REPO_DIST="jammy" ;; - 20.04) - ROCM_REPO_DIST="focal" - ;; *) ;; esac diff --git a/projects/rocprofiler-systems/docker/test-docker-release.sh b/projects/rocprofiler-systems/docker/test-docker-release.sh index ac1b7c3fa8..ae1cf05cfe 100755 --- a/projects/rocprofiler-systems/docker/test-docker-release.sh +++ b/projects/rocprofiler-systems/docker/test-docker-release.sh @@ -37,7 +37,7 @@ usage() echo "" echo "Usage: ${BASH_SOURCE[0]} -- " echo " e.g:" - echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 20.04 --rocm-versions 5.0 5.1 -- --stgz /path/to/stgz/installer" + echo " ${BASH_SOURCE[0]} --distro ubuntu --versions 22.04 --rocm-versions 6.4 6.3 -- --stgz /path/to/stgz/installer" } send-error() @@ -70,7 +70,7 @@ reset-last : ${USER:=$(whoami)} : ${DISTRO:=ubuntu} -: ${VERSIONS:=22.04 20.04} +: ${VERSIONS:=22.04} : ${ROCM_VERSIONS:=6.2} n=0 diff --git a/projects/rocprofiler-systems/source/python/gui/source/gui.py b/projects/rocprofiler-systems/source/python/gui/source/gui.py index 638c2c1c70..115e717d5e 100644 --- a/projects/rocprofiler-systems/source/python/gui/source/gui.py +++ b/projects/rocprofiler-systems/source/python/gui/source/gui.py @@ -291,7 +291,6 @@ def build_causal_layout( filename, divChildren, ): - global file_timestamp global global_data global global_input_filters global workload_path