Open main menu

CDOT Wiki β

Changes

DPS921/Intel Math Kernel Library

114 bytes added, 21:27, 10 April 2021
no edit summary
== Intel Math Library ==
# === Features===
## ==== Linear Algebra====
Intel has implemented linear algebra functions that follow industry standards ([BLAS](http://www.netlib.org/blas/) and [LAPACK](http://www.netlib.org/lapack/)). These functions include those that can do the following:
- Level 1: Vector-vector operations
- Level 2: Matrix-vector operations
- Level 3: Matrix-matrix operations
## Level 1: Vector-vector operations Level 2: Matrix-vector operations Level 3: Matrix-matrix operations ==== Sparse Linear Algebra Functions====
Able to perform low-level inspector-executor routines on sparse matrices, such as:
 
- Multiply sparse matrix with dense vector
 
- Multiply sparse matrix with dense matrix
 
- Solve linear systems with triangular sparse matrices
 
- Solve linear systems with general sparse matrices
A sparse matrix is matrix that is mostly empty, these are common in machine learning applications. Using standard linear algebra functions would lead to poor performance and would require greater amounts of storage. Specially writen sparse linear algebra functions have better performance and can better compress matrices to save space.
A sparse matrix is matrix that is mostly empty, these are common in machine learning applications. Using standard linear algebra functions would lead to poor performance and would require greater amounts of storage. Specially written sparse linear algebra functions have better performance and can better compress matrices to save space.
## ==== Fast Fourier Transforms====
Enabling technology today such as most digital communications, audio compression, image compression, satellite tv, FFT is at the heart of it.
A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT).
## ==== Random Number Generator==== The Intel Math Kernal Kernel Library has an interface for RNG routines that use pseudorandom, quasi-random,
and non-deterministic generators. These routines are developed the calls to the highly optimized Basic Random Number Generators (BRNGs).
All BRNGs differentiate in speeds and properties so its easy to find a optimized one for your application.
All RNG routines can be categorized in several different categories.
 
- Engines - hold the state of a generator
 
- Transformation classes - holds different types of statistical distribution
 
- Generate function - the routine that obtains the random number from the statistical distribution
 
- Services - using routines that can modify the state of the engine
The generation of numbers is done in 2 steps:
 
1. generate the state using the engine.
 
2. iterate over the values and the output is the random numbers.
## ==== Data Fitting====
The Intel Math Kernal Library provide spline-based interpolation that can be ultilized to approximate functions for derivatives, integrals and cell search operations.
Data Fitting routines use the following workflow to process a task:
 
- Create a task or multiple tasks.
 
- Modify the task parameters.
 
- Perform a Data Fitting computation.
 
- Destroy the task or tasks.
Data Fitting functions:
 
- Task Creation and Initialization Routines.
 
- Task Configuration Routines.
 
- Computational Routines.
 
- Task Destructors.
## ==== Summary Statistics====
The Intel Math Kernal Library has an interface for Summary Statistics that can compute estimates for
single, double and multi-dimensional datasets. For example, such parameters may be precision, dimensions of user data, the matrix of the observations, or shapes of data arrays.
Summary Statistics calculate:
 
- Raw and central sums/moments up to the fourth order.
 
- Variation coefficient.
 
- Skewness and excess kurtosis.
 
- Minimum and maximum.
 
Additional Features:
 
- Detect outliers in datasets.
 
- Support missing values in datasets.
 
- Parameterize correlation matrices.
 
- Compute quantiles for streaming data.
## Vector Math
==== Vector Math ====  There are two main set of functions for the Vector Math library that the intel MKL uses they are: 
- VM Mathematical Functions�Which allows for it to compute values of mathematical functions e.g. sine, cosine, exponential, or logarithm on vectors that are stored in contiguous memory.
 
- VM Service Functions are used for showing when catching errors made in the calculations or accuracy. Such as catching error codes or error messages from improper calculations.
 # === Code Samples===
These samples are directly from the Intel Math Kernal Library code examples.
## ==== Vector Add==== ```//==============================================================
// Vector Add is the equivalent of a Hello, World! sample for data parallel
// programs. Building and running the sample verifies that your development
## ==== Math Mul====
```//==============================================================
// Copyright © 2020 Intel Corporation