Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP, CI, enhancement] enforce ABI checking of linux DPCPP build #3080

Draft
wants to merge 123 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
123 commits
Select commit Hold shift + click to select a range
3713c43
Update build.sh
icfaust Feb 18, 2025
8fac1f8
Update ci.yml
icfaust Feb 18, 2025
5a9c85f
Update ci.yml
icfaust Feb 18, 2025
90fb874
Update ci.yml
icfaust Feb 18, 2025
81fde9e
Update build.sh
icfaust Feb 18, 2025
b1387e6
Update test.sh
icfaust Feb 18, 2025
3ee4fc5
Update ci.yml
icfaust Feb 18, 2025
ae76647
Update test.sh
icfaust Feb 18, 2025
211f3e9
Update ci.yml
icfaust Feb 18, 2025
3986ec0
Update ci.yml
icfaust Feb 18, 2025
9e59cc7
Update ci.yml
icfaust Feb 18, 2025
8bd7424
Update ci.yml
icfaust Feb 18, 2025
8d32b11
Update ci.yml
icfaust Feb 18, 2025
f6ae134
Update makefile
icfaust Feb 19, 2025
c4842d5
Update build.sh
icfaust Feb 19, 2025
f3747b8
Update ci.yml
icfaust Feb 19, 2025
e4c3fa6
Update makefile
icfaust Feb 19, 2025
4c50a3c
Update build.sh
icfaust Feb 19, 2025
d9d165e
Update makefile
icfaust Feb 19, 2025
55c3675
Update makefile
icfaust Feb 19, 2025
0d53081
Update makefile
icfaust Feb 19, 2025
5e8138a
Update INSTALL.md
icfaust Feb 19, 2025
730ee27
Update ci.yml
icfaust Feb 19, 2025
a420fbe
Update ci.yml
icfaust Feb 19, 2025
bc22a40
Update ci.yml
icfaust Feb 19, 2025
594d745
Update ci.yml
icfaust Feb 19, 2025
49bacb1
Update ci.yml
icfaust Feb 19, 2025
b0ed506
Update ci.yml
icfaust Feb 19, 2025
5d9925e
Update ci.yml
icfaust Feb 19, 2025
70f97f0
add shell script
icfaust Feb 19, 2025
15e0728
missing whitespace
icfaust Feb 19, 2025
3115747
spelling mistake
icfaust Feb 19, 2025
16bcb6c
set file permissions
icfaust Feb 19, 2025
b053826
remove unwanted changes
icfaust Feb 19, 2025
f83c78d
Update abi_check.sh
icfaust Feb 20, 2025
07f662e
Update ci.yml
icfaust Feb 20, 2025
278fab6
add ignore file
icfaust Feb 20, 2025
f873fa3
Merge branch 'dev/ABI_verification' of https://github.com/icfaust/one…
icfaust Feb 20, 2025
f9cc5fc
fix CI and shell
icfaust Feb 20, 2025
4a63442
swap back
icfaust Feb 20, 2025
e643034
close bracket
icfaust Feb 20, 2025
ef86627
spy into variables
icfaust Feb 20, 2025
2b98449
fix if statement
icfaust Feb 20, 2025
e6cc863
change spy improve regex
icfaust Feb 20, 2025
c08046e
add suggestions
icfaust Feb 20, 2025
9769b7a
Update ci.yml
icfaust Feb 20, 2025
4591caa
Update ci.yml
icfaust Feb 20, 2025
1e3d2ab
Update daal_defines.h
icfaust Feb 20, 2025
c379e4a
Update makefile
icfaust Feb 20, 2025
23ee2f3
Update ci.yml
icfaust Feb 20, 2025
8d18883
Update ci.yml
icfaust Feb 20, 2025
c63ba0f
Update ci.yml
icfaust Feb 20, 2025
fab9bd0
Update ci.yml
icfaust Feb 20, 2025
b950b41
Update ci.yml
icfaust Feb 20, 2025
942b010
Update ci.yml
icfaust Feb 20, 2025
94add60
Update common.hpp
icfaust Feb 20, 2025
f52fc5a
Update makefile
icfaust Feb 20, 2025
a8de4d6
Update makefile
icfaust Feb 20, 2025
6ee5eb3
Update makefile
icfaust Feb 20, 2025
d23a68c
Update ci.yml
icfaust Feb 21, 2025
d8ddd4e
Update adaboost_predict_dense_default_batch_fpt_cpu.cpp
icfaust Feb 21, 2025
59930dd
Update adaboost_predict_dense_default_batch_fpt_cpu.cpp
icfaust Feb 21, 2025
37cfa57
Update adaboost_train_dense_default_batch_fpt_cpu.cpp
icfaust Feb 21, 2025
37501b3
Update adaboost_predict_dense_default_batch_fpt_cpu.cpp
icfaust Feb 21, 2025
eb503d5
Update adaboost_train_dense_default_batch_fpt_cpu.cpp
icfaust Feb 21, 2025
e2ad1ec
Update adaboost_train_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 21, 2025
8049b4b
Update compute_types.hpp
icfaust Feb 21, 2025
5abc73d
fix issues with partial, still leaves decision_tree nodes
icfaust Feb 21, 2025
fb1fd80
remove ONEDAL_EXPORT
icfaust Feb 21, 2025
a8a5eec
return change
icfaust Feb 21, 2025
b615d3d
further return
icfaust Feb 21, 2025
526c80b
fix another implicit instantiation
icfaust Feb 21, 2025
fc15691
fix node_info instantiation
icfaust Feb 21, 2025
93d11f6
Update adaboost_train_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 21, 2025
55c5fbf
Update adaboost_train_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 21, 2025
b8acd23
Update adaboost_train_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 21, 2025
f8f8bc5
Update adaboost_train_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 21, 2025
c4a27cf
fix stump too
icfaust Feb 21, 2025
bd1219e
attempt to define some missing things
icfaust Feb 21, 2025
2f0d4b2
move namespaces
icfaust Feb 21, 2025
af406e7
Update algorithm_container_base_batch.h
icfaust Feb 22, 2025
913eca0
Update algorithm_container_base_batch.h
icfaust Feb 22, 2025
7896fb2
Update ci.yml
icfaust Feb 22, 2025
75cfc7d
Update uniform_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 22, 2025
1822cfd
Update normal_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 22, 2025
81a1cd8
Update bernoulli_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 22, 2025
c051906
Update bernoulli_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 22, 2025
1e19229
fix engines
icfaust Feb 22, 2025
584b9b5
intermediate save
icfaust Feb 23, 2025
8aeb10d
formatting
icfaust Feb 23, 2025
76097c2
small fix
icfaust Feb 23, 2025
a595140
next batch
icfaust Feb 23, 2025
cdda243
missing newline
icfaust Feb 23, 2025
d4cb3b0
fix philox
icfaust Feb 23, 2025
4ecaf7f
full covariance fixes
icfaust Feb 23, 2025
738f65b
first attempt at linear
icfaust Feb 24, 2025
9367ccd
Update covariance_distributed.h
icfaust Feb 24, 2025
a687c99
attempt to fix windows
icfaust Feb 24, 2025
727ab0f
fixes for windows and elastic net
icfaust Feb 24, 2025
7426bd3
fix windows issues again
icfaust Feb 24, 2025
4e79820
further windows fixes
icfaust Feb 24, 2025
b9ad87d
svm + svd
icfaust Feb 24, 2025
eccc6b2
further windows fixes
icfaust Feb 24, 2025
5d780e7
more fixes
icfaust Feb 24, 2025
4a3b37b
kernel function solution
icfaust Feb 26, 2025
b0974c5
fix implicit_als
icfaust Feb 26, 2025
70d7bda
linear regression changes
icfaust Feb 26, 2025
788d089
low_order_moments
icfaust Feb 26, 2025
bbbb7d6
interim save point
icfaust Feb 26, 2025
6c1acf0
further updates
icfaust Feb 26, 2025
bd2287a
Update sgd_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 26, 2025
6d7fd34
pca + fixes
icfaust Feb 26, 2025
85b6d17
passing first examples
icfaust Feb 26, 2025
cb27c8b
final work
icfaust Feb 27, 2025
84ef6c1
attempt to see if this influences missing symbols
icfaust Feb 27, 2025
e2851be
Update coordinate_descent_dense_default_batch_fpt_dispatcher.cpp
icfaust Feb 27, 2025
338785c
fix DAAL_EXPORT
icfaust Feb 27, 2025
eef6c6e
clang fixes part 1
icfaust Feb 27, 2025
5d97007
another round of hell
icfaust Feb 27, 2025
da24721
further fixes for clang
icfaust Feb 27, 2025
d9b8e23
fixes on fixes
icfaust Feb 27, 2025
53416ff
further fixes for clang
icfaust Feb 27, 2025
4b76072
stopping point
icfaust Feb 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .ci/env/apt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,10 @@ function install_miniforge {
source /usr/share/miniconda/etc/profile.d/conda.sh
}

function install_abigail {
sudo apt-get install -y abigail-tools
}

if [ "${component}" == "dpcpp" ]; then
add_repo
install_dpcpp
Expand Down Expand Up @@ -143,6 +147,9 @@ elif [ "${component}" == "miniforge" ] ; then
install_miniforge
fi
install_dev-base-conda
elif [ "${component}" == "abigail" ] ; then
update
install_abigail
else
echo "Usage:"
echo " $0 [dpcpp|tbb|mkl|gnu-cross-compilers|clang-format|dev-base|qemu-apt|qemu-deb|llvm-version|build-sysroot|miniforge]"
Expand Down
32 changes: 32 additions & 0 deletions .ci/scripts/abi_check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#! /bin/bash
#===============================================================================
# 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.
#===============================================================================

ci_dir=$(dirname $(dirname $(dirname "${BASH_SOURCE[0]}")))
cd $ci_dir

# relative paths must be made from the oneDAL repo root
main_release_dir=$1
release_dir=$2

echo Shared Library ABI Conformance
solibs=($(ls $main_release_dir/lib*.so))
for i in "${solibs[@]}"
do
name=$(basename $i)
echo "--------${name}--------"
abidiff $i $release_dir/$name
done
8 changes: 8 additions & 0 deletions .ci/scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ show_help() {
--tbb-dir:The TBB installation directory to use to build oneDAL with in the case that the backend is given as `ref`. If the installation directory does not exist, attempts to build this from source
--use-openrng:Set this to yes if openrng is to be used as RNG backend. Use this only with the `ref` backend.
--sysroot:The sysroot to use, in the case that clang is used as the cross-compiler
--debug:Set build debug mode flag
'
}

Expand Down Expand Up @@ -76,6 +77,9 @@ while [[ $# -gt 0 ]]; do
--use-openrng)
use_openrng="$2"
shift;;
--debug)
use_debug="$2"
shift;;
--help)
show_help
exit 0
Expand Down Expand Up @@ -247,6 +251,10 @@ if [ "${use_openrng}" == "yes" ]; then
make_options+=(RNG_BACKEND=openrng)
fi

if [ -n "${use_debug}" ]; then
make_options+=(REQDBG="${use_debug}")
fi

echo "Calling make"
echo "CXX=$CXX"
echo "CC=$CC"
Expand Down
8 changes: 7 additions & 1 deletion .ci/scripts/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ while [[ $# -gt 0 ]]; do
--cross-compile)
cross_compile="yes"
;;
--jobs)
jobs="$2"
shift
;;
--help)
show_help_text
exit 0
Expand Down Expand Up @@ -133,7 +137,9 @@ else
exit 1
fi

if [ "$(uname)" == "Linux" ]; then
if [[ -n "${jobs}" ]]; then
make_op="-j${jobs}"
elif [ "$(uname)" == "Linux" ]; then
make_op="-j$(nproc --all)"
else
make_op="-j$(sysctl -n hw.physicalcpu)"
Expand Down
51 changes: 51 additions & 0 deletions .github/.abignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
;
; 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.
;

;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; DAAL DESELECTIONS ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; deselect daal::internal namespace
[suppress_type]
name_regexp = daal::internal::.*

[suppress_variable]
name_regexp = daal::internal::.*

[suppress_function]
name_regexp = daal::internal::.*

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; oneDAL DESELECTIONS ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; deselect oneapi::dal backend namespaces
[suppress_type]
name_regexp = oneapi::dal::.*backend::.*

[suppress_variable]
name_regexp = oneapi::dal::.*backend::.*

[suppress_function]
name_regexp = oneapi::dal::.*backend::.*

; deselect oneapi::dal detail namespaces
[suppress_type]
name_regexp = oneapi::dal::.*detail::.*

[suppress_variable]
name_regexp = oneapi::dal::.*detail::.*

[suppress_function]
name_regexp = oneapi::dal::.*detail::.*
46 changes: 45 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ concurrency:

jobs:
LinuxMakeDPCPP:
name: LinuxMakeDPCPP
name: LinuxMakeDPCPP(AVX2)
if: github.repository == 'uxlfoundation/oneDAL'
runs-on: uxl-gpu-4xlarge
timeout-minutes: 120
Expand Down Expand Up @@ -90,3 +90,47 @@ jobs:
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
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@v4
- name: install ABI checking tools
run: .ci/env/apt.sh abigail
- name: Get run ID of "CI" workflow
id: get-run-id
run: |
OTHER_REPO="uxlfoundation/oneDAL"
WF_NAME="CI"
JQ_QUERY='map(select(.event == "push")) | .[0].databaseId'
RUN_ID=`gh run --repo ${OTHER_REPO} list --workflow "${WF_NAME}" --json databaseId,event --status success --jq "${JQ_QUERY}"`
echo "Detected latest run id of ${RUN_ID} for workflow ${WF_NAME}"
echo "run-id=${RUN_ID}" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ github.token }}
- name: Download oneDAL main build artifact
uses: actions/download-artifact@v4
with:
name: __release_lnx
github-token: ${{ github.token }}
repository: uxlfoundation/oneDAL
run-id: ${{ steps.get-run-id.outputs.run-id }}
path: ./__release_lnx_main
- name: Download oneDAL build artifact
uses: actions/download-artifact@v4
with:
name: __release_lnx
path: ./__release_lnx
- name: Check ABI conformance
run: .ci/scripts/abi_check.sh __release_lnx_main/daal/latest/lib/intel64/ __release_lnx/daal/latest/lib/intel64/
6 changes: 5 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,10 +155,14 @@ It is possible to build oneDAL libraries with selected set of algorithms and/or

On **Linux\*** it is possible to build debug version of oneDAL or the version that allows to do kernel profiling using <ittnotify.h>.

- To build debug version of oneDAL, run:
- To build debug version of oneDAL (including debug symbols), run:

make -f makefile daal oneapi_c PLAT=lnx32e REQDBG=yes

- To build oneDAL to include only symbols, run:

make -f makefile daal oneapi_c PLAT=lnx32e REQDBG=symbols

- To build oneDAL with kernel profiling information, run:

make -f makefile daal oneapi_c PLAT=lnx32e REQPROFILE=yes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#include "services/daal_memory.h"
#include "services/internal/daal_kernel_defines.h"
#include "services/daal_defines.h"

namespace daal
{
Expand Down Expand Up @@ -154,14 +155,14 @@ class AlgorithmContainerImpl<batch> : public AlgorithmContainer<batch>
#if defined(TARGET_X86_64)
template <typename sse2Container DAAL_KERNEL_SSE42_ONLY(typename sse42Container) DAAL_KERNEL_AVX2_ONLY(typename avx2Container)
DAAL_KERNEL_AVX512_ONLY(typename avx512Container)>
class AlgorithmDispatchContainer<batch, sse2Container DAAL_KERNEL_SSE42_ONLY(sse42Container) DAAL_KERNEL_AVX2_ONLY(avx2Container)
DAAL_KERNEL_AVX512_ONLY(avx512Container)> : public AlgorithmContainerImpl<batch>
class DAAL_EXPORT AlgorithmDispatchContainer<batch, sse2Container DAAL_KERNEL_SSE42_ONLY(sse42Container) DAAL_KERNEL_AVX2_ONLY(avx2Container)
DAAL_KERNEL_AVX512_ONLY(avx512Container)> : public AlgorithmContainerImpl<batch>
#elif defined(TARGET_ARM)
template <typename SVEContainer DAAL_KERNEL_SVE_ONLY(typename sveContainer)>
class AlgorithmDispatchContainer<batch, SVEContainer DAAL_KERNEL_SVE_ONLY(sveContainer)> : public AlgorithmContainerImpl<batch>
class DAAL_EXPORT AlgorithmDispatchContainer<batch, SVEContainer DAAL_KERNEL_SVE_ONLY(sveContainer)> : public AlgorithmContainerImpl<batch>
#elif defined(TARGET_RISCV64)
template <typename RV64Container DAAL_KERNEL_RV64_ONLY(typename rv64Container)>
class AlgorithmDispatchContainer<batch, RV64Container DAAL_KERNEL_RV64_ONLY(rv64Container)> : public AlgorithmContainerImpl<batch>
class DAAL_EXPORT AlgorithmDispatchContainer<batch, RV64Container DAAL_KERNEL_RV64_ONLY(rv64Container)> : public AlgorithmContainerImpl<batch>
#endif
{
public:
Expand Down
11 changes: 6 additions & 5 deletions cpp/daal/include/algorithms/association_rules/apriori.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,16 @@ class DAAL_EXPORT Batch : public daal::algorithms::Analysis<batch>
typedef algorithms::association_rules::Result ResultType;

/** Default constructor */
Batch() { initialize(); }
// defined elsewhere in order to prevent implicit instantation of AlgorithmBatchContainer
Batch();

/**
* Constructs an association rules algorithm by copying input objects and parameters
* of another association rules algorithm
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Batch(const Batch<algorithmFPType, method> & other) : input(other.input), parameter(other.parameter) { initialize(); }
Batch(const Batch<algorithmFPType, method> & other);

/**
* Returns method of the algorithm
Expand Down Expand Up @@ -143,9 +144,9 @@ class DAAL_EXPORT Batch : public daal::algorithms::Analysis<batch>

void initialize()
{
Analysis<batch>::_ac = new __DAAL_ALGORITHM_CONTAINER(batch, BatchContainer, algorithmFPType, method)(&_env);
_in = &input;
_par = &parameter;
_ac = new __DAAL_ALGORITHM_CONTAINER(batch, BatchContainer, algorithmFPType, method)(&_env);
_in = &input;
_par = &parameter;
_result.reset(new ResultType());
}

Expand Down
4 changes: 2 additions & 2 deletions cpp/daal/include/algorithms/cholesky/cholesky.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,15 @@ class DAAL_EXPORT Batch : public daal::algorithms::Analysis<batch>
typedef algorithms::cholesky::Result ResultType;

/** Default constructor */
Batch() { initialize(); }
Batch();

/**
* Constructs a Cholesky decomposition algorithm by copying input objects
* of another Cholesky decomposition algorithm
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Batch(const Batch<algorithmFPType, method> & other) : input(other.input) { initialize(); }
Batch(const Batch<algorithmFPType, method> & other);

/** Destructor */
virtual ~Batch() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,15 @@ class DAAL_EXPORT Batch : public daal::algorithms::quality_metric::Batch
ParameterType parameter; /*!< Parameters of the algorithm */

/** Default constructor */
Batch() { initialize(); }
Batch();

/**
* Constructs a confusion matrix algorithm by copying input objects and parameters
* of another confusion matrix algorithm
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Batch(const Batch<algorithmFPType, method> & other) : input(other.input), parameter(other.parameter) { initialize(); }
Batch(const Batch<algorithmFPType, method> & other);

/**
* Returns the method of the algorithm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,15 +97,15 @@ class DAAL_EXPORT Batch : public daal::algorithms::quality_metric::Batch
* Default constructor
* \param[in] nClasses Number of classes
*/
Batch(size_t nClasses = 2) : parameter(nClasses) { initialize(); }
Batch(size_t nClasses = 2);

/**
* Constructs a confusion matrix algorithm by copying input objects and parameters
* of another confusion matrix algorithm
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Batch(const Batch<algorithmFPType, method> & other) : input(other.input), parameter(other.parameter) { initialize(); }
Batch(const Batch<algorithmFPType, method> & other);

/**
* Returns the method of the algorithm
Expand Down
4 changes: 2 additions & 2 deletions cpp/daal/include/algorithms/covariance/covariance_batch.h
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ class DAAL_EXPORT Batch : public BatchImpl
typedef typename super::ResultType ResultType;

/** Default constructor */
Batch() { initialize(); }
Batch();

/**
* Constructs an algorithm for correlation or variance-covariance matrix computation
Expand All @@ -367,7 +367,7 @@ class DAAL_EXPORT Batch : public BatchImpl
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Batch(const Batch<algorithmFPType, method> & other) : BatchImpl(other) { initialize(); }
Batch(const Batch<algorithmFPType, method> & other);

virtual ~Batch() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ class DistributedIface<step2Master> : public daal::algorithms::Analysis<distribu
* - Result class
*/
template <ComputeStep step, typename algorithmFPType = DAAL_ALGORITHM_FP_TYPE, Method method = defaultDense>
class Distributed : public DistributedIface<step>
class DAAL_EXPORT Distributed : public DistributedIface<step>
{};

/**
Expand Down Expand Up @@ -626,7 +626,7 @@ class Distributed<step2Master, algorithmFPType, method> : public DistributedIfac
typedef typename super::PartialResultType PartialResultType;

/** Default constructor */
Distributed() { initialize(); }
Distributed();

/**
* Constructs an algorithm for correlation or variance-covariance matrix computation
Expand All @@ -635,7 +635,7 @@ class Distributed<step2Master, algorithmFPType, method> : public DistributedIfac
* \param[in] other An algorithm to be used as the source to initialize the input objects
* and parameters of the algorithm
*/
Distributed(const Distributed<step2Master, algorithmFPType, method> & other) : DistributedIface<step2Master>(other) { initialize(); }
Distributed(const Distributed<step2Master, algorithmFPType, method> & other);

virtual ~Distributed() {}

Expand Down
Loading
Loading