oneAPI Data Analytics Library (oneDAL)

Overview

Intel® oneAPI Data Analytics Library

Installation   |   Documentation   |   Support   |   Examples   |   Samples   |   How to Contribute   

Build Status License Join the community on GitHub Discussions

Intel® oneAPI Data Analytics Library (oneDAL) is a powerful machine learning library that helps speed up big data analysis. oneDAL solvers are also used in Intel Distribution for Python for scikit-learn optimization.

Intel® oneAPI Data Analytics Library is an extension of Intel® Data Analytics Acceleration Library (Intel® DAAL).

Table of Contents

Build your high-performance data science application with oneDAL

oneDAL uses all capabilities of Intel® hardware, which allows you to get a significant performance boost for the classic machine learning algorithms.

We provide highly optimized algorithmic building blocks for all stages of data analytics: preprocessing, transformation, analysis, modeling, validation, and decision making.

oneDAL also provides Data Parallel C++ (DPC++) API extensions to the traditional C++ interfaces.

The size of the data is growing exponentially as does the need for high-performance and scalable frameworks to analyze all this data and benefit from it. Besides superior performance on a single node, oneDAL also provides distributed computation mode that shows excellent results for strong and weak scaling:

oneDAL K-Means fit, strong scaling result oneDAL K-Means fit, weak scaling results

Technical details: FPType: float32; HW: Intel Xeon Processor E5-2698 v3 @2.3GHz, 2 sockets, 16 cores per socket; SW: Intel® DAAL (2019.3), MPI4Py (3.0.0), Intel® Distribution Of Python (IDP) 3.6.8; Details available in the article https://arxiv.org/abs/1909.11822

Refer to our examples and documentation for more information about our API.

Python API

oneDAL has a Python API that is provided as a standalone Python library called daal4py.

The example below shows how daal4py can be used to calculate K-Means clusters:

import numpy as np
import pandas as pd
import daal4py as d4p

data = pd.read_csv("local_kmeans_data.csv", dtype = np.float32)

init_alg = d4p.kmeans_init(nClusters = 10,
                           fptype = "float",
                           method = "randomDense")

centroids = init_alg.compute(data).centroids
alg = d4p.kmeans(nClusters = 10, maxIterations = 50, fptype = "float",
                 accuracyThreshold = 0, assignFlag = False)
result = alg.compute(data, centroids)

Scikit-learn patching

With a Python API provided by daal4py, you can create scikit-learn compatible estimators, transformers, or clusterers that are powered by oneDAL and are nearly as efficient as native programs.

Speedup of oneDAL-powered scikit-learn over the original scikit-learn, 28 cores, 1 thread/core
Technical details: FPType: float32; HW: Intel(R) Xeon(R) Platinum 8276L CPU @ 2.20GHz, 2 sockets, 28 cores per socket; SW: scikit-learn 0.22.2, Intel® DAAL (2019.5), Intel® Distribution Of Python (IDP) 3.7.4; Details available in the article https://medium.com/intel-analytics-software/accelerate-your-scikit-learn-applications-a06cacf44912

daal4py have an API that matches scikit-learn API. This framework allows you to speed up your existing projects by changing one line of code.

from daal4py.sklearn.svm import SVC
from sklearn.datasets import load_digits

digits = load_digits()
X, y = digits.data, digits.target

svm = SVC(kernel='rbf', gamma='scale', C = 0.5).fit(X, y)
print(svm.score(X, y))

In addition, daal4py provides an option to replace some scikit-learn methods by oneDAL solvers, which makes it possible to get a performance gain without any code changes. This approach is the basis of Intel distribution for Python scikit-learn. You can patch the stock scikit-learn by using the following command-line flag:

python -m daal4py my_application.py

Patches can also be enabled programmatically:

from sklearn.svm import SVC
from sklearn.datasets import load_digits
from time import time

svm_sklearn = SVC(kernel="rbf", gamma="scale", C=0.5)

digits = load_digits()
X, y = digits.data, digits.target

start = time()
svm_sklearn = svm_sklearn.fit(X, y)
end = time()
print(end - start) # output: 0.141261...
print(svm_sklearn.score(X, y)) # output: 0.9905397885364496

from daal4py.sklearn import patch_sklearn
patch_sklearn() # <-- apply patch
from sklearn.svm import SVC

svm_d4p = SVC(kernel="rbf", gamma="scale", C=0.5)

start = time()
svm_d4p = svm_d4p.fit(X, y)
end = time()
print(end - start) # output: 0.032536...
print(svm_d4p.score(X, y)) # output: 0.9905397885364496

Distributed multi-node mode

Data scientists often require different tools for analysis of regular and big data. daal4py offers various processing models, which makes it easy to enable distributed multi-node mode.

import numpy as np
import pandas as pd
import daal4py as d4p

d4p.daalinit() # <-- Initialize SPMD mode
data = pd.read_csv("local_kmeans_data.csv", dtype = np.float32)

init_alg = d4p.kmeans_init(nClusters = 10,
                           fptype = "float",
                           method = "randomDense",
                           distributed = True) # <-- change model to distributed

centroids = init_alg.compute(data).centroids

alg = d4p.kmeans(nClusters = 10, maxIterations = 50, fptype = "float",
                 accuracyThreshold = 0, assignFlag = False,
                 distributed = True)  # <-- change model to distributed

result = alg.compute(data, centroids)

For more details browse daal4py documentation.

oneDAL Apache Spark MLlib samples

oneDAL provides Scala and Java interfaces that match Apache Spark MlLib API and use oneDAL solvers under the hood. This implementation allows you to get a 3-18X increase in performance compared to the default Apache Spark MLlib.

Technical details: FPType: double; HW: 7 x m5.2xlarge AWS instances; SW: Intel DAAL 2020 Gold, Apache Spark 2.4.4, emr-5.27.0; Spark config num executors 12, executor cores 8, executor memory 19GB, task cpus 8

Check the samples tab for more details.

Installation

You can install oneDAL:

Installation from Source

See Installation from Sources for details.

Examples

Beside C++ and Python API, oneDAL also provides APIs for DPC++ and Java:

Documentation

Refer to GitHub Wiki to browse the full list of oneDAL and daal4py resources.

Support

Ask questions and engage in discussions with oneDAL developers, contributers, and other users through the following channels:

You may reach out to project maintainers privately at [email protected].

Security

To report a vulnerability, refer to Intel vulnerability reporting policy.

Contribute

Report issues and make feature requests using GitHub Issues.

We welcome community contributions, so check our contributing guidelines to learn more.

Feedback

Use GitHub Wiki to provide feedback about oneDAL.

Samples

Samples are examples of how oneDAL can be used in different applications:

Technical Preview Features

Technical preview features are introduced to gain early feedback from developers. A technical preview feature is subject to change in the future releases. Using a technical preview feature in a production code base is therefore strongly discouraged.

In C++ APIs, technical preview features are located in daal::preview and oneapi::dal::preview namespaces. In Java APIs, technical preview features are located in packages that have the com.intel.daal.preview name prefix.

The preview features list:

  • Graph Analytics:
    • Undirected graph without edge and vertex weights (undirected_adjacency_array_graph), where vertex indices can only be of type int32
    • Jaccard Similarity Coefficients for all pairs of vertices, a batch algorithm that processes the graph by blocks

oneDAL and Intel® DAAL

Intel® oneAPI Data Analytics Library is an extension of Intel® Data Analytics Acceleration Library (Intel® DAAL).

This repository contains branches corresponding to both oneAPI and classical versions of the library. We encourage you to use oneDAL located under the master branch.

Product Latest release Branch
oneDAL 2021.1 master
rls/2021-gold-mnt
Intel® DAAL 2020 Update 3 rls/daal-2020-u3-rls

License

Distributed under the Apache License 2.0 license. See LICENSE for more information.

Comments
  • FreeBSD port

    FreeBSD port

    I'm trying to port daal into FreeBSD. The library itself compiles fine, but when I try to compile a sample, I'm getting a lot of unresolved references defined in "libdaal_mkl_*.a" libraries. Is it possible to obtain a source code of these libraries to compile them natively and finalize porting? Thanks.

    enhancement 
    opened by rayrapetyan 30
  • online covariance improvements

    online covariance improvements

    Description

    Please include a summary of the change. For large or complex changes please include enough information to introduce your change and explain motivation for it.

    Changes proposed in this pull request:

    dpc++ 
    opened by mchernov-intel 23
  • DPCPP KNN

    DPCPP KNN

    • [x] Extend ndview functionality with slicing and copying functionality, test it
    • [x] Develop search primitive and test it
    • [x] Develop voting primitive and test it
    • [x] Extend selection functionality, fix bugs and test it
    • [x] Compose changes into the full pipeline of the kNN algorithm
    • [x] Check performance and fix degradations if needed
    • [x] Extend kNN-GPU functionality with the full range of Minkowsky metrics

    Depends on this PR

    dpc++ oneAPI 
    opened by KulikovNikita 22
  • Fix for threading init.

    Fix for threading init.

    This PR fixes case when we use internal threading before using getInstance()->setNumberOfThreads(num_threads) function to change number of using threads.

    opened by KalyanovD 20
  • KNN algorithm: added runtime dispatching by K; added faster selection…

    KNN algorithm: added runtime dispatching by K; added faster selection…

    … method for 1 <= K <= 32

    Description

    Main goal was to customize selection methods for different ranges of K in brute force K-Nearest-Neighbors (KNN) algorithm.

    Changes proposed in this pull request: -Run-time dispatching by K was added -Faster selection was added for K <= 32

    dpc++ 
    opened by amgrigoriev 20
  • LightGBM/Xgboost c++ example?

    LightGBM/Xgboost c++ example?

    Daal4py has an example on converting lightgbm and xgboost models to python and use them for inference.

    Is the same possible for C++? Using python to train a model and doing inference in c++?

    opened by skaae 18
  • graph functionality introduction

    graph functionality introduction

    Description

    Please include a summary of the change. For large or complex changes please include enough information to introduce your change and explain motivation for it.

    Changes proposed in this pull request:

    backport-2021 
    opened by bysheva 18
  • New graph structure

    New graph structure

    Initial graph structure with example of one graph service function. Note: load functionality is not ready as an example, it is working temp version. The things like cout will be removed. Their purpose to demonstrate the functionality. Jaccard is not adapted yet.

    opened by orrrrtem 17
  • DAAL 2020 Spark kmeans crash

    DAAL 2020 Spark kmeans crash

    Using DAAL 2020 in Spark kmeans has crash problem. The error log :

    A fatal error has been detected by the Java Runtime Environment:

    SIGSEGV (0xb) at pc=0x00007f30b7cb86cf, pid=21839, tid=0x00007f30c68f4700

    JRE version: OpenJDK Runtime Environment (8.0_161-b16) (build 1.8.0_161-internal-Cloud_Programming_framework_TD_V100R001C00B223-b16) Java VM: OpenJDK 64-Bit Server VM (25.161-b16 mixed mode linux-amd64 ) Problematic frame: C [libJavaAPI.so+0x22396cf] daal::services::interface1::Status daal::JavaNumericTable<10010>::getTBlock(unsigned long, unsigned long, daal::data_management::ReadWriteMode, daal::data_management::interface1::BlockDescriptor&, char const*, char const*)+0x12f

    Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

    An error report file with more information is saved as: /data/sdj/nm-local-dir/usercache/root/appcache/application_1572491123048_0003/container_1572491123048_0003_01_000027/hs_err_pid21839.log [thread 139846865626880 also had an error]

    Environment info: OS : CentOS Linux release 7.6.1810 DAAL: 2020 HADOOP: 2.7.6 Spark:2.3.0 JDK: 1.8.0 HiBench: 7.0

    Test procedure:

    1. Install and config hadoop/spark/daal.
    2. Test kmeans using hibench shell and cmd : source /opt/intel/daal/bin/daalvars.sh intel64 SHAREDLIBS=${DAALROOT}/lib/${daal_ia}_lin/libJavaAPI.so,${DAALROOT}/../tbb/lib/${daal_ia}_lin/gcc4.4/libtbb.so.2,${DAALROOT}/../tbb/lib/${daal_ia}_lin/gcc4.4/libtbbmalloc.so.2 echo "==============$LD_LIBRARY_PATH" run_spark_job --jars ${DAALROOT}/lib/daal.jar --files ${SHAREDLIBS} com.intel.daal.sparkbench.ml.DaalKMeans -k $K --numIterations $MAX_ITERATION $INPUT_HDFS/samples

    LOG file:

    hs_err_pid21839.log.txt

    opened by MacChen01 17
  • Refine usage of daal namespaces in examples

    Refine usage of daal namespaces in examples

    daal::data_management entities are used in the C++ samples, but they are not injected explicitly. service.h header provides such injection, but its content is:

    Auxiliary functions used in C++ examples

    Attempts to inject the sample code into standalone code will fail in case users won't need service.h header and utilities.

    opened by PovelikinRostislav 17
  • Logistic Regression prediction CPU optimizations

    Logistic Regression prediction CPU optimizations

    Perf for Airline data set:

    NT | FPType | Before, ms | Now, ms | Speedup -- | -- | -- | -- | -- Homogen | double | 85.06 | 14.88 | 5.7 SOA | double | 89.50 | 19.31 | 4.6 Homogen | float | 110.17 | 9.85 | 11.2 SOA | float | 113.31 | 9.88 | 11.5

    First of all the optimizations are applicable for binary classification, there is only minor gain for multiclass.

    backport-2021 
    opened by SmirnovEgorRu 16
  • Update dependency Sphinx to v6

    Update dependency Sphinx to v6

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | Sphinx (changelog) | ==3.5.4 -> ==6.0.0 | age | adoption | passing | confidence |


    Release Notes

    sphinx-doc/sphinx

    v6.0.0

    Compare Source

    =====================================

    Dependencies

    • #​10468: Drop Python 3.6 support
    • #​10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #​7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #​10471, #​10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #​10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    • #​10924: LaTeX: adopt better looking defaults for tables and code-blocks. See :confval:latex_table_style and the pre_border-radius and pre_background-TeXcolor :ref:additionalcss for the former defaults and how to re-enact them if desired.

    Bugs fixed

    • #​10984: LaTeX: Document :confval:latex_additional_files behavior for files with .tex extension.

    v5.3.0

    Compare Source

    =====================================

    • #​10759: LaTeX: add :confval:latex_table_style and support the 'booktabs', 'borderless', and 'colorrows' styles. (thanks to Stefan Wiehler for initial pull requests #​6666, #​6671)
    • #​10840: One can cross-reference including an option value like :option:`--module=foobar```,:option:--module[=foobar]``` or ``:option:--module foobar```. Patch by Martin Liska.
    • #​10881: autosectionlabel: Record the generated section label to the debug log.
    • #​10268: Correctly URI-escape image filenames.
    • #​10887: domains: Allow sections in all the content of all object description directives (e.g. :rst:dir:py:function). Patch by Adam Turner

    v5.2.3

    Compare Source

    =====================================

    • #​10878: Fix base64 image embedding in sphinx.ext.imgmath
    • #​10886: Add :nocontentsentry: flag and global domain table of contents entry control option. Patch by Adam Turner

    v5.2.2

    Compare Source

    =====================================

    • #​10872: Restore link targets for autodoc modules to the top of content. Patch by Dominic Davis-Foster.

    v5.2.1

    =====================================

    Bugs fixed

    • #​10861: Always normalise the pycon3 lexer to pycon.
    • Fix using sphinx.ext.autosummary with modules containing titles in the module-level docstring.

    v5.2.0.post0

    ===========================================

    • Recreated source tarballs for Debian maintainers.

    v5.2.0

    Compare Source

    ===========================================

    • Recreated source tarballs for Debian maintainers.

    v5.1.1

    Compare Source

    =====================================

    Bugs fixed

    • #​10701: Fix ValueError in the new deque based sphinx.ext.napolean iterator implementation.
    • #​10702: Restore compatability with third-party builders.

    v5.1.0

    Compare Source

    =====================================

    Dependencies

    • #​10656: Support Docutils 0.19_. Patch by Adam Turner.

    .. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05

    Deprecated

    • #​10467: Deprecated sphinx.util.stemmer in favour of snowballstemmer. Patch by Adam Turner.
    • #​9856: Deprecated sphinx.ext.napoleon.iterators.

    Features added

    • #​10444: html theme: Allow specifying multiple CSS files through the stylesheet setting in theme.conf or by setting html_style to an iterable of strings.
    • #​10366: std domain: Add support for emphasising placeholders in :rst:dir:option directives through a new :confval:option_emphasise_placeholders configuration option.
    • #​10439: std domain: Use the repr of some variables when displaying warnings, making whitespace issues easier to identify.
    • #​10571: quickstart: Reduce content in the generated conf.py file. Patch by Pradyun Gedam.
    • #​10648: LaTeX: CSS-named-alike additional :ref:'sphinxsetup' <latexsphinxsetup> keys allow to configure four separate border-widths, four paddings, four corner radii, a shadow (possibly inset), colours for border, background, shadow for each of the code-block, topic, attention, caution, danger, error and warning directives.
    • #​10655: LaTeX: Explain non-standard encoding in LatinRules.xdy
    • #​10599: HTML Theme: Wrap consecutive footnotes in an <aside> element when using Docutils 0.18 or later, to allow for easier styling. This matches the behaviour introduced in Docutils 0.19. Patch by Adam Turner.
    • #​10518: config: Add include_patterns as the opposite of exclude_patterns. Patch by Adam Turner.

    Bugs fixed

    • #​10594: HTML Theme: field term colons are doubled if using Docutils 0.18+
    • #​10596: Build failure if Docutils version is 0.18 (not 0.18.1) due to missing Node.findall()
    • #​10506: LaTeX: build error if highlighting inline code role in figure caption (refs: #​10251)
    • #​10634: Make -P (pdb) option work better with exceptions triggered from events
    • #​10550: py domain: Fix spurious whitespace in unparsing various operators (+, -, ~, and **). Patch by Adam Turner (refs: #​10551).
    • #​10460: logging: Always show node source locations as absolute paths.
    • HTML Search: HTML tags are displayed as a part of object name
    • HTML Search: search snipets should not be folded
    • HTML Search: Minor errors are emitted on fetching search snipets
    • HTML Search: The markers for header links are shown in the search result
    • #​10520: HTML Theme: Fix use of sidebar classes in agogo.css_t.
    • #​6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme.
    • #​10566: HTML Theme: Fix enable_search_shortcuts does not work
    • #​8686: LaTeX: Text can fall out of code-block at end of page and leave artifact on next page
    • #​10633: LaTeX: user injected \color commands in topic or admonition boxes may cause color leaks in PDF due to upstream framed.sty <https://ctan.org/pkg/framed>_ bug
    • #​10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted diffs using Pygments style 'manni') inherit thickness of code-block frame
    • #​10647: LaTeX: Only one \label is generated for desc_signature node even if it has multiple node IDs
    • #​10579: i18n: UnboundLocalError is raised on translating raw directive
    • #​9577, #​10088: py domain: Fix warning for duplicate Python references when using :any: and autodoc.
    • #​10548: HTML Search: fix minor summary issues.

    v5.0.2

    Compare Source

    =====================================

    Features added

    • #​10523: HTML Theme: Expose the Docutils's version info tuple as a template variable, docutils_version_info. Patch by Adam Turner.

    Bugs fixed

    • #​10538: autodoc: Inherited class attribute having docstring is documented even if :confval:autodoc_inherit_docstring is disabled
    • #​10509: autosummary: autosummary fails with a shared library
    • #​10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner.
    • #​10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+. Patch by Adam Turner.
    • #​10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner.

    v5.0.1

    Compare Source

    =====================================

    Bugs fixed

    • #​10498: gettext: TypeError is raised when sorting warning messages if a node has no line number. Patch by Adam Turner.
    • #​10493: HTML Theme: :rst:dir:topic directive is rendered incorrectly with Docutils 0.18. Patch by Adam Turner.
    • #​10495: IndexError is raised for a :rst:role:kbd role having a separator. Patch by Adam Turner.

    v5.0.0

    Compare Source

    =====================================

    Dependencies

    5.0.0 b1

    • #​10164: Support Docutils 0.18_. Patch by Adam Turner.

    .. _Docutils 0.18: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-18-2021-10-26

    Incompatible changes

    5.0.0 b1

    • #​10031: autosummary: sphinx.ext.autosummary.import_by_name() now raises ImportExceptionGroup instead of ImportError when it failed to import target object. Please handle the exception if your extension uses the function to import Python object. As a workaround, you can disable the behavior via grouped_exception=False keyword argument until v7.0.
    • #​9962: texinfo: Customizing styles of emphasized text via @definfoenclose command was not supported because the command was deprecated since texinfo 6.8
    • #​2068: :confval:intersphinx_disabled_reftypes has changed default value from an empty list to ['std:doc'] as avoid too surprising silent intersphinx resolutions. To migrate: either add an explicit inventory name to the references intersphinx should resolve, or explicitly set the value of this configuration variable to an empty list.
    • #​10197: html theme: Reduce body_min_width setting in basic theme to 360px
    • #​9999: LaTeX: separate terms from their definitions by a CR (refs: #​9985)
    • #​10062: Change the default language to 'en' if any language is not set in conf.py

    5.0.0 final

    • #​10474: :confval:language does not accept None as it value. The default value of language becomes to 'en' now. Patch by Adam Turner and Takeshi KOMIYA.

    Deprecated

    5.0.0 b1

    • #​10028: jQuery and underscore.js will no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript or use the mitigation below.

      To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. _the Sphinx repository: https://github.com/sphinx-doc/sphinx/tree/v5.3.0/sphinx/themes/basic/static .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      Patch by Adam Turner.

    • setuptools integration. The build_sphinx sub-command for setup.py is marked as deprecated to follow the policy of setuptools team.

    • The locale argument of sphinx.util.i18n:babel_format_date() becomes required

    • The language argument of sphinx.util.i18n:format_date() becomes required

    • sphinx.builders.html.html5_ready

    • sphinx.io.read_doc()

    • sphinx.util.docutils.__version_info__

    • sphinx.util.docutils.is_html5_writer_available()

    • sphinx.writers.latex.LaTeXWriter.docclasses

    Features added

    5.0.0 b1

    • #​9075: autodoc: The default value of :confval:autodoc_typehints_format is changed to 'smart'. It will suppress the leading module names of typehints (ex. io.StringIO -> StringIO).
    • #​8417: autodoc: :inherited-members: option now takes multiple classes. It allows to suppress inherited members of several classes on the module at once by specifying the option to :rst:dir:automodule directive
    • #​9792: autodoc: Add new option for autodoc_typehints_description_target to include undocumented return values but not undocumented parameters.
    • #​10285: autodoc: singledispatch functions having typehints are not documented
    • autodoc: :confval:autodoc_typehints_format now also applies to attributes, data, properties, and type variable bounds.
    • #​10258: autosummary: Recognize a documented attribute of a module as non-imported
    • #​10028: Removed internal usages of JavaScript frameworks (jQuery and underscore.js) and modernised doctools.js and searchtools.js to EMCAScript 2018. Patch by Adam Turner.
    • #​10302: C++, add support for conditional expressions (?:).
    • #​5157, #​10251: Inline code is able to be highlighted via :rst:dir:role directive
    • #​10337: Make sphinx-build faster by caching Publisher object during build. Patch by Adam Turner.

    Bugs fixed

    5.0.0 b1

    • #​10200: apidoc: Duplicated submodules are shown for modules having both .pyx and .so files. Patch by Adam Turner and Takeshi KOMIYA.
    • #​10279: autodoc: Default values for keyword only arguments in overloaded functions are rendered as a string literal
    • #​10280: autodoc: :confval:autodoc_docstring_signature unexpectedly generates return value typehint for constructors if docstring has multiple signatures
    • #​10266: autodoc: :confval:autodoc_preserve_defaults does not work for mixture of keyword only arguments with/without defaults
    • #​10310: autodoc: class methods are not documented when decorated with mocked function
    • #​10305: autodoc: Failed to extract optional forward-ref'ed typehints correctly via :confval:autodoc_type_aliases
    • #​10421: autodoc: :confval:autodoc_preserve_defaults doesn't work on class methods
    • #​10214: html: invalid language tag was generated if :confval:language contains a country code (ex. zh_CN)
    • #​9974: html: Updated jQuery version from 3.5.1 to 3.6.0
    • #​10236: html search: objects are duplicated in search result
    • #​9962: texinfo: Deprecation message for @definfoenclose command on bulding texinfo document
    • #​10000: LaTeX: glossary terms with common definition are rendered with too much vertical whitespace
    • #​10188: LaTeX: alternating multiply referred footnotes produce a ? in pdf output
    • #​10363: LaTeX: make 'howto' title page rule use \linewidth for compatibility with usage of a twocolumn class option
    • #​10318: :prepend: option of :rst:dir:literalinclude directive does not work with :dedent: option

    5.0.0 final

    • #​9575: autodoc: The annotation of return value should not be shown when autodoc_typehints="description"
    • #​9648: autodoc: *args and **kwargs entries are duplicated when autodoc_typehints="description"
    • #​8180: autodoc: Docstring metadata ignored for attributes
    • #​10443: epub: EPUB builder can't detect the mimetype of .webp file
    • #​10104: gettext: Duplicated locations are shown if 3rd party extension does not provide correct information
    • #​10456: py domain: :meta: fields are displayed if docstring contains two or more meta-field
    • #​9096: sphinx-build: the value of progress bar for paralle build is wrong
    • #​10110: sphinx-build: exit code is not changed when error is raised on builder-finished event

    v4.5.0

    Compare Source

    =====================================

    Incompatible changes

    • #​10112: extlinks: Disable hardcoded links detector by default
    • #​9993, #​10177: std domain: Disallow to refer an inline target via :rst:role:ref role

    Deprecated

    • sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()

    Features added

    • #​10260: Enable FORCE_COLOR and NO_COLOR for terminal colouring
    • #​10234: autosummary: Add "autosummary" CSS class to summary tables
    • #​10125: extlinks: Improve suggestion message for a reference having title
    • #​10112: extlinks: Add :confval:extlinks_detect_hardcoded_links to enable hardcoded links detector feature
    • #​9494, #​9456: html search: Add a config variable :confval:html_show_search_summary to enable/disable the search summaries
    • #​9337: HTML theme, add option enable_search_shortcuts that enables :kbd:/ as a Quick search shortcut and :kbd:Esc shortcut that removes search highlighting.
    • #​10107: i18n: Allow to suppress translation warnings by adding #noqa comment to the tail of each translation message
    • #​10252: C++, support attributes on classes, unions, and enums.
    • #​10253: :rst:role:pep role now generates URLs based on peps.python.org <https://peps.python.org>_

    Bugs fixed

    • #​9876: autodoc: Failed to document an imported class that is built from native binary module
    • #​10133: autodoc: Crashed when mocked module is used for type annotation
    • #​10146: autodoc: :confval:autodoc_default_options does not support no-value option
    • #​9971: autodoc: TypeError is raised when the target object is annotated by unhashable object
    • #​10205: extlinks: Failed to compile regexp on checking hardcoded links
    • #​10277: html search: Could not search short words (ex. "use")
    • #​9529: LaTeX: named auto numbered footnote (ex. [#named]) that is referred multiple times was rendered to a question mark
    • #​9924: LaTeX: multi-line :rst:dir:cpp:function directive has big vertical spacing in Latexpdf
    • #​10158: LaTeX: excessive whitespace since v4.4.0 for undocumented variables/structure members
    • #​10175: LaTeX: named footnote reference is linked to an incorrect footnote if the name is also used in the different document
    • #​10269: manpage: Failed to resolve the title of :rst:role:ref cross references
    • #​10179: i18n: suppress "rST localization" warning
    • #​10118: imgconverter: Unnecessary availablity check is called for remote URIs
    • #​10181: napoleon: attributes are displayed like class attributes for google style docstrings when :confval:napoleon_use_ivar is enabled
    • #​10122: sphinx-build: make.bat does not check the installation of sphinx-build command before showing help

    v4.4.0

    Compare Source

    =====================================

    Dependencies

    Features added

    • #​9075: autodoc: Add a config variable :confval:autodoc_typehints_format to suppress the leading module names of typehints of function signatures (ex. io.StringIO -> StringIO)
    • #​9831: Autosummary now documents only the members specified in a module's __all__ attribute if :confval:autosummary_ignore_module_all is set to False. The default behaviour is unchanged. Autogen also now supports this behavior with the --respect-module-all switch.
    • #​9555: autosummary: Improve error messages on failure to load target object
    • #​9800: extlinks: Emit warning if a hardcoded link is replaceable by an extlink, suggesting a replacement.
    • #​9961: html: Support nested HTML elements in other HTML builders
    • #​10013: html: Allow to change the loading method of JS via loading_method parameter for :meth:.Sphinx.add_js_file()
    • #​9551: html search: "Hide Search Matches" link removes "highlight" parameter from URL
    • #​9815: html theme: Wrap sidebar components in div to allow customizing their layout via CSS
    • #​9827: i18n: Sort items in glossary by translated terms
    • #​9899: py domain: Allows to specify cross-reference specifier (. and ~) as :type: option
    • #​9894: linkcheck: add option linkcheck_exclude_documents to disable link checking in matched documents.
    • #​9793: sphinx-build: Allow to use the parallel build feature in macOS on macOS and Python3.8+
    • #​10055: sphinx-build: Create directories when -w option given
    • #​9993: std domain: Allow to refer an inline target (ex. ``_target name```) via :rst:role:ref` role
    • #​9981: std domain: Strip value part of the option directive from general index
    • #​9391: texinfo: improve variable in samp role
    • #​9578: texinfo: Add :confval:texinfo_cross_references to disable cross references for readability with standalone readers
    • #​9822 (and #​9062), add new Intersphinx role :rst:role:external for explict lookup in the external projects, without resolving to the local project.

    Bugs fixed

    • #​9866: autodoc: doccomment for the imported class was ignored
    • #​9883: autodoc: doccomment for the alias to mocked object was ignored
    • #​9908: autodoc: debug message is shown on building document using NewTypes with Python 3.10
    • #​9968: autodoc: instance variables are not shown if init method has position-only-arguments
    • #​9194: autodoc: types under the "typing" module are not hyperlinked
    • #​10009: autodoc: Crashes if target object raises an error on getting docstring
    • #​10058: autosummary: Imported members are not shown when autodoc_class_signature = 'separated'
    • #​9947: i18n: topic directive having a bullet list can't be translatable
    • #​9878: mathjax: MathJax configuration is placed after loading MathJax itself
    • #​9932: napoleon: empty "returns" section is generated even if no description
    • #​9857: Generated RFC links use outdated base url
    • #​9909: HTML, prevent line-wrapping in literal text.
    • #​10061: html theme: Configuration values added by themes are not be able to override from conf.py
    • #​10073: imgconverter: Unnecessary availablity check is called for "data" URIs
    • #​9925: LaTeX: prohibit also with 'xelatex' line splitting at dashes of inline and parsed literals
    • #​9944: LaTeX: extra vertical whitespace for some nested declarations
    • #​9940: LaTeX: Multi-function declaration in Python domain has cramped vertical spacing in latexpdf output
    • #​10015: py domain: types under the "typing" module are not hyperlinked defined at info-field-list
    • #​9390: texinfo: Do not emit labels inside footnotes
    • #​9413: xml: Invalid XML was generated when cross referencing python objects
    • #​9979: Error level messages were displayed as warning messages
    • #​10057: Failed to scan documents if the project is placed onto the root directory
    • #​9636: code-block: :dedent: without argument did strip newlines

    v4.3.2

    Compare Source

    =====================================

    Bugs fixed

    • #​9917: C and C++, parse fundamental types no matter the order of simple type specifiers.

    v4.3.1

    Compare Source

    =====================================

    Features added

    • #​9864: mathjax: Support chnaging the loading method of MathJax to "defer" via :confval:mathjax_options

    Bugs fixed

    • #​9838: autodoc: AttributeError is raised on building document for functions decorated by functools.lru_cache
    • #​9879: autodoc: AttributeError is raised on building document for an object having invalid doc attribute
    • #​9844: autodoc: Failed to process a function wrapped with functools.partial if :confval:autodoc_preserve_defaults enabled
    • #​9872: html: Class namespace collision between autodoc signatures and docutils-0.17
    • #​9868: imgmath: Crashed if the dvisvgm command failed to convert equation
    • #​9864: mathjax: Failed to render equations via MathJax v2. The loading method of MathJax is back to "async" method again

    v4.3.0

    Compare Source

    =====================================

    Dependencies

    • Support Python 3.10

    Incompatible changes

    • #​9649: searchindex.js: the embedded data has changed format to allow objects with the same name in different domains.
    • #​9672: The rendering of Python domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling.
    • #​9672: the signature of domains.python.PyObject.get_signature_prefix has changed to return a list of nodes instead of a plain string.
    • #​9695: domains.js.JSObject.display_prefix has been changed into a method get_display_prefix which now returns a list of nodes instead of a plain string.
    • #​9695: The rendering of Javascript domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling.
    • #​9450: mathjax: Load MathJax via "defer" strategy

    Deprecated

    • sphinx.ext.autodoc.AttributeDocumenter._datadescriptor
    • sphinx.writers.html.HTMLTranslator._fieldlist_row_index
    • sphinx.writers.html.HTMLTranslator._table_row_index
    • sphinx.writers.html5.HTML5Translator._fieldlist_row_index
    • sphinx.writers.html5.HTML5Translator._table_row_index

    Features added

    • #​9639: autodoc: Support asynchronous generator functions
    • #​9664: autodoc: autodoc-process-bases supports to inject reST snippet as a base class
    • #​9691: C, added new info-field retval for :rst:dir:c:function and :rst:dir:c:macro.
    • C++, added new info-field retval for :rst:dir:cpp:function.
    • #​9618: i18n: Add :confval:gettext_allow_fuzzy_translations to allow "fuzzy" messages for translation
    • #​9672: More CSS classes on Python domain descriptions
    • #​9695: More CSS classes on Javascript domain descriptions
    • #​9683: Revert the removal of add_stylesheet() API. It will be kept until the Sphinx-6.0 release
    • #​2068, add :confval:intersphinx_disabled_reftypes for disabling interphinx resolution of cross-references that do not have an explicit inventory specification. Specific types of cross-references can be disabled, e.g., std:doc or all cross-references in a specific domain, e.g., std:*.
    • #​9623: Allow to suppress "toctree contains reference to excluded document" warnings using :confval:suppress_warnings

    Bugs fixed

    • #​9630: autodoc: Failed to build cross references if :confval:primary_domain is not 'py'
    • #​9644: autodoc: Crashed on getting source info from problematic object
    • #​9655: autodoc: mocked object having doc comment is warned unexpectedly
    • #​9651: autodoc: return type field is not generated even if :confval:autodoc_typehints_description_target is set to "documented" when its info-field-list contains :returns: field
    • #​9657: autodoc: The base class for a subclass of mocked object is incorrect
    • #​9607: autodoc: Incorrect base class detection for the subclasses of the generic class
    • #​9755: autodoc: memory addresses are shown for aliases
    • #​9752: autodoc: Failed to detect type annotation for slots attribute
    • #​9756: autodoc: Crashed if classmethod does not have func attribute
    • #​9757: autodoc: :confval:autodoc_inherit_docstrings does not effect to overridden classmethods
    • #​9781: autodoc: :confval:autodoc_preserve_defaults does not support hexadecimal numeric
    • #​9630: autosummary: Failed to build summary table if :confval:primary_domain is not 'py'
    • #​9670: html: Fix download file with special characters
    • #​9710: html: Wrong styles for even/odd rows in nested tables
    • #​9763: html: parameter name and its type annotation are not separated in HTML
    • #​9649: HTML search: when objects have the same name but in different domains, return all of them as result instead of just one.
    • #​7634: intersphinx: references on the file in sub directory are broken
    • #​9737: LaTeX: hlist is rendered as a list containing "aggedright" text
    • #​9678: linkcheck: file extension was shown twice in warnings
    • #​9697: py domain: An index entry with parens was registered for py:method directive with :property: option
    • #​9775: py domain: Literal typehint was converted to a cross reference when :confval:autodoc_typehints='description'
    • #​9708: needs_extension failed to check double-digit version correctly
    • #​9688: Fix Sphinx patched :dudir:code does not recognize :class: option
    • #​9733: Fix for logging handler flushing warnings in the middle of the docs build
    • #​9656: Fix warnings without subtype being incorrectly suppressed
    • Intersphinx, for unresolved references with an explicit inventory, e.g., proj:myFunc, leave the inventory prefix in the unresolved text.

    v4.2.0

    Compare Source

    =====================================

    Features added

    • #​9445: autodoc: Support class properties
    • #​9479: autodoc: Emit a warning if target is a mocked object
    • #​9560: autodoc: Allow to refer NewType instances with module name in Python 3.10 or above
    • #​9447: html theme: Expose the version of Sphinx in the form of tuple as a template variable sphinx_version_tuple
    • #​9594: manpage: Suppress the title of man page if description is empty
    • #​9445: py domain: :rst:dir:py:property directive supports :classmethod: option to describe the class property
    • #​9524: test: SphinxTestApp can take builddir as an argument
    • #​9535: C and C++, support more fundamental types, including GNU extensions.

    Bugs fixed

    • #​9608: apidoc: apidoc does not generate a module definition for implicit namespace package
    • #​9504: autodoc: generate incorrect reference to the parent class if the target class inherites the class having _name attribute
    • #​9537, #​9589: autodoc: Some objects under typing module are not displayed well with the HEAD of 3.10
    • #​9487: autodoc: typehint for cached_property is not shown
    • #​9509: autodoc: AttributeError is raised on failed resolving typehints
    • #​9518: autodoc: autodoc_docstring_signature does not effect to __init__() and __new__()
    • #​9522: autodoc: PEP 585 style typehints having arguments (ex. list[int]) are not displayed well
    • #​9481: autosummary: some warnings contain non-existing filenames
    • #​9568: autosummary: summarise overlined sectioned headings correctly
    • #​9600: autosummary: Type annotations which contain commas in autosummary table are not removed completely
    • #​9481: c domain: some warnings contain non-existing filenames
    • #​9481: cpp domain: some warnings contain non-existing filenames
    • #​9456: html search: abbreation marks are inserted to the search result if failed to fetch the content of the page
    • #​9617: html search: The JS requirement warning is shown if browser is slow
    • #​9267: html theme: CSS and JS files added by theme were loaded twice
    • #​9585: py domain: :type: option for :rst:dir:py:property directive does not create a hyperlink
    • #​9576: py domain: Literal typehint was converted to a cross reference
    • #​9535 comment: C++, fix parsing of defaulted function parameters that are function pointers.
    • #​9564: smartquotes: don't adjust typography for text with language-highlighted :code: role.
    • #​9512: sphinx-build: crashed with the HEAD of Python 3.10

    v4.1.2

    Compare Source

    =====================================

    Incompatible changes

    • #​9435: linkcheck: Disable checking automatically generated anchors on github.com (ex. anchors in reST/Markdown documents)

    Bugs fixed

    • #​9489: autodoc: Custom types using typing.NewType are not displayed well with the HEAD of 3.10
    • #​9490: autodoc: Some objects under typing module are not displayed well with the HEAD of 3.10
    • #​9436, #​9471: autodoc: crashed if autodoc_class_signature = "separated"
    • #​9456: html search: html_copy_source can't control the search summaries
    • #​9500: LaTeX: Failed to build Japanese document on Windows
    • #​9435: linkcheck: Failed to check anchors in github.com

    v4.1.1

    Compare Source

    =====================================

    Dependencies

    • #​9434: sphinxcontrib-htmlhelp-2.0.0 or above
    • #​9434: sphinxcontrib-serializinghtml-1.1.5 or above

    Bugs fixed

    • #​9438: html: HTML logo or Favicon specified as file not being found on output

    v4.1.0

    Compare Source

    =====================================

    Dependencies

    • Support jinja2-3.0

    Deprecated

    • The app argument of sphinx.environment.BuildEnvironment becomes required
    • sphinx.application.Sphinx.html_theme
    • sphinx.ext.autosummary._app
    • sphinx.util.docstrings.extract_metadata()

    Features added

    • #​8107: autodoc: Add class-doc-from option to :rst:dir:autoclass directive to control the content of the specific class like :confval:autoclass_content

    • #​8588: autodoc: :confval:autodoc_type_aliases now supports dotted name. It allows you to define an alias for a class with module name like foo.bar.BazClass

    • #​9175: autodoc: Special member is not documented in the module

    • #​9195: autodoc: The arguments of typing.Literal are wrongly rendered

    • #​9185: autodoc: :confval:autodoc_typehints allows 'both' setting to allow typehints to be included both in the signature and description

    • #​4257: autodoc: Add :confval:autodoc_class_signature to separate the class entry and the definition of __init__() method

    • #​8061, #​9218: autodoc: Support variable comment for alias classes

    • #​3014: autodoc: Add :event:autodoc-process-bases to modify the base classes of the class definitions

    • #​9272: autodoc: Render enum values for the default argument value better

    • #​9384: autodoc: autodoc_typehints='none' now erases typehints for variables, attributes and properties

    • #​3257: autosummary: Support instance attributes for classes

    • #​9358: html: Add "heading" role to the toctree items

    • #​9225: html: Add span tag to the return typehint of method/function

    • #​9129: html search: Show search summaries when html_copy_source = False

    • #​9307: html search: Prevent corrections and completions in search field

    • #​9120: html theme: Eliminate prompt characters of code-block from copyable text

    • #​9176: i18n: Emit a debug message if message catalog file not found under :confval:locale_dirs

    • #​9414: LaTeX: Add xeCJKVerbAddon to default fvset config for Chinese documents

    • #​9016: linkcheck: Support checking anchors on github.com

    • #​9016: linkcheck: Add a new event :event:linkcheck-process-uri to modify URIs before checking hyperlinks

    • #​6525: linkcheck: Add :confval:linkcheck_allowed_redirects to mark hyperlinks that are redirected to expected URLs as "working"

    • #​1874: py domain: Support union types using | in info-field-list

    • #​9268: py domain: :confval:python_use_unqualified_type_names supports type field in info-field-list

    • #​9097: Optimize the parallel build

    • #​9131: Add :confval:nitpick_ignore_regex to ignore nitpicky warnings using regular expressions

    • #​9174: Add Sphinx.set_html_assets_policy to tell extensions to include HTML assets in all the pages. Extensions can check this via Sphinx.registry.html_assets_policy

    • C++, add support for

      • inline variables,
      • consteval functions,
      • constinit variables,
      • char8_t,
      • explicit(<constant expression>) specifier,
      • digit separators in literals, and
      • constraints in placeholder type specifiers, aka. adjective syntax (e.g., Sortable auto &v).
    • C, add support for digit separators in literals.

    • #​9166: LaTeX: support containers in LaTeX output

    Bugs fixed

    • #​8872: autodoc: stacked singledispatches are wrongly rendered
    • #​8597: autodoc: a docsting having metadata only should be treated as undocumented
    • #​9185: autodoc: typehints for overloaded functions and methods are inaccurate
    • #​9250: autodoc: The inherited method not having docstring is wrongly parsed
    • #​9283: autodoc: autoattribute directive failed to generate document for an attribute not having any comment
    • #​9364: autodoc: single element tuple on the default argument value is wrongly rendered
    • #​9362: autodoc: AttributeError is raised on processing a subclass of Tuple[()]
    • #​9404: autodoc: TypeError is raised on processing dict-like object (not a class) via autoclass directive
    • #​9317: html: Pushing left key causes visitin

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    infra 
    opened by renovate[bot] 0
  • Updating oneDAL examples

    Updating oneDAL examples

    Description

    This change brings several improvements to oneDAL examples

    Changes proposed in this pull request:

    • cleanup obsolete code for ia32 across library
    • cleanup obsolete sequential code from library
    • removing FreeBSD targets from examples/make
    • Fixing Cmake generation for library
    • reducing datasets for examples so they would be running within seconds and dataset size below 1MB
    • cmake examples improvements
    • switching public ci to cmake examples
    • added cmake config generation to public ci
    • Fixing compression examples to use lzo method instead of deprecated zlib
    • Excluded deprecation warning for daal/cpp examples in windows sln
    opened by napetrov 24
  • Update dependency catch2 to v3

    Update dependency catch2 to v3

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | catch2 | http_archive | major | v2.13.10 -> v3.2.1 |


    Release Notes

    catchorg/Catch2

    v3.2.1

    Compare Source

    Improvements
    • Fix the reworked decomposer to work with older (pre 9) GCC versions (#​2571)
      • This required more significant changes to properly support C++20, there might be bugs.

    v3.2.0

    Compare Source

    3.2.0

    Improvements
    • Catch2 now compiles on PlayStation (#​2562)
    • Added CATCH_CONFIG_GETENV compile-time toggle (#​2562)
      • This toggle guards whether Catch2 calls std::getenv when reading env variables
    • Added support for more Bazel test environment variables
      • TESTBRIDGE_TEST_ONLY is now supported (#​2490)
      • Sharding variables, TEST_SHARD_INDEX, TEST_TOTAL_SHARDS, TEST_SHARD_STATUS_FILE, are now all supported (#​2491)
    • Bunch of small tweaks and improvements in reporters
      • The TAP and SonarQube reporters output the used test filters
      • The XML reporter now also reports the version of its output format
      • The compact reporter now uses the same summary output as the console reporter (#​878, #​2554)
    • Added support for asserting on types that can only be compared with literal 0 (#​2555)
      • A canonical example is C++20's std::*_ordering types, which cannot be compared with an int variable, only 0
      • The support extends to any type with this property, not just the ones in stdlib
      • This change imposes 2-3% slowdown on compiling files that are heavy on REQUIRE and friends
      • This required significant rewrite of decomposition, there might be bugs
    • Simplified internals of matcher related macros
      • This provides about ~2% speed up compiling files that are heavy on REQUIRE_THAT and friends
    Fixes
    • Cleaned out some warnings and static analysis issues
      • Suppressed -Wcomma warning rarely occuring in templated test cases (#​2543)
      • Constified implementation details in INFO (#​2564)
      • Made MatcherGenericBase copy constructor const (#​2566)
    • Fixed serialization of test filters so the output roundtrips
      • This means that e.g. ./tests/SelfTest "aaa bbb", [approx] outputs Filters: "aaa bbb",[approx]
    Miscellaneous
    • Catch2's build no longer leaks -ffile-prefix-map setting to dependees (#​2533)

    v3.1.1

    Compare Source

    Improvements
    • Added Catch::getSeed function that user code can call to retrieve current rng-seed
    • Better detection of compiler support for -ffile-prefix-map (#​2517)
    • Catch2's shared libraries now have SOVERSION set (#​2516)
    • catch2/catch_all.hpp convenience header no longer transitively includes windows.h (#​2432, #​2526)
    Fixes
    • Fixed compilation on Universal Windows Platform
    • Fixed compilation on VxWorks (#​2515)
    • Fixed compilation on Cygwin (#​2540)
    • Remove unused variable in reporter registration (#​2538)
    • Fixed some symbol visibility issues with dynamic library on Windows (#​2527)
    • Suppressed -Wuseless-cast warnings in REQUIRE_THROWS* macros (#​2520, #​2521)
      • This was triggered when the potentially throwing expression evaluates to void
    • Fixed "warning: storage class is not first" with nvc++ (#​2533)
    • Fixed handling of DL_PATHS argument to catch_discover_tests on MacOS (#​2483)
    • Suppressed *-avoid-c-arrays clang-tidy warning in TEMPLATE_TEST_CASE (#​2095, #​2536)
    Miscellaneous
    • Fixed CMake install step for Catch2 build as dynamic library (#​2485)
    • Raised minimum CMake version to 3.10 (#​2523)
      • Expect the minimum CMake version to increase once more in next few releases.
    • Whole bunch of doc updates and fixes
    • Added support for building Catch2 with Meson (#​2530, #​2539)

    v3.1.0

    Compare Source

    Improvements
    • Improved suppression of -Wparentheses for older GCCs
      • Turns out that even GCC 9 does not properly handle _Pragmas in the C++ frontend.
    • Added type constraints onto random generator (#​2433)
      • These constraints copy what the standard says for the underlying std::uniform_int_distribution
    • Suppressed -Wunused-variable from nvcc (#​2306, #​2427)
    • Suppressed -Wunused-variable from MinGW (#​2132)
    • Added All/Any/NoneTrue range matchers (#​2319)
      • These check that all/any/none of boolean values in a range are true.
    • The JUnit reporter now normalizes classnames from C++ namespaces to Java-like namespaces (#​2468)
      • This provides better support for other JUnit based tools.
    • The Bazel support now understands BAZEL_TEST environment variable (#​2459)
      • The CATCH_CONFIG_BAZEL_SUPPORT configuration option is also still supported.
    • Returned support for compiling Catch2 with GCC 5 (#​2448)
      • This required removing inherited constructors from Catch2's internals.
      • I recommend updating to a newer GCC anyway.
    • catch_discover_tests now has a new options for setting library load path(s) when running the Catch2 binary (#​2467)
    Fixes
    • Fixed crash when listing listeners without any registered listeners (#​2442)
    • Fixed nvcc compilation error in constructor benchmarking helper (#​2477)
    • Catch2's CMakeList supports pre-3.12 CMake again (#​2428)
      • The gain from requiring CMake 3.12 was very minor, but y'all should really update to newer CMake
    Miscellaneous
    • Fixed SelfTest build on MinGW (#​2447)
    • The in-repo conan recipe exports the CMake helper (#​2460)
    • Added experimental CMake script to showcase using test case sharding together with CTest
      • Compared to catch_discover_tests, it supports very limited number of options and customization
    • Added documentation page on best practices when running Catch2 tests
    • Catch2 can be built as a dynamic library (#​2397, #​2398)
      • Note that Catch2 does not have visibility annotations, and you are responsible for ensuring correct visibility built into the resulting library.

    v3.0.1

    Compare Source

    Catch2 now uses statically compiled library as its distribution model. This also means that to get all of Catch2's functionality in a test file, you have to include multiple headers.

    You probably want to look into the migration docs, which were written to help people coming from v2.x.x versions to the v3 releases.

    FAQ
    • Why is Catch2 moving to separate headers?
      • The short answer is future extensibility and scalability. The long answer is complex and can be found on my blog, but at the most basic level, it is that providing single-header distribution is at odds with providing variety of useful features. When Catch2 was distributed in a single header, adding a new Matcher would cause overhead for everyone, but was useful only to a subset of users. This meant that the barrier to entry for new Matchers/Generators/etc is high in single header model, but much smaller in the new model.
    • Will Catch2 again distribute single-header version in the future?
      • No. But we do provide sqlite-style amalgamated distribution option. This means that you can download just 1 .cpp file and 1 header and place them next to your own sources. However, doing this has downsides similar to using the catch_all.hpp header.
    • Why the big breaking change caused by replacing catch.hpp with catch_all.hpp?
      • The convenience header catch_all.hpp exists for two reasons. One of them is to provide a way for quick migration from Catch2, the second one is to provide a simple way to test things with Catch2. Using it for migration has one drawback in that it is big. This means that including it will cause significant compile time drag, and so using it to migrate should be a conscious decision by the user, not something they can just stumble into unknowingly.
    (Potentially) Breaking changes
    • Catch2 now uses statically compiled library as its distribution model
      • Including catch.hpp no longer works
    • Catch2 now uses C++14 as the minimum support language version
    • ANON_TEST_CASE has been removed, use TEST_CASE with no arguments instead (#​1220)
    • --list* commands no longer have non-zero return code (#​1410)
    • --list-test-names-only has been removed (#​1190)
      • You should use verbosity-modifiers for --list-tests instead
    • --list* commands are now piped through the reporters
      • The top-level reporter interface provides default implementation that works just as the old one
      • XmlReporter outputs a machine-parseable XML
    • TEST_CASE description support has been removed
      • If the second argument has text outside tags, the text will be ignored.
    • Hidden test cases are no longer included just because they don't match an exclusion tag
      • Previously, a TEST_CASE("A", "[.foo]") would be included by asking for ~[bar].
    • PredicateMatcher is no longer type erased.
      • This means that the type of the provided predicate is part of the PredicateMatcher's type
    • SectionInfo no longer contains section description as a member (#​1319)
      • You can still write SECTION("ShortName", "Long and wordy description"), but the description is thrown away
      • The description type now must be a const char* or be implicitly convertible to it
    • The [!hide] tag has been removed.
      • Use [.] or [.foo] instead.
    • Lvalues of composed matchers cannot be composed further
    • Uses of REGISTER_TEST_CASE macro need to be followed by a semicolon
      • This does not change TEST_CASE and friends in any way
    • IStreamingReporter::IsMulti member function was removed
      • This is very unlikely to actually affect anyone, as it was default-implemented in the interface, and only used internally
    • Various classes not designed for user-extension have been made final
      • ListeningReporter is now final
      • Concrete Matchers (e.g. UnorderedEquals vector matcher) are now final
      • All Generators are now final
    • Matcher namespacing has been redone
      • Matcher types are no longer in deeply nested namespaces
      • Matcher factory functions are no longer brought into Catch namespace
      • This means that all public-facing matcher-related functionality is now in Catch::Matchers namespace
    • Defining CATCH_CONFIG_MAIN will no longer create main in that TU.
      • Link with libCatch2Main.a, or the proper CMake/pkg-config target
      • If you want to write custom main, include catch2/catch_session.hpp
    • CATCH_CONFIG_EXTERNAL_INTERFACES has been removed.
      • You should instead include the appropriate headers as needed.
    • CATCH_CONFIG_IMPL has been removed.
      • The implementation is now compiled into a static library.
    • Event Listener interface has changed
      • TestEventListenerBase was renamed to EventListenerBase
      • EventListenerBase now directly derives from IStreamingReporter, instead of deriving from StreamingReporterBase
    • GENERATE decays its arguments (#​2012, #​2040)
      • This means that str in auto str = GENERATE("aa", "bb", "cc"); is inferred to char const* rather than const char[2].
    • --list-* flags write their output to file specified by the -o flag
    • Many changes to reporter interfaces
      • With the exception of the XmlReporter, the outputs of first party reporters should remain the same
      • New pair of events were added
      • One obsolete event was removed
      • The base class has been renamed
      • The built-in reporter class hierarchy has been redone
    • Catch2 generates a random seed if one hasn't been specified by the user
    • The short flag for --list-tests, -l, has been removed.
      • This is not a commonly used flag and does not need to use up valuable single-letter space.
    • The short flag for --list-tags, -t, has been removed.
      • This is not a commonly used flag and does not need to use up valuable single-letter space.
    • The --colour option has been replaced with --colour-mode option
    Improvements
    • Matchers have been extended with the ability to use different signatures of match (#​1307, #​1553, #​1554, #​1843)
      • This includes having templated match member function
      • See the rewritten Matchers documentation for details
      • Catch2 currently provides some generic matchers, but there should be more before final release of v3
        • IsEmpty, SizeIs which check that the range has specific properties
        • Contains, which checks whether a range contains a specific element
        • AllMatch, AnyMatch, NoneMatch range matchers, which apply matchers over a range of elements
    • Significant compilation time improvements
      • including catch_test_macros.hpp is 80% cheaper than including catch.hpp
    • Some runtime performance optimizations
      • In all tested cases the v3 branch was faster, so the table below shows the speedup of v3 to v2 at the same task

    | task | debug build | release build | |:------------------------------------------- | ------------:| -------------:| | Run 1M REQUIRE(true) | 1.10 ± 0.01 | 1.02 ± 0.06 | | Run 100 tests, 3^3 sections, 1 REQUIRE each | 1.27 ± 0.01 | 1.04 ± 0.01 | | Run 3k tests, no names, no tags | 1.29 ± 0.01 | 1.05 ± 0.01 | | Run 3k tests, names, tags | 1.49 ± 0.01 | 1.22 ± 0.01 | | Run 1 out of 3k tests no names, no tags | 1.68 ± 0.02 | 1.19 ± 0.22 | | Run 1 out of 3k tests, names, tags | 1.79 ± 0.02 | 2.06 ± 0.23 |

    • POSIX platforms use gmtime_r, rather than gmtime when constructing a date string (#​2008, #​2165)
    • --list-* flags write their output to file specified by the -o flag (#​2061, #​2163)
    • Approx::operator() is now properly const
    • Catch2's internal helper variables no longer use reserved identifiers (#​578)
    • --rng-seed now accepts string "random-device" to generate random seed using std::random_device
    • Catch2 now supports test sharding (#​2257)
      • You can ask for the tests to be split into N groups and only run one of them.
      • This greatly simplifies parallelization of tests in a binary through external runner.
    • The embedded CLI parser now supports repeatedly callable lambdas
      • A lambda-based option parser can opt into being repeatedly specifiable.
    • Added STATIC_CHECK macro, similar to STATIC_REQUIRE (#​2318)
      • When deferred tu runtime, it behaves like CHECK, and not like REQUIRE.
    • You can have multiple tests with the same name, as long as other parts of the test identity differ (#​1915, #​1999, #​2175)
      • Test identity includes test's name, test's tags and and test's class name if applicable.
    • Added new warning, UnmatchedTestSpec, to error on test specs with no matching tests
    • The -w, --warn warning flags can now be provided multiple times to enable multiple warnings
    • The case-insensitive handling of tags is now more reliable and takes up less memory
    • Test case and assertion counting can no longer reasonably overflow on 32 bit systems
      • The count is now kept in uint64_t on all platforms, instead of using size_t type.
    • The -o, --out output destination specifiers recognize - as stdout
      • You have to provide it as --out=- to avoid CLI error about missing option
      • The new reporter specification also recognizes - as stdout
    • Multiple reporters can now run at the same time and write to different files (#​1712, #​2183)
      • To support this, the -r, --reporter flag now also accepts optional output destination
      • For full overview of the semantics of using multiple reporters, look into the reporter documentation
      • To enable the new syntax, reporter names can no longer contain ::.
    • Console colour support has been rewritten and significantly improved
      • The colour implementation based on ANSI colour codes is always available
      • Colour implementations respect their associated stream
        • previously e.g. Win32 impl would change console colour even if Catch2 was writing to a file
      • The colour API is resilient against changing evaluation order of expressions
      • The associated CLI flag and compile-time configuration options have changed
        • For details see the docs for command-line and compile-time Catch2 configuration
    • Added a support for Bazel integration with XML_OUTPUT_FILE env var (#​2399)
      • This has to be enabled during compilation.
    • Added --skip-benchmarks flag to run tests without any BENCHMARKs (#​2392, #​2408)
    • Added option to list all listeners in the binary via --list-listeners
    Fixes
    • The INFO macro no longer contains superfluous semicolon (#​1456)
    • The --list* family of command line flags now return 0 on success (#​1410, #​1146)
    • Various ways of failing a benchmark are now counted and reporter properly
    • The ULP matcher now handles comparing numbers with different signs properly (#​2152)
    • Universal ADL-found operators should no longer break decomposition (#​2121)
    • Reporter selection is properly case-insensitive
      • Previously it forced lower cased name, which would fail for reporters with upper case characters in name
    • The cumulative reporter base stores benchmark results alongside assertion results
    • Catch2's SE handling should no longer interferes with ASan on Windows (#​2334)
    • Fixed Windows console colour handling for tests that redirect stdout (#​2345)
    • Fixed issue with the random generators returning the same value over and over again
    Other changes
    • CATCH_CONFIG_DISABLE_MATCHERS no longer exists.
      • If you do not want to use Matchers in a TU, do not include their header.
    • CATCH_CONFIG_ENABLE_CHRONO_STRINGMAKER no longer exists.
      • StringMaker specializations for <chrono> are always provided
    • Catch2's CMake now provides 2 targets, Catch2 and Catch2WithMain.
      • Catch2 is the statically compiled implementation by itself
      • Catch2WithMain also links in the default main
    • Catch2's pkg-config integration also provides 2 packages
      • catch2 is the statically compiled implementation by itself
      • catch2-with-main also links in the default main
    • Passing invalid test specifications passed to Catch2 are now reported before tests are run, and are a hard error.
    • Running 0 tests (e.g. due to empty binary, or test spec not matching anything) returns non-0 exit code
      • Flag --allow-running-no-tests overrides this behaviour.
      • NoTests warning has been removed because it is fully subsumed by this change.
    • Catch2's compile-time configuration options (CATCH_CONFIG_FOO) can be set through CMake options of the same name
      • They use the same semantics as C++ defines, including the CATCH_CONFIG_NO_FOO overrides,
        • -DCATCH_CONFIG_DEFAULT_REPORTER=compact changes default reporter to "compact"
        • -DCATCH_CONFIG_NO_ANDROID_LOGWRITE=ON forces android logwrite to off
        • -DCATCH_CONFIG_ANDROID_LOGWRITE=OFF does nothing (the define will not exist)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    infra 
    opened by renovate[bot] 0
  • Update dependency sphinx-book-theme to v0.3.3

    Update dependency sphinx-book-theme to v0.3.3

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | sphinx-book-theme | ==0.1.7 -> ==0.3.3 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    infra 
    opened by renovate[bot] 0
Releases(2021.7.1)
  • 2021.7.1(Dec 1, 2022)

    The release Intel® oneAPI Data Analytics Library 2021.7.1 introduces the following changes:

    📚 Support Materials

    🚨 What's New

    • zlib and bzip2 methods of compression were deprecated. They are dispatched to the lzo method starting this version
    • Optional results (eigenvectors, eigenvalues, variances and means) and precomputed method for PCA algorithm.
    Source code(tar.gz)
    Source code(zip)
  • 2021.6.0(Aug 18, 2022)

    The release Intel® oneAPI Data Analytics Library 2021.6 introduces the following changes:

    📚 Support Materials:

    Kaggle kernels for Intel® Extension for Scikit-learn:

    🛠️ Library Engineering

    • Reduced the size of oneDAL python run-time package by approximately 8%
    • Added Python 3.10 support for daal4py and Intel(R) Extension for Scikit-learn packages

    🚨 What's New

    • Improved performance of oneDAL algorithms:
      • Optimized data conversion for tables with column-major layout in host memory to tables with row-major layout in device memory
      • Optimized the computation of Minkowski distances in brute-force kNN on CPU
      • Optimized Covariance algorithm
      • Added DPC++ column-wise atomic reduction
    • Introduced new oneDAL functionality:
      • KMeans distributed random dense initialization
      • Distributed PcaCov
      • sendrecv_replace communicator method
    • Added new parameters to oneDAL algorithms:
      • Weights in Decision Forest for CPU
      • Cosine and Chebyshev distances for KNN on GPU
    Source code(tar.gz)
    Source code(zip)
  • 2021.5(Jan 12, 2022)

    The release introduces the following changes:

    📚 Support Materials

    The following additional materials were created:

    🛠️ Library Engineering

    • Reduced the size of oneDAL library by approximately ~15%.

    🚨 What's New

    • Introduced new oneDAL functionality:
      • Distributed algorithms for Covariance, DBSCAN, Decision Forest, Low Order Moments
      • oneAPI interfaces for Linear Regression, DBSCAN, KNN
    • Improved error handling for distributed algorithms in oneDAL in case of compute nodes failures
    • Improved performance for the following oneDAL algorithms:
      • Louvain algorithm
      • KNN and SVM algorithms on GPU
    • Introduced new functionality for Intel® Extension for Scikit-learn:
      • Scikit-learn 1.0 support
    • Fixed the following issues:
      • Stabilized the results of Linear Regression in oneDAL and Intel® Extension for Scikit-learn
      • Fixed an issue with RPATH on MacOS
    Source code(tar.gz)
    Source code(zip)
  • 2021.4(Oct 14, 2021)

    The release introduces the following changes:

    📚 Support Materials

    The following additional materials were created:

    🛠️ Library Engineering

    • Introduced new functionality for Intel® Extension for Scikit-learn*:
      • Enabled patching for all Scikit-learn applications at once:
      • Added the support of Python 3.9 for both Intel® Extension for Scikit-learn and daal4py. The packages are available from PyPI and the Intel Channel on Anaconda Cloud.
    • Introduced new oneDAL functionality:
      • Added pkg-config support for Linux, macOS, Windows and for static/dynamic, thread/sequential configurations of oneDAL applications.
      • Reduced the size of oneDAL library by approximately ~30%.

    🚨 What's New

    Introduced new oneDAL functionality:

    • General:
      • Basic statistics (Low order moments) algorithm in oneDAL interfaces
      • Result options for kNN Brute-force in oneDAL interfaces: using a single function call to return any combination of responses, indices, and distances
    • CPU:
      • Sigmoid kernel of SVM algorithm
      • Model converter from CatBoost to oneDAL representation
      • Louvain Community Detection algorithm technical preview
      • Connected Components algorithm technical preview
      • Search task and cosine distance for kNN Brute-force
    • GPU:
      • The full range support of Minkowski distances in kNN Brute-force

    Improved oneDAL performance for the following algorithms:

    • CPU:
      • Decision Forest training and prediction
      • Brute-force kNN
      • KMeans
      • NuSVMs and SVR training

    Introduced new functionality in Intel® Extension for Scikit-learn:

    • General:
      • Enabled the global patching of all Scikit-learn applications
      • Provided an integration with dpctl for heterogeneous computing (the support of dpctl.tensor.usm_ndarray for input and output)
      • Extended API with set_config and get_config methods. Added the support of target_offload and allow_fallback_to_host options for device offloading scenarios
      • Added the support of predict_proba in RandomForestClassifier estimator
    • CPU:
      • Added the support of Sigmoid kernel in SVM algorithms
    • GPU:
      • Added binary SVC support with Linear and RBF kernels

    Improved the performance of the following scikit-learn estimators via scikit-learn patching:

    • SVR algorithm training
    • NuSVC and NuSVR algorithms training
    • RandomForestRegression and RandomForestClassifier algorithms training and prediction
    • KMeans

    🐛 Bug Fixes

    • General:
      • Fixed an incorrectly raised exception during the patching of Random Forest algorithm when the number of trees was more than 7000.
    • CPU:
      • Fixed an accuracy issue in Random Forest algorithm caused by the exclusion of constant features.
      • Fixed an issue in NuSVC Multiclass.
      • Fixed an issue with KMeans convergence inconsistency.
      • Fixed incorrect work of train_test_split with specific subset sizes.
    • GPU:
      • Fixed incorrect bias calculation in SVM.

    ❗ Known Issues

    • GPU:
      • For most algorithms, performance degradations were observed when the 2021.4 version of Intel® oneAPI DPC++ Compiler was used.
      • Examples are failing when run with Visual Studio Solutions on hardware that does not support double precision floating-point operations.
    Source code(tar.gz)
    Source code(zip)
  • 2021.3(Jul 2, 2021)

    The release introduces the following changes:

    📚 Support Materials

    The following additional materials were created:

    🛠️ Library Engineering

    • Introduced a new Python package, Intel® Extension for Scikit-learn*. The scikit-learn-intelex package contains scikit-learn patching functionality that was originally available in daal4py package. All future updates for the patches will be available only in Intel® Extension for Scikit-learn. We recommend using scikit-learn-intelex package instead of daal4py.
      • Download the extension using one of the following commands:
        • pip install scikit-learn-intelex
        • conda install scikit-learn-intelex -c conda-forge
      • Enable Scikit-learn patching:
        • from sklearnex import patch_sklearn
        • patch_sklearn()
    • Introduced optional dependencies on DPC++ runtime to daal4py. To enable DPC++ backend, install dpcpp_cpp_rt package. It reduces the default package size with all dependencies from 1.2GB to 400 MB.
    • Added the support of building oneDAL-based applications with /MD and /MDd options on Windows. The -d suffix is used in the names of oneDAL libraries that are built with debug run-time (/MDd).

    🚨 What's New

    Introduced new oneDAL and daal4py functionality:

    • CPU:
      • SVM Regression algorithm
      • NuSVM algorithm for both Classification and Regression tasks
      • Polynomial kernel support for all SVM algorithms (SVC, SVR, NuSVC, NuSVR)
      • Minkowski and Chebyshev distances for kNN Brute-force
      • The brute-force method and the voting mode support for kNN algorithm in oneDAL interfaces
      • Multiclass support for SVM algorithms in oneDAL interfaces
      • CSR-matrix support for SVM algorithms in oneDAL interfaces
      • Subgraph Isomorphism algorithm technical preview
      • Single Source Shortest Path (SSSP) algorithm technical preview

    Improved oneDAL and daal4py performance for the following algorithms:

    • CPU:
      • Support Vector Machines training and prediction
      • Linear, Ridge, ElasticNet, and LASSO regressions prediction
    • GPU:
      • Decision Forest training and prediction
      • Principal Components Analysis training

    Introduced the support of scikit-learn 1.0 version in Intel Extension for Scikit-learn.

    • The 2021.3 release of Intel Extension for Scikit-learn supports the latest scikit-learn releases: 0.22.X, 0.23.X, 0.24.X and 1.0.X.

    Introduced new functionality for Intel Extension for Scikit-learn:

    • General:
      • The support of patch_sklearn for all algorithms
    • CPU:
      • Acceleration of SVR estimator
      • Acceleration of NuSVC and NuSVR estimators
      • Polynomial kernel support in SVM algorithms

    Improved the performance of the following scikit-learn estimators via scikit-learn patching:

    • SVM algorithms training and prediction
    • Linear, Ridge, ElasticNet, and Lasso regressions prediction

    Fixed the following issues:

    • General:
      • Fixed binary incompatibility for the versions of numpy earlier than 1.19.4
      • Fixed an issue with a very large number of trees (> 7000) for Random Forest algorithm.
      • Fixed patch_sklearn to patch both fit and predict methods of Logistic Regression when the algorithm is given as a single parameter to patch_sklearn
    • CPU:
      • Improved numerical stability of training for Alternating Least Squares (ALS) and Linear and Ridge regressions with Normal Equations method
      • Reduced the memory consumption of SVM prediction
    • GPU:
      • Fixed an issue with kernel compilation on the platforms without hardware FP64 support

    ❗ Known Issues

    • Intel® Extension for Scikit-learn and daal4py packages installed from PyPI repository can’t be found on Debian systems (including Google Collab). Mitigation: add “site-packages” folder into Python packages searching before importing the packages:
    import sys 
    import os 
    import site 
    
    sys.path.append(os.path.join(os.path.dirname(site.getsitepackages()[0]), "site-packages")) 
    
    Source code(tar.gz)
    Source code(zip)
  • 2021.2(Mar 31, 2021)

    The release introduces the following changes:

    Library Engineering:

    • Enabled new PyPI distribution channel for daal4py:
      • Four latest Python versions (3.6, 3.7, 3.8, 3.9) are supported on Linux, Windows and MacOS.
      • Support of both CPU and GPU is included in the package.
      • You can download daal4py using the following command: pip install daal4py
    • Introduced CMake support for oneDAL examples

    Support Materials

    The following additional materials were created:

    What's New

    Introduced new oneDAL and daal4py functionality:

    • CPU:
      • Hist method for Decision Forest Classification and Regression, which outperforms the existing exact method
      • Bit-to-bit results reproducibility for: Linear and Ridge regressions, LASSO and ElasticNet, KMeans training and initialization, PCA, SVM, kNN Brute Force method, Decision Forest Classification and Regression
    • GPU:
      • Multi-node multi-GPU algorithms: KMeans (batch), Covariance (batch and online), Low order moments (batch and online) and PCA
      • Sparsity support for SVM algorithm

    Improved oneDAL and daal4py performance for the following algorithms:

    • CPU:
      • Decision Forest training Classification and Regression
      • Support Vector Machines training and prediction
      • Logistic Regression, Logistic Loss and Cross Entropy for non-homogeneous input types
    • GPU:
      • Decision Forest training Classification and Regression
      • All algorithms with GPU kernels (as a result of migration to Unified Shared Memory data management)
      • Reduced performance overhead for oneAPI C++ interfaces on CPU and oneAPI DPC++ interfaces on GPU

    Added technical preview features in Graph Analytics:

    • CPU:
      • Local and Global Triangle Counting

    Introduced new functionality for scikit-learn patching through daal4py:

    • CPU:
      • Patches for four latest scikit-learn releases: 0.21.X, 0.22.X, 0.23.X and 0.24.X
      • Acceleration of roc_auc_score function
      • Bit-to-bit results reproducibility for: LinearRegression, Ridge, SVC, KMeans, PCA, Lasso, ElasticNet, tSNE, KNeighborsClassifier, KNeighborsRegressor, NearestNeighbors, RandomForestClassifier, RandomForestRegressor

    ​Improved performance of the following scikit-learn estimators via scikit-learn patching:

    • CPU
      • RandomForestClassifier and RandomForestRegressor scikit-learn estimators: training and prediction
      • Principal Component Analysis (PCA) scikit-learn estimator: training
      • Support Vector Classification (SVC) scikit-learn estimators: training and prediction
      • Support Vector Classification (SVC) scikit-learn estimator with the probability==True parameter: training and prediction

    Fixed the following issues:

    • Scikit-learn patching:

      • Improved accuracy of RandomForestClassifier and RandomForestRegressor scikit-learn estimators
      • Fixed patching issues with pairwise_distances
      • Fixed the behavior of the patch_sklearn and unpatch_sklearn functions
      • Fixed unexpected behavior that made accelerated functionality unavailable through scikit-learn patching if the unput was not of float32 or float64 data types. Scikit-learn patching now works with all numpy data types.
      • Fixed a memory leak that appeared when DataFrame from pandas was used as an input type
      • Fixed performance issue for interoperability with Modin
    • daal4py:

      • Fixed the crash of SVM and kNN algorithms on Windows on GPU
    • oneDAL:

      • Improved accuracy of Decision Forest Classification and Regression on CPU
      • Improved accuracy of KMeans algorithm on GPU
      • Improved stability of Linear Regression and Logistic Regression algorithms on GPU

    ​​Known Issues

    • oneDAL vars.sh script does not support kornShell
    Source code(tar.gz)
    Source code(zip)
  • 2021.1(Dec 14, 2020)

    The release contains all functionality of Intel® DAAL. See Intel® DAAL release notes for more details.

    What's New

    Library Engineering:

    • Renamed the library from Intel® Data Analytics Acceleration Library to Intel® oneAPI Data Analytics Library and changed the package names to reflect this.
    • Deprecated 32-bit version of the library.
    • Introduced Intel GPU support for both OpenCL and Level Zero backends.
    • Introduced Unified Shared Memory (USM) support

    Introduced new Intel® oneDAL and daal4py functionality:

    • GPU:
      • Batch algorithms: K-means, Covariance, PCA, Logistic Regression, Linear Regression, Random Forest Classification and Regression, Gradient Boosting Classification and Regression, kNN, SVM, DBSCAN and Low-order moments
      • Online algorithms: Covariance, PCA, Linear Regression and Low-order moments
      • Added Data Management functionality to support DPC++ APIs: a new table type for representation of SYCL-based numeric tables (SyclNumericTable) and an optimized CSV data source

    Improved Intel® oneDAL and daal4py performance for the following algorithms:

    • CPU:
      • Logistic Regression training and prediction
      • k-Nearest Neighbors prediction with Brute Force method
      • Logistic Loss and Cross Entropy objective functions

    Added Technical Preview Features in Graph Analytics:

    • CPU:
      • Undirected graph without edge and vertex weights (undirected_adjacency_array_graph), where vertex indices can only be of type int32
      • Jaccard Similarity Coefficients for all pairs of vertices, a batch algorithm that processes the graph by blocks

    Aligned the library with Intel® oneDAL Specification 1.0 for the following algorithms:

    • CPU/GPU:
      • K-means, PCA, kNN

    Introduced new functionality for scikit-learn patching through daal4py:

    • CPU:
      • Acceleration of NearestNeighbors and KNeighborsRegressor scikit-learn estimators with Brute Force and K-D tree methods
      • Acceleration of TSNE scikit-learn estimator
    • GPU:
      • Intel GPU support in scikit-learn for DBSCAN, K-means, Linear and Logistic Regression

    Improved performance of the following scikit-learn estimators via scikit-learn patching:

    • CPU:
      • LogisticRegression fit, predict and predict_proba methods
      • KNeighborsClassifier predict, predict_proba and kneighbors methods with “brute” method

    Known Issues

    • Intel® oneDAL DPC++ APIs does not work on GEN12 graphics with OpenCL backend. Use Level Zero backend for such cases.
    • train_test_split in daal4py patches for Scikit-learn can produce incorrect shuffling on Windows*
    Source code(tar.gz)
    Source code(zip)
  • 2020u3(Nov 3, 2020)

    What's New in Intel® DAAL 2020 Update 3:

    Introduced new Intel® DAAL and daal4py functionality:

    • Brute Force method for k-Nearest Neighbors classification algorithm, which for datasets with more than 13 features demonstrates a better performance than the existing K-D tree method
    • k-Nearest Neighbors search for K-D tree and Brute Force methods with computation of distances to nearest neighbors and their indices

    Extended existing Intel® DAAL and daal4py functionality:

    • Voting methods for prediction in k-Nearest Neighbors classification and search: based on inverse-distance and uniform weighting
    • New parameters in Decision Forest classification and regression: minObservationsInSplitNode, minWeightFractionInLeafNode, minImpurityDecreaseInSplitNode, maxLeafNodes with best-first strategy and sample weights
    • Support of Support Vector Machine (SVM) decision function for Multi-class Classifier

    Improved Intel® DAAL and daal4py performance for the following algorithms:

    • SVM training and prediction
    • Decision Forest classification training
    • RBF and Linear kernel functions

    Introduced new daal4py functionality:

    • Conversion of trained XGBoost* and LightGBM* models into a daal4py Gradient Boosted Trees model for fast prediction
    • Support of Modin* DataFrame as an input

    Introduced new functionality for scikit-learn patching through daal4py:

    • Acceleration of KNeighborsClassifier scikit-learn estimator with Brute Force and K-D tree methods
    • Acceleration of RandomForestClassifier and RandomForestRegressor scikit-learn estimators
    • Sparse input support for KMeans and Support Vector Classification (SVC) scikit-learn estimators
    • Prediction of probabilities for SVC scikit-learn estimator
    • Support of ‘normalize’ parameter for Lasso and ElasticNet scikit-learn estimators

    Improved performance of the following functionality for scikit-learn patching through daal4py:

    • train_test_split()
    • Support Vector Classification (SVC) fit and prediction
    Source code(tar.gz)
    Source code(zip)
  • 2020(Sep 25, 2019)

  • 2019_u4(Jun 4, 2019)

    Revision: 33235

    Linux* (32-bit and 64-bit binary): l_daal_oss_p_2019.4.007.tgz macOS* (32-bit and 64-bit binary): m_daal_oss_p_2019.4.007.tgz

    Note: Please, use Git client with enabled Git LFS module to clone repository if you want to get sources. We are working with GitHub support to enable correct work of archives ”Source code (zip)" and "Source code (tar.gz)".

    Source code(tar.gz)
    Source code(zip)
    l_daal_oss_p_2019.4.007.tgz(588.23 MB)
    mklfpk_lnx_20180112_7.tgz(322.57 MB)
    mklfpk_mac_20180112_7.tgz(160.53 MB)
    mklfpk_win_20180112_7.zip(80.11 MB)
    m_daal_oss_p_2019.4.007.tgz(290.73 MB)
Owner
oneAPI-SRC
oneAPI open source projects
oneAPI-SRC
A Modern C++ Data Sciences Toolkit

MeTA: ModErn Text Analysis Please visit our web page for information and tutorials about MeTA! Build Status (by branch) master: develop: Outline Intro

null 657 Jan 5, 2023
C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library

Build Status Travis CI VM: Linux x64: Raspberry Pi 3: Jetson TX2: Backstory I set to build ccv with a minimalism inspiration. That was back in 2010, o

Liu Liu 6.9k Jan 6, 2023
Edge ML Library - High-performance Compute Library for On-device Machine Learning Inference

Edge ML Library (EMLL) offers optimized basic routines like general matrix multiplications (GEMM) and quantizations, to speed up machine learning (ML) inference on ARM-based devices. EMLL supports fp32, fp16 and int8 data types. EMLL accelerates on-device NMT, ASR and OCR engines of Youdao, Inc.

NetEase Youdao 180 Jan 7, 2023
A lightweight C++ machine learning library for embedded electronics and robotics.

Fido Fido is an lightweight, highly modular C++ machine learning library for embedded electronics and robotics. Fido is especially suited for robotic

The Fido Project 413 Dec 17, 2022
A C++ standalone library for machine learning

Flashlight: Fast, Flexible Machine Learning in C++ Quickstart | Installation | Documentation Flashlight is a fast, flexible machine learning library w

Facebook Research 4.7k Jan 8, 2023
libsvm websitelibsvm - A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] website

Libsvm is a simple, easy-to-use, and efficient software for SVM classification and regression. It solves C-SVM classification, nu-SVM classification,

Chih-Jen Lin 4.3k Jan 2, 2023
mlpack: a scalable C++ machine learning library --

a fast, flexible machine learning library Home | Documentation | Doxygen | Community | Help | IRC Chat Download: current stable version (3.4.2) mlpack

mlpack 4.2k Dec 30, 2022
Open Source Computer Vision Library

OpenCV: Open Source Computer Vision Library Resources Homepage: https://opencv.org Courses: https://opencv.org/courses Docs: https://docs.opencv.org/m

OpenCV 65.6k Jan 1, 2023
A C library for product recommendations/suggestions using collaborative filtering (CF)

Recommender A C library for product recommendations/suggestions using collaborative filtering (CF). Recommender analyzes the feedback of some users (i

Ghassen Hamrouni 254 Dec 29, 2022
RNNLIB is a recurrent neural network library for sequence learning problems. Forked from Alex Graves work http://sourceforge.net/projects/rnnl/

Origin The original RNNLIB is hosted at http://sourceforge.net/projects/rnnl while this "fork" is created to repeat results for the online handwriting

Sergey Zyrianov 879 Dec 26, 2022
An open library of computer vision algorithms

VLFeat -- Vision Lab Features Library Version 0.9.21 The VLFeat open source library implements popular computer vision algorithms specialising in imag

VLFeat.org 1.5k Dec 29, 2022
Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

eXtreme Gradient Boosting Community | Documentation | Resources | Contributors | Release Notes XGBoost is an optimized distributed gradient boosting l

Distributed (Deep) Machine Learning Community 23.6k Dec 30, 2022
FoLiA library for C++

Libfolia: FoLiA Library for C++ Libfolia (c) CLS/ILK 2010 - 2021 Centre for Language Studies, Radboud University Nijmegen Induction of Linguistic Know

Language Machines 14 Dec 31, 2021
MITIE: library and tools for information extraction

MITIE: MIT Information Extraction This project provides free (even for commercial use) state-of-the-art information extraction tools. The current rele

null 2.8k Dec 29, 2022
Flashlight is a C++ standalone library for machine learning

Flashlight is a fast, flexible machine learning library written entirely in C++ from the Facebook AI Research Speech team and the creators of Torch and Deep Speech.

null 4.7k Jan 8, 2023
An optimized neural network operator library for chips base on Xuantie CPU.

简介 CSI-NN2 是 T-HEAD 提供的一组针对无剑 SoC 平台的神经网络库 API。抽象了各种常用的网络层的接口,并且提供一系列已优化的二进制库。 CSI-NN2 的特性: 开源 c 代码版本的参考实现。 提供玄铁 CPU 的汇编优化实现。

T-Head Semiconductor Co., Ltd. 32 Jan 5, 2023
C++ NN 🧠 A simple Neural Network library written in C++

C++ NN ?? A simple Neural Network library written in C++ Installation ??

Rohith 8 Dec 13, 2022
ML++ - A library created to revitalize C++ as a machine learning front end

ML++ Machine learning is a vast and exiciting discipline, garnering attention from specialists of many fields. Unfortunately, for C++ programmers and

marc 1k Dec 31, 2022