oneAPI Data Analytics Library (oneDAL)

repository·main·Indexed 20 days ago

https://github.com/uxlfoundation/onedal

A high-performance C++ and DPC++ library providing accelerated machine learning algorithms for tabular data across CPUs, GPUs, and distributed systems. The documentation covers installation and build processes using Bazel and Bazelisk on Linux and Windows, including configuration for CPU instruction sets (SSE2, AVX2, AVX-512), device selection for DPC++, and the execution of oneAPI C++ examples and test suites.

Tokens
154.8K
Snippets
234
Records
780
Agent score
71%

What's inside oneDAL

  1. Overview of Normalization algorithms in oneDAL

    main

    Normalization in oneDAL provides algorithms to transform data before it is used by other machine learning models, such as classifiers. This process can improve both computational accuracy and efficiency.

    Currently, oneDAL implements two primary normalization techniques:

    1. z-score: Scales data based on the mean and standard deviation.
    2. min-max: Scales data to a specific range (typically [0, 1]) based on the minimum and maximum values.
  2. Overview of oneDAL Algorithms

    main

    The Algorithms component in oneDAL provides a collection of classes designed for data analysis (data mining) and data modeling (training and prediction). The library supports a wide range of mathematical and statistical operations, including:

    • Matrix Decompositions: For linear algebra operations.
    • Clustering: For grouping data points.
    • Classification and Regression: For predictive modeling.
    • Association Rules Discovery: For finding relationships in datasets.
    • Other key areas: Covariance, graph algorithms, kernel functions, nearest neighbors, objective functions, optimizers, pairwise distances, and statistics.
  3. Overview of Decision Forest algorithms

    main

    The Decision Forest module provides classification and regression algorithms based on an ensemble of tree-structured classifiers (decision trees). The implementation uses the bagging technique—Bootstrap Aggregation—combined with a random choice of features to build the forest.

    Key concepts:

    • Decision Tree: A binary tree graph where internal (split) nodes represent a decision function used to select child nodes, and leaf (terminal) nodes represent the final response values.
    • Classification: Used for predicting categorical labels.
    • Regression: Used for predicting continuous values.
  4. Overview of oneDAL data analytics stages

    main

    oneDAL (oneAPI Data Analytics Library) provides building blocks that cover the entire lifecycle of a data analytics pipeline. It is designed to support end-to-end analytics, including scenarios where specific stages are performed on edge devices close to the data source.

    The library covers the following stages:

    • Data acquisition from a data source
    • Preprocessing
    • Transformation
    • Data mining
    • Modeling
    • Validation
    • Decision making

    Because the APIs are agnostic about specific cross-device communication technologies, they can be integrated into various end-to-end analytics frameworks.

  5. Overview of Support Vector Machine (SVM) in oneDAL

    main

    oneDAL provides Support Vector Machine (SVM) implementations for both classification and regression tasks. SVMs are part of the generalized linear classification problem family. The library supports two primary computational methods for these operations:

    1. SMO (Sequential Minimal Optimization)
    2. Thunder

    For both training and inference, the library provides consistent programming interfaces that handle specific input and result data structures.

  6. Overview of Logistic Regression in oneDAL

    main

    The Logistic Regression algorithm in oneDAL is designed to solve classification problems. It predicts class labels and the probabilities of objects belonging to each specific class.

    The implementation supports two primary phases:

    1. Training: Uses computational methods like dense_batch to process train_input and produce train_result via the train(...) programming interface.
    2. Inference: Uses computational methods like dense_batch to process infer_input and produce infer_result via the infer(...) programming interface.
  7. Overview of Connected Components operations and interfaces

    main

    The Connected Components functionality in oneDAL provides multiple computational methods and programming interfaces to handle vertex partitioning.

    Available components include:

    • Computational methods: afforest and compute.
    • Programming Interfaces: vertex_partitioning(...) API.
    • Data Structures: vertex_partitioning_input for input configuration and vertex_partitioning_result for handling the output labels.
  8. Overview of Covariance and Correlation operations

    main

    The oneDAL covariance algorithms measure the linear dependence and joint variability between two random variables. The library provides implementations for computing:

    • Means
    • Covariance: Supports both sample covariance and covariance estimated by the maximum likelihood method.
    • Correlation: A dimensionless measure that normalizes covariance by the square root of the variances of the two features.

    Operations are categorized into three computational stages: Computing, Partial Computing, and Finalize Computing. This allows for efficient processing of data, especially in distributed or streaming contexts.

  9. Overview of Basic Statistics algorithms

    main

    The Basic Statistics algorithm in oneDAL computes a comprehensive set of quantitative dataset characteristics. It is designed to handle both dense and potentially partitioned data through different computational methods.

    Supported characteristics include:

    • Minimums and maximums
    • Sums
    • Means
    • Sums of squares
    • Sums of squared differences from the means
    • Second order raw moments
    • Variances
    • Standard deviations
    • Variations
  10. Overview of oneDAL machine learning acceleration

    main

    oneDAL (oneAPI Data Analytics Library) is a C++ library designed to provide accelerated machine learning routines for tabular data (such as linear regression, K-means clustering, and random forests). It is optimized for CPUs, GPUs, and multi-node distributed setups.

    OneDAL provides highly optimized algorithmic building blocks for the entire data analytics lifecycle, including:

    • Preprocessing
    • Transformation
    • Analysis
    • Modeling
    • Validation
    • Decision making

    It supports multiple computation modes: batch, online, and distributed processing.