Intel® oneAPI Data Analytics Library Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
Visible to Intel only — GUID: GUID-AD623934-859E-4579-BECD-C9D448C6FFD2
Visible to Intel only — GUID: GUID-AD623934-859E-4579-BECD-C9D448C6FFD2
Singular Value Decomposition
Singular Value Decomposition (SVD) is one of matrix factorization techniques. It has a broad range of applications including dimensionality reduction, solving linear inverse problems, and data fitting.
Details
Given the matrix X of size
U is an orthogonal matrix of size
is a rectangular diagonal matrix of size with non-negative values on the diagonal, called singular values is an orthogonal matrix of size
Columns of the matrices U and V are called left and right singular vectors, respectively.
Computation
The following computation modes are available:
Examples
C++ (CPU)
Batch Processing:
Online Processing:
Distributed Processing:
Java*
Batch Processing:
Online Processing:
Distributed Processing:
Python*
Batch Processing:
Online Processing:
Distributed Processing:
Performance Considerations
To get the best overall performance of singular value decomposition (SVD), for input, output, and auxiliary data, use homogeneous numeric tables of the same type as specified in the algorithmFPType class template parameter.
Online Processing
SVD in the online processing mode is at least as computationally complex as in the batch processing mode and has high memory requirements for storing auxiliary data between calls to the compute() method. On the other hand, the online version of SVD may enable you to hide the latency of reading data from a slow data source. To do this, implement load prefetching of the next data block in parallel with the compute() method for the current block.
Online processing mostly benefits SVD when the matrix of left singular vectors is not required. In this case, memory requirements for storing auxiliary data goes down from
Distributed Processing
Using SVD in the distributed processing mode requires gathering local-node
Product and Performance Information |
---|
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201 |