From bbcc77070b2662ba2cad458446da9dd758473545 Mon Sep 17 00:00:00 2001 From: Robert Cohn Date: Tue, 14 May 2024 14:19:55 -0400 Subject: [PATCH 1/4] GitHub: slack notification for RFCs (#481) --- .github/workflows/slack-pr.yaml | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/slack-pr.yaml diff --git a/.github/workflows/slack-pr.yaml b/.github/workflows/slack-pr.yaml new file mode 100644 index 000000000..4c5f3df7d --- /dev/null +++ b/.github/workflows/slack-pr.yaml @@ -0,0 +1,43 @@ +#=============================================================================== +# Copyright 2024 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#=============================================================================== + +name: Slack PR Notification +on: + # use pull_request_target to run on PRs from forks and have access to secrets + pull_request_target: + types: [labeled] + +env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} + channel: "onemkl" + +permissions: + pull-requests: read + +jobs: + rfc: + name: RFC Notification + runs-on: ubuntu-latest + # Trigger when labeling a PR with "RFC" + if: | + github.event.action == 'labeled' && + contains(toJson(github.event.pull_request.labels.*.name), '"RFC"') + steps: + - name: Notify Slack + uses: slackapi/slack-github-action@70cd7be8e40a46e8b0eced40b0de447bdb42f68e # v1.26.0 + with: + channel-id: ${{ env.channel }} + slack-message: "${{ github.actor }} posted a RFC: ${{ github.event.pull_request.title }}. URL: ${{ github.event.pull_request.html_url }}" From 78f77e72cc679291d9e38bb642a1eea6c7b8732b Mon Sep 17 00:00:00 2001 From: Maria Kraynyuk Date: Wed, 15 May 2024 11:38:27 -0700 Subject: [PATCH 2/4] README: add link to #onemkl slack channel (#492) Co-authored-by: Dai-Ni Hsieh --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index a9d4e7148..fb9cc4745 100644 --- a/README.md +++ b/README.md @@ -539,13 +539,11 @@ The oneMKL Interfaces project is governed by the UXL Foundation and you can get You can also join the mailing lists for the [UXL Foundation](https://lists.uxlfoundation.org/g/main/subgroups) to be informed of when meetings are happening and receive the latest information and discussions. -You can contribute to this project and also contribute to the specification for this project, read the [CONTRIBUTING](CONTRIBUTING.md) page for more information. - --- ## Contributing -See [CONTRIBUTING](CONTRIBUTING.md) for more information. +You can contribute to this project and also contribute to [the specification for this project](https://spec.oneapi.io/versions/latest/elements/oneMKL/source/index.html). Please read the [CONTRIBUTING](CONTRIBUTING.md) page for more information. You can also contact oneMKL developers and maintainers via [UXL Foundation Slack](https://slack-invite.uxlfoundation.org/) using [#onemkl](https://uxlfoundation.slack.com/archives/onemkl) channel. --- From ce52ba3f82a3d6eac100d99c9795e71a3de9de64 Mon Sep 17 00:00:00 2001 From: Robert Cohn Date: Thu, 16 May 2024 12:49:44 -0400 Subject: [PATCH 3/4] GitHub workflow for running unit tests for MKL backend on CPU (#483) Co-authored-by: Dai-Ni Hsieh --- .github/workflows/pr.yml | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/pr.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 000000000..072ee836c --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,58 @@ +name: "PR Tests" +permissions: read-all + +# Trigger for PR an merge to develop branch +on: + push: + branches: develop + pull_request: + workflow_dispatch: + +env: + CTEST_OUTPUT_ON_FAILURE: 1 + LAPACK_VERSION: 3.12.0 + PARALLEL: -j 2 + +jobs: + mkl: + runs-on: intel-ubuntu-latest + # One runner for each domain + strategy: + matrix: + domain: [blas, dft, lapack, rng] + name: MKL ${{ matrix.domain }} CPU + steps: + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + - name: Restore netlib from cache + id: cache-lapack + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 + with: + path: lapack/install + key: lapack-${{ env.LAPACK_VERSION }} + - name: Install netlib + if: steps.cache-lapack.outputs.cache-hit != 'true' + run: | + curl -sL https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACK_VERSION}.tar.gz | tar zx + SHARED_OPT="lapack-${LAPACK_VERSION} -DBUILD_SHARED_LIBS=on -DCBLAS=on -DLAPACKE=on -DCMAKE_INSTALL_PREFIX=${PWD}/lapack/install" + # 32 bit int + cmake ${SHARED_OPT} -B lapack/build32 + cmake --build lapack/build32 ${PARALLEL} --target install + # 64 bit int + cmake ${SHARED_OPT} -DBUILD_INDEX64=on -B lapack/build64 + cmake --build lapack/build64 ${PARALLEL} --target install + - name: Install oneapi + uses: rscohn2/setup-oneapi@2ad0cf6b74bc2426bdcee825cf88f9db719dd727 # v0.1.0 + with: + components: | + icx@2024.1.0 + mkl@2024.1.0 + - name: Configure/Build for a domain + run: | + source /opt/intel/oneapi/setvars.sh + cmake -DREF_BLAS_ROOT=${PWD}/lapack/install -DREF_LAPACK_ROOT=${PWD}/lapack/install -DENABLE_MKLGPU_BACKEND=off -DTARGET_DOMAINS=${{ matrix.domain }} -DCMAKE_VERBOSE_MAKEFILE=on -B build + cmake --build build ${PARALLEL} + - name: Run tests + run: | + source /opt/intel/oneapi/setvars.sh + # Run tests, skip GPU tests + ctest --test-dir build -j 1 -E 'ct$' From 81bc1bc49c55082dcbb89876fa4b0dea3c3a3563 Mon Sep 17 00:00:00 2001 From: Robert Cohn Date: Thu, 16 May 2024 14:41:46 -0500 Subject: [PATCH 4/4] github actions workflow for publishing documentation --- .github/workflows/documentation.yml | 52 +++++++++++++++++++++++++++++ gh-pages | 1 + 2 files changed, 53 insertions(+) create mode 100644 .github/workflows/documentation.yml create mode 160000 gh-pages diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 000000000..da25cba0d --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,52 @@ +name: Documentation +permissions: read-all + +# Trigger for PR or merge to develop branch +on: + push: + branches: develop + paths: + - 'docs/**' + pull_request: + paths: + - 'docs/**' + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + - name: Configure & Build + run: | + cmake -DCMAKE_VERBOSE_MAKEFILE=on -B build docs + cmake --build build + - uses: actions/upload-artifact@v2 + with: + name: docs + path: build/Documentation/html + + publish: + needs: build + if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/develop' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + with: + ref: gh-pages + path: gh-pages + - name: Remove old site + run: rm -rf gh-pages/* + - uses: actions/download-artifact@v2 + with: + name: docs + path: gh-pages + - name: Push to GitHub Pages + run: | + cd gh-pages + touch .nojekyll + git add . + git config --global user.name "GitHub Actions" + git config --global user.email github-actions@github.com + git commit -m "Update documentation" + git push --force origin gh-pages diff --git a/gh-pages b/gh-pages new file mode 160000 index 000000000..445cf91ca --- /dev/null +++ b/gh-pages @@ -0,0 +1 @@ +Subproject commit 445cf91ca793e00a545a914d92e232bebf531845