Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Support spmd knn search #1868

Support spmd knn search

Support spmd knn search #1868

Workflow file for this run

#===============================================================================
# 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
on:
pull_request:
branches:
- main
push:
branches:
- main
# use workflow dispatch to regenerate cache
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref_name }}-${{ github.event.number || github.sha }}
cancel-in-progress: true
jobs:
LinuxMakeDPCPP:
if: github.repository == 'uxlfoundation/oneDAL'
strategy:
fail-fast: false
matrix:
include:
- ISA: avx2
runner: ubuntu-24.04
runs-on: ${{ matrix.runner }}
name: LinuxMakeDPCPP(${{ matrix.ISA }})
timeout-minutes: 120
steps:
- name: Checkout oneDAL
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install DPC++
run: .ci/env/apt.sh dpcpp
- name: Install MKL
run: .ci/env/apt.sh mkl
- name: Install Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: 3.13
# Miniforge is necessary in order to get Intel MPI from conda-forge for MPI examples
- name: Install Miniforge
run: .ci/env/apt.sh miniforge
- name: System Info
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/describe_system.sh
- name: Set environment variables
run: |
# reduce GPU driver/runner related memory issues
echo "NEOReadDebugKeys=1" >> "$GITHUB_ENV"
echo "EnableRecoverablePageFaults=1" >> "$GITHUB_ENV"
echo "GpuFaultCheckThreshold=0" >> "$GITHUB_ENV"
- name: Make daal debug
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/build.sh --compiler icx --optimizations ${{ matrix.ISA }} --target daal --debug symbols --jobs 20
if [[ ${{ matrix.runner }} != ubuntu-24.04 ]];then cp -r __work __work_daal;fi
- name: Make onedal debug
id: onedal-dbg
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/build.sh --compiler icx --optimizations ${{ matrix.ISA }} --target onedal --debug symbols --jobs 20
# clean up build directory due to space limitations
rm -rf __work
echo "key=__release_lnx-$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
- name: Prepare Cache build
if: github.event_name != 'pull_request'
run: cp -r __release_lnx __release_lnx_main
- name: Cache build
if: github.event_name != 'pull_request'
uses: actions/cache/save@v4
with:
key: ${{ steps.onedal-dbg.outputs.key }}
path: ./__release_lnx_main
- name: Remove Cache build
if: github.event_name != 'pull_request'
run: rm -rf __release_lnx_main
- name: Archive build
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: __release_lnx
path: ./__release_lnx
- name: Make onedal
if: matrix.runner != 'ubuntu-24.04'
run: |
# generate new onedal portion for use in examples testing (due to issues with dpc debug build)
source /opt/intel/oneapi/setvars.sh
rm -rf __work
mv __work_daal __work
.ci/scripts/build.sh --compiler icx --optimizations ${{ matrix.ISA }} --target onedal --jobs 20
- name: daal/cpp examples
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/test.sh --test-kind examples --build-dir __release_lnx --compiler icx --interface daal/cpp --build-system cmake
- name: oneapi/cpp examples
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/test.sh --test-kind examples --build-dir __release_lnx --compiler icx --interface oneapi/cpp --build-system cmake
- name: oneapi/dpc examples
if: matrix.runner != 'ubuntu-24.04'
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/test.sh --test-kind examples --build-dir __release_lnx --compiler icx --interface oneapi/dpc --build-system cmake
- name: daal/cpp/mpi examples
run: |
source /opt/intel/oneapi/setvars.sh
.ci/scripts/test.sh --test-kind samples --build-dir __release_lnx --compiler gnu --interface daal/cpp/mpi --conda-env ci-env --build-system cmake
LinuxABICheck:
name: ABI Conformance(avx2)
needs: LinuxMakeDPCPP
if: |
github.repository == 'uxlfoundation/oneDAL' &&
github.event_name == 'pull_request' &&
! contains(toJson(github.event.pull_request.labels.*.name), '"API/ABI breaking change"')
runs-on: ubuntu-24.04
env:
LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE: ${{ github.workspace }}/.github/.abignore
timeout-minutes: 20
steps:
- name: Checkout oneDAL
uses: actions/checkout@v5
- name: install ABI checking tools
run: .ci/env/apt.sh abigail
- name: Check Cache
id: get-cache-key
run: |
CACHE_KEY=`gh cache list --sort created_at --key __release_lnx --json key --jq .[0].key`
echo "key=${CACHE_KEY}" >> "$GITHUB_OUTPUT"
echo $CACHE_KEY
env:
GH_TOKEN: ${{ github.token }}
- name: Download oneDAL main build
uses: actions/cache/restore@v4
with:
path: ./__release_lnx_main
key: ${{ steps.get-cache-key.outputs.key }}
- name: Download oneDAL build artifact
uses: actions/download-artifact@v5
with:
name: __release_lnx
path: ./__release_lnx
- name: Check ABI conformance
run: |
echo "Note: This check uses abidiff to verify ABI compliance of an SSE/AVX512 debug oneDAL build."
echo "It compares to the last completed main build, whose commit can be found in the 'Check Cache' step."
echo "The ABI for other ISAs are assumed to match the SSE or AVX512 version, any ISA-specific exported "
echo "information that is ISA unique must be manually checked. If no shared objects are found, then "
echo "please rerun the main 'CI' workflow via GitHub's workflow dispatch to regenerate the cache."
echo "Keep the branch up to date with oneDAL 'main' as it may otherwise not contain the latest changes "
echo "in the ABI that can lead to erroneous failures in the ABI check."
.ci/scripts/abi_check.sh __release_lnx_main/daal/latest/lib/intel64/ __release_lnx/daal/latest/lib/intel64/