Installation | Documentation | Support | Examples | How to Contribute
oneAPI Data Analytics Library (oneDAL) is a C++ and DPC++ library (powering the Extension for Scikit-learn in Python) which implements accelerated machine learning routines for tabular data (e.g. linear regression, K-means clustering, random forests, etc.) for CPUs, GPUs, and multi-node distributed setups.
Acceleration on CPUs is achieved by leveraging SIMD instructions and exploiting cache structures of modern hardware, while GPU acceleration leverages the SYCL framework and the oneMKL library.
OneDAL is part of the UXL Foundation and is an implementation of the oneAPI specification for the oneDAL component.
There are different ways for you to build high-performance data science applications that use the advantages of oneDAL:
- Use Extension for Scikit-learn* to accelerate existing scikit-learn code by making it call oneDAL behind the scenes.
- Use oneDAL C++ interfaces with or without SYCL support (learn more).
Check the System Requirements before installing to ensure compatibility with your system.
There are several options available for installing oneDAL:
-
Binary Distribution: pre-built binary packages are available from the following sources:
-
Intel® oneAPI:
- Download as Part of the Intel® oneAPI Base Toolkit
- Download as the Stand-Alone oneAPI Data Analytics Library
-
Conda:
Channel Version conda-forge
-
-
Source Distribution: Clone this GitHub repository or download a specific version of oneDAL from the GitHub releases page and follow the instructions in the INSTALL.md file.
C++ Examples:
Python Examples:
oneDAL documentation:
Other related documentation:
oneDAL library is used for Spark MLlib acceleration as part of OAP MLlib project and 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
oneDAL supports 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
The oneDAL project is governed by the UXL Foundation and you can get involved in this project in multiple ways. It is possible to join the AI Special Interest Group (SIG) meetings where the group discuss and demonstrates work using this project. Members can also join the Open Source and Specification Working Group meetings.
You can also join the mailing lists for the UXL Foundation to be informed of when meetings are happening and receive the latest information and discussions.
You can contribute to this project and also contribute to the specification for this project, read the CONTRIBUTING page for more information.
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].
To report a vulnerability, refer to Intel vulnerability reporting policy.
We welcome community contributions. Check our contributing guidelines to learn more. You can also contact the oneDAL team via UXL Foundation Slack using #onedal channel.
oneDAL is distributed under the Apache License 2.0 license. See LICENSE for more information.
oneMKL FPK microlibs are distributed under Intel Simplified Software License. Refer to third-party-programs-mkl.txt for details.