Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .ci/pipeline/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,21 @@ pool:

steps:
- script: |
set -euo pipefail
cd docs
sudo apt-get install python3-setuptools
sudo pip3 install -r requirements.txt
sudo apt-get update
sudo apt-get install python3-setuptools
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
sudo apt-get install doxygen
displayName: 'Install requirements'

- script: |
set -euo pipefail
cd docs
source venv/bin/activate
make html
displayName: 'Build documentation'

Expand Down
37 changes: 11 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,11 @@ concurrency:

jobs:
LinuxMakeDPCPP:
name: LinuxMakeDPCPP(AVX512)
if: github.repository == 'uxlfoundation/oneDAL'
runs-on: uxl-gpu-4xlarge
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
include:
- ISA: avx2
runner: ubuntu-24.04

runs-on: ${{ matrix.runner }}
name: LinuxMakeDPCPP(${{ matrix.ISA }})
steps:
- name: Checkout oneDAL
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
Expand All @@ -65,7 +59,6 @@ jobs:
source /opt/intel/oneapi/setvars.sh
.ci/scripts/describe_system.sh
- name: Set environment variables
if: matrix.runner != 'ubuntu-24.04'
run: |
# reduce GPU driver/runner related memory issues
echo "NEOReadDebugKeys=1" >> "$GITHUB_ENV"
Expand All @@ -75,41 +68,34 @@ jobs:
- 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
.ci/scripts/build.sh --compiler icx --optimizations avx512 --target daal --debug symbols --jobs 20
cp -r __work __work_daal
- 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
.ci/scripts/build.sh --compiler icx --optimizations avx512 --target onedal --debug symbols --jobs 20
cp -r __release_lnx __release_lnx_main
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
path: ./__release_lnx_main
- 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
.ci/scripts/build.sh --compiler icx --optimizations avx512 --target onedal --jobs 20
- name: daal/cpp examples
run: |
source /opt/intel/oneapi/setvars.sh
Expand All @@ -119,7 +105,6 @@ jobs:
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
Expand All @@ -129,13 +114,13 @@ jobs:
.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)
name: ABI Conformance(AVX512)
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
runs-on: uxl-xlarge
env:
LIBABIGAIL_DEFAULT_USER_SUPPRESSION_FILE: ${{ github.workspace }}/.github/.abignore
timeout-minutes: 20
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class DAAL_EXPORT Input : public daal::algorithms::Input
public:
Input();
Input(const Input & other);

Input & operator=(const Input & other);
virtual ~Input() {}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class DAAL_EXPORT Input : public kernel_function::Input
public:
Input();
Input(const Input & other);

Input & operator=(const Input & other);
virtual ~Input() {}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class DAAL_EXPORT Input : public kernel_function::Input
public:
Input();
Input(const Input & other);

Input & operator=(const Input & other);
virtual ~Input() {}

/**
Expand Down
44 changes: 44 additions & 0 deletions cpp/daal/include/services/cpu_type.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* file: cpu_type.h */
/*******************************************************************************
* 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.
*******************************************************************************/

#ifndef __CPU_TYPE_H__
#define __CPU_TYPE_H__

namespace daal
{
/**
* <a name="DAAL-ENUM-CPUTYPE"></a>
* Supported types of processor architectures
*/
enum CpuType
{
#if defined(TARGET_X86_64)
sse2 = 0, /*!< Intel(R) Streaming SIMD Extensions 2 (Intel(R) SSE2) */
sse42 = 2, /*!< Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) */
avx2 = 4, /*!< Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) */
avx512 = 6, /*!< Intel(R) Xeon(R) processors based on Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) */
lastCpuType = avx512
#elif defined(TARGET_ARM)
sve = 0, /*!< ARM(R) processors based on Arm's Scalable Vector Extension (SVE) */
lastCpuType = sve
#elif defined(TARGET_RISCV64)
rv64 = 0,
lastCpuType = rv64
#endif
};
} // namespace daal
#endif
11 changes: 11 additions & 0 deletions cpp/daal/include/services/daal_defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,17 @@ const int SERIALIZATION_DBSCAN_DISTRIBUTED_PARTIAL_RESULT_STEP13_ID = 121310;
#define DAAL_ASSERT_DECL(var)
#endif

#define DAAL_OVERFLOW_CHECK_BY_MULTIPLICATION_BOOL(type, op1, op2, result) \
{ \
result = false; \
if (!(0 == (op1)) && !(0 == (op2))) \
{ \
volatile type r = (op1) * (op2); \
r /= (op1); \
if (!(r == (op2))) result = true; \
} \
}

#define DAAL_OVERFLOW_CHECK_BY_MULTIPLICATION(type, op1, op2) \
{ \
if (!(0 == (op1)) && !(0 == (op2))) \
Expand Down
22 changes: 1 addition & 21 deletions cpp/daal/include/services/env_detect.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "services/base.h"
#include "services/daal_defines.h"
#include "services/error_handling.h"
#include "services/cpu_type.h"

namespace daal
{
Expand All @@ -37,27 +38,6 @@ namespace daal
* @ingroup services
* @{
*/
/**
* <a name="DAAL-ENUM-CPUTYPE"></a>
* Supported types of processor architectures
*/
enum CpuType
{
#if defined(TARGET_X86_64)
sse2 = 0, /*!< Intel(R) Streaming SIMD Extensions 2 (Intel(R) SSE2) */
sse42 = 2, /*!< Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) */
avx2 = 4, /*!< Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) */
avx512 = 6, /*!< Intel(R) Xeon(R) processors based on Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) */
lastCpuType = avx512
#elif defined(TARGET_ARM)
sve = 0, /*!< ARM(R) processors based on Arm's Scalable Vector Extension (SVE) */
lastCpuType = sve
#elif defined(TARGET_RISCV64)
rv64 = 0,
lastCpuType = rv64
#endif
};

namespace services
{
namespace interface1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#if defined(_WIN32) || defined(_WIN64)

#define NOMINMAX // Prevents Windows.h from defining min and max macros
#include <windows.h>
#include "services/daal_defines.h"

Expand Down
Loading