enh: add cpu distirbuted support #1527
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #=============================================================================== | |
| # Copyright contributors to the oneDAL project | |
| # | |
| # 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: "CI AArch64" | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| push: | |
| branches: | |
| - main | |
| env: | |
| DEP_DIR: ${{ github.workspace }}/__deps | |
| TBB_VERSION: v2022.2.0 | |
| OPENBLAS_VERSION: v0.3.29 | |
| OPENRNG_VERSION: 'v24.04' | |
| # Stop stale workflows when pull requests are updated: https://stackoverflow.com/a/70972844 | |
| # Does not apply to the main branch. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name }}-${{ github.event.number || github.sha }} | |
| cancel-in-progress: true | |
| # Declare default permissions as read only. | |
| permissions: read-all | |
| jobs: | |
| build-and-test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ | |
| { name: GitHub hosted, label: ubuntu-24.04-arm, cxx: gnu }, | |
| { name: Arm hosted, label: ah-ubuntu_24_04-c6g_2x-50, cxx: clang } | |
| ] | |
| name: LinuxMake${{ matrix.os.cxx }}_OpenBLAS(SVE)-${{ matrix.os.name }} | |
| if: github.repository == 'uxlfoundation/oneDAL' | |
| runs-on: ${{ matrix.os.label }} | |
| steps: | |
| # Faster builds where possible. Fix version of CMake and Ninja. | |
| # Note: This will create a github actions cache | |
| - name: Get CMake and Ninja | |
| uses: lukka/get-cmake@628dd514bed37cb0a609e84a6186cbbaa2fc0140 # v4.1.2 | |
| with: | |
| cmakeVersion: 3.31.0 | |
| ninjaVersion: 1.12.0 | |
| - name: Checkout oneDAL | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| - name: Checkout oneTBB | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: uxlfoundation/oneTBB | |
| ref: ${{ env.TBB_VERSION }} | |
| path: ${{ github.workspace }}/__work/onetbb-src | |
| - name: Checkout openBLAS | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: OpenMathLib/OpenBLAS | |
| ref: ${{ env.OPENBLAS_VERSION }} | |
| path: ${{ github.workspace }}/__work/openblas | |
| - name: Build oneTBB | |
| run: | | |
| .ci/env/tbb.sh | |
| echo "TBBROOT=${{ github.workspace }}/__deps/tbb-aarch64" >> "$GITHUB_ENV" | |
| # TODO: Cache openBLAS | |
| - name: Build openBLAS | |
| run: | | |
| .ci/env/openblas.sh | |
| - name: Install compiler | |
| if: matrix.os.cxx == 'clang' | |
| run: .ci/env/apt.sh llvm-version 18 | |
| - name: System Info | |
| run: .ci/scripts/describe_system.sh | |
| - name: make daal | |
| run: | | |
| .ci/scripts/build.sh --compiler ${{ matrix.os.cxx }} --optimizations sve --target daal --backend-config ref --tbb-dir $TBBROOT --blas-dir ./__deps/openblas_aarch64 | |
| - name: make onedal_c | |
| run: | | |
| .ci/scripts/build.sh --compiler ${{ matrix.os.cxx }} --optimizations sve --target onedal_c --backend-config ref --tbb-dir $TBBROOT --blas-dir ./__deps/openblas_aarch64 | |
| - name: daal/cpp examples | |
| run: | | |
| echo "::warning::This step is designed to always pass, please look for more details" | |
| # timeout added due to hanging enable_thread_pinning example, and should be removed when fixed | |
| timeout 12m .ci/scripts/test.sh --test-kind examples --build-dir __release_lnx_${{ matrix.os.cxx }} --compiler ${{ matrix.os.cxx }} --interface daal/cpp --build-system cmake --backend ref || true | |
| env: | |
| CMAKE_GENERATOR: Ninja | |
| - name: oneapi/cpp examples | |
| run: | | |
| echo "::warning::This step is designed to always pass, please look for more details" | |
| .ci/scripts/test.sh --test-kind examples --build-dir __release_lnx_${{ matrix.os.cxx }} --compiler ${{ matrix.os.cxx }} --interface oneapi/cpp --build-system cmake --backend ref || true | |
| env: | |
| CMAKE_GENERATOR: Ninja | |
| openrng-build-and-test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ | |
| { name: GitHub hosted, label: ubuntu-24.04-arm, cxx: gnu } | |
| ] | |
| name: LinuxMake${{ matrix.os.cxx }}_OpenBLAS(SVE)_OpenRNG_${{ matrix.os.name }} | |
| runs-on: ${{ matrix.os.label }} | |
| steps: | |
| # Faster builds where possible. Fix version of CMake and Ninja. | |
| # Note: This will create a github actions cache | |
| - name: Get CMake and Ninja | |
| uses: lukka/get-cmake@628dd514bed37cb0a609e84a6186cbbaa2fc0140 # v4.1.2 | |
| with: | |
| cmakeVersion: 3.31.0 | |
| ninjaVersion: 1.12.0 | |
| - name: Checkout oneDAL | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| - name: Checkout oneTBB | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: uxlfoundation/oneTBB | |
| ref: ${{ env.TBB_VERSION }} | |
| path: ${{ github.workspace }}/__work/onetbb-src | |
| - name: Checkout openBLAS | |
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| repository: OpenMathLib/OpenBLAS | |
| ref: ${{ env.OPENBLAS_VERSION }} | |
| path: ${{ github.workspace }}/__work/openblas | |
| - name: Build oneTBB | |
| run: | | |
| .ci/env/tbb.sh | |
| echo "TBBROOT=${{ github.workspace }}/__deps/tbb-aarch64" >> "$GITHUB_ENV" | |
| # TODO: Cache openBLAS | |
| - name: Build openBLAS | |
| run: | | |
| .ci/env/openblas.sh | |
| - name: Build openRNG | |
| run: | | |
| .ci/env/openrng.sh --version ${{ env.OPENRNG_VERSION }} | |
| - name: System Info | |
| run: .ci/scripts/describe_system.sh | |
| - name: make daal | |
| run: | | |
| .ci/scripts/build.sh --compiler ${{ matrix.os.cxx }} --optimizations sve --target daal --backend-config ref --tbb-dir $TBBROOT --blas-dir ./__deps/openblas_aarch64 --use-openrng yes | |
| - name: make onedal_c | |
| run: | | |
| .ci/scripts/build.sh --compiler ${{ matrix.os.cxx }} --optimizations sve --target onedal_c --backend-config ref --tbb-dir $TBBROOT --blas-dir ./__deps/openblas_aarch64 --use-openrng yes | |
| - name: daal/cpp examples | |
| run: | | |
| echo "::warning::This step is designed to always pass, please check logs for more details" | |
| # timeout added due to hanging enable_thread_pinning example, and should be removed when fixed | |
| timeout 12m .ci/scripts/test.sh --test-kind examples --build-dir __release_lnx_${{ matrix.os.cxx }} --compiler ${{ matrix.os.cxx }} --interface daal/cpp --build-system cmake --backend ref --rng-backend openrng || true | |
| env: | |
| CMAKE_GENERATOR: Ninja | |
| - name: oneapi/cpp examples | |
| run: | | |
| echo "::warning::This step is designed to always pass, please check logs for more details" | |
| # excludes examples from EXCLUDE_LIST present in examples/daal/cpp/CMakeLists.txt | |
| .ci/scripts/test.sh --test-kind examples --build-dir __release_lnx_${{ matrix.os.cxx }} --compiler ${{ matrix.os.cxx }} --interface oneapi/cpp --build-system cmake --backend ref --rng-backend openrng || true | |
| env: | |
| CMAKE_GENERATOR: Ninja | |
| # This job adds a check named "CI AArch64" that represents overall | |
| # workflow status and can be used in branch rulesets. This is useful when | |
| # running a matrix CI, and allows changing the CI without needing to change | |
| # the overall required check name. | |
| status: | |
| needs: [build-and-test, openrng-build-and-test] | |
| runs-on: ubuntu-latest | |
| name: "CI AArch64" | |
| steps: | |
| - name: Print success | |
| run: echo Success |