Support spmd knn search #1868
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 | |
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/ |