FAQ

General

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

Is QML free to use?
QML 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 QML?
Machine learning, neural networks, simulations and data analytics all benefit from using QML.

Capabilities

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

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

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

Does QML have benefits over other deep learning frameworks (e.g. Caffe, Torch or Theano)? 
QML is not a deep learning framework, QML 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 QML can be used with those frameworks as we support the same standard interfaces.  With QML, you don’t have to switch to another framework or learn a new API.  Simply link QML with your favorite machine learning framework and we will take care of the rest.

Which version of Android is QML 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 QML parallel?
QML has both a standalone sequential version as well as a parallel version that uses the Qualcomm® Snapdragon™ Heterogeneous Compute SDK runtime. 

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

Can QML be used with non-Snapdragon processors?
QML 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 QML, so check back for additional primitives and support.