FAQ

General

What is Qualcomm Snapdragon Math Libraries (QSML)?
High-performance implementations of almost 2000 Basic Linear Algebra Subprograms (BLAS) and LAPACK primitives, optimized for all generations of Snapdragon processors.

Is QSML free to use?
QSML requires you to register on Qualcomm Developer Network (QDN) and agree to the license agreement to download. There is no fee for the rights granted.

What type of use cases benefit from QSML?
Machine learning, neural networks, simulations and data analytics all benefit from using QSML.

Capabilities

Is QSML a drop-in for OpenBLAS or Atlas?
Yes.

Can QSML be used in my favorite math or machine learning framework?
QSML implements the standard BLAS and CBLAS interfaces, so any framework that uses the standard interfaces will be compatible with QSML.

Why use QSML over Eigen?
For single- (SGEMM) and double- (DGEMM) precision general matrix-to-matrix multiplications QSML shows up to 5x better performance when using QSML on Snapdragon processors as when using Eigen alone.

Does QSML have benefits over other deep learning frameworks (e.g. Caffe, Torch or Theano)? 
QSML is not a deep learning framework, QSML powers all the deep learning frameworks you already know and love.  All machine learning frameworks are built on standard math libraries such as BLAS, which means QSML can be used with those frameworks as we support the same standard interfaces.  With QSML, you don’t have to switch to another framework or learn a new API.  Simply link QSML with your favorite machine learning framework and we will take care of the rest.

Which version of Android is QSML compiled for?
The 32-bit ARM binary is compiled for Version 19 of the Android API. The 64-bit ARM binary is compiled for Version 21 of the Android API.

Do you support both ARM Linux and ARM Android?
Yes, we support both Linux and Android platforms with binaries for both 32-bit and 64-bit ARM processors.

Do you provide x86 binaries?
We provide x86 binaries to aid development with Snapdragon processors being the deployment target.  The x86 Linux binaries are compiled for Ubuntu 14.04.

Is QSML parallel?
QSML has both a standalone sequential version as well as a parallel version that uses the Qualcomm® Symphony™ system manager runtime. 

Do you support a 64 bit integer interface?
We support both LP64 and ILP64 versions of BLAS and CBLAS.

Can QSML be used with non-Snapdragon processors?
QSML only supports Qualcomm Snapdragon processors.

Which parts of the SoC are supported?
We currently support the CPU.

Are you adding new primitives?
We continue to add new primitives to QSML, so check back for additional primitives and support.