All Projects → oneapi-src → Onedal

oneapi-src / Onedal

Licence: apache-2.0
oneAPI Data Analytics Library (oneDAL)

Projects that are alternatives of or similar to Onedal

Daal4py
sources for daal4py - a convenient Python API to oneDAL
Stars: ✭ 113 (-70.42%)
Mutual labels:  hacktoberfest, data-analysis, machine-learning-algorithms
C Plus Plus
Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes.
Stars: ✭ 17,151 (+4389.79%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Calculadora Do Cidadao
💵 Tool for Brazilian Reais monetary adjustment/correction
Stars: ✭ 96 (-74.87%)
Mutual labels:  hacktoberfest, data-analysis
Free Ai Resources
🚀 FREE AI Resources - 🎓 Courses, 👷 Jobs, 📝 Blogs, 🔬 AI Research, and many more - for everyone!
Stars: ✭ 192 (-49.74%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Algorithmsanddatastructure
Algorithms And DataStructure Implemented In Python & CPP, Give a Star 🌟If it helps you
Stars: ✭ 400 (+4.71%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Innovative Hacktober
Make a pull request. Let's hack the ocktober in an innovative way.
Stars: ✭ 34 (-91.1%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Freud
Powerful, efficient particle trajectory analysis in scientific Python.
Stars: ✭ 118 (-69.11%)
Mutual labels:  hacktoberfest, data-analysis
genieclust
Genie++ Fast and Robust Hierarchical Clustering with Noise Point Detection - for Python and R
Stars: ✭ 34 (-91.1%)
Mutual labels:  machine-learning-algorithms, data-analysis
genie
Genie: A Fast and Robust Hierarchical Clustering Algorithm (this R package has now been superseded by genieclust)
Stars: ✭ 21 (-94.5%)
Mutual labels:  machine-learning-algorithms, data-analysis
taller SparkR
Taller SparkR para las Jornadas de Usuarios de R
Stars: ✭ 12 (-96.86%)
Mutual labels:  machine-learning-algorithms, data-analysis
Igel
a delightful machine learning tool that allows you to train, test, and use models without writing code
Stars: ✭ 2,956 (+673.82%)
Mutual labels:  data-analysis, machine-learning-algorithms
Netket
Machine learning algorithms for many-body quantum systems
Stars: ✭ 256 (-32.98%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Nmflibrary
MATLAB library for non-negative matrix factorization (NMF): Version 1.8.1
Stars: ✭ 153 (-59.95%)
Mutual labels:  data-analysis, machine-learning-algorithms
C
Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes.
Stars: ✭ 11,897 (+3014.4%)
Mutual labels:  hacktoberfest, machine-learning-algorithms
Loandefault Prediction
Lending Club Loan data analysis
Stars: ✭ 113 (-70.42%)
Mutual labels:  data-analysis, machine-learning-algorithms
Model Describer
model-describer : Making machine learning interpretable to humans
Stars: ✭ 22 (-94.24%)
Mutual labels:  data-analysis, machine-learning-algorithms
Spring2017 proffosterprovost
Introduction to Data Science
Stars: ✭ 18 (-95.29%)
Mutual labels:  data-analysis, machine-learning-algorithms
online-course-recommendation-system
Built on data from Pluralsight's course API fetched results. Works with model trained with K-means unsupervised clustering algorithm.
Stars: ✭ 31 (-91.88%)
Mutual labels:  machine-learning-algorithms, data-analysis
Data-Analysis
Different types of data analytics projects : EDA, PDA, DDA, TSA and much more.....
Stars: ✭ 22 (-94.24%)
Mutual labels:  machine-learning-algorithms, data-analysis
Articles
A repository for the source code, notebooks, data, files, and other assets used in the data science and machine learning articles on LearnDataSci
Stars: ✭ 350 (-8.38%)
Mutual labels:  data-analysis, machine-learning-algorithms

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_vector_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
    • Local and Global Triangle Counting

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.2 masterrls/2021.2-rls
Intel® DAAL 2020 Update 3 rls/daal-2020-u3-rls

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].