Forums - Does QSML excute on DSP

10 posts / 0 new
Last post
Does QSML excute on DSP
sacoelsenthil
Join Date: 15 Sep 15
Posts: 4
Posted: Thu, 2016-07-14 02:37

Dear Qualcomm,

 

In the QSML header file (qsml_info.h), am seeing below source ,

 

============

enum QSML_INFO_TYPE { QSML_BLAS_CPU=1, QSML_BLAS_CPU_AND_DSP=2 };

============

 

1. Does QSML supports execution on DSP ? 

2. Latest version of QSML executes on Multi CPU and GPU using symphony or execution happening only on multi CPU ? 

Thanks for your valuable time. 

Regards,

Senthil

  • Up0
  • Down0
mbadin (not verified)
Posted: Thu, 2016-07-14 17:43

Hi Senthil,

Thank you for the question!  We currently only support the CPU, but we continue to add support for new primitives and plan to support additional parts of the SoC in the future.

Thank you,

Matthew

  • Up2
  • Down0
sacoelsenthil
Join Date: 15 Sep 15
Posts: 4
Posted: Thu, 2016-07-21 08:51

Dear Mr Mbadin,

 

Thanks for your reply. 

Am trying to use QSML along with caffe for MSM8996 chipset.

By default i cannot able to see any envirnonment variables for configuring the NUMBER_OF_THREADS and setting the number of CPU.

From the QSML document i can able to see some configuration for 8x26.

==========================

On x86 based systems, over subscription can be a problem for compute bound workloads as it causes cache thrashing which destroys performance. To prevent this, three environmental variables are available: SYMPHONY_NUM_THREADS= Controls the number of threads in the Symphony threadpool at launch time. QSML_NUM_THREADS= Controls the degree of parallelism of QSML functions, does not affect the size of the Symphony threadpool. The number of tasks launched by QSML will be the minimum of QSML_NUM_THREADS and SYMPHONY_NUM_THREADS. 

============================

1. Is it applicable to Android 64 bit platform also ? 

2. Kindly let me know ,how to configure the same for Android ? 

 

Regards,

Senthil

 

  • Up0
  • Down0
mbadin (not verified)
Posted: Fri, 2016-07-22 10:04
Hi Senthil,
 
Thank you for the follow up question!  As for the environmental variables, both will work on Android and they can be quite helpful with debugging.  In general though, Symphony and QSML do a pretty good job of managing the parallelism, so you shouldn't have to tweak the number of threads running for production.  The QSML documentation that you are referencing is really a method of working around hyper-threading, which only exists on x86 platforms, as the hyper-threaded cores interfere with the performance of compute bound workloads like matrix multiply.  If your Android application only uses a fixed number of threads, it may hurt performance when running the Android application on different Android platforms with a different number of cores.
 
If you run into any additional problems, please don't hesitate to reach out.
 
Thank you,
Matthew
  • Up1
  • Down0
sacoelsenthil
Join Date: 15 Sep 15
Posts: 4
Posted: Tue, 2016-07-26 02:52

Dear Madbin,

 

Thanks for your prompt response.

 

From the QSML FAQ page, there is a claim from QC that QSML is 5 times faster than Eigen.

 

I have measured the execution time of QSML and EIGEN integrated with caffee. Basically QSML and Eigen are performing convolution operations in my case. But QSML is only 1.8 times better compared to Eigen. I cannot able to see the 5x performance as claimed by QC.

 

Is there any configurations involved to get the maximum performance out of QSML ? like increasing/decreasing the number of threads involved, increasing/decreasing the number of cores involved ? Please share the interfaces/configurations (if any ) to achive 5x times performance than Eigen.

 

Regards,

Senthil

 

  • Up0
  • Down0
mbadin (not verified)
Posted: Thu, 2016-07-28 16:56
Hi Senthil,
 
Thank you for sharing your performance numbers, I am very excited to see we are almost 2x faster than Eigen!  Performance though will vary with the capabilities of the platform and how well each alternative optimizes for that platform.  It does look like Eigen has spent more time optimizing their code recently than they did in the past, instead of being 5x slower, they are only 2x slower on the platform you measured.
 
As we continue to add new primitives, features, and squeeze every drop of performance out of Qualcomm platforms, make sure to check back for new releases of QSML.
 
Thank you,
Matthew
  • Up1
  • Down0
Wilford
Join Date: 2 Feb 15
Posts: 1
Posted: Thu, 2017-01-26 01:50

As mentioned in this thread several months ago, QSML only supported CPU back then. Just wondering, has GPU and/or DSP support been added since then? Thanks.

  • Up0
  • Down0
mbadin (not verified)
Posted: Fri, 2017-02-03 11:39
Hi Wilford,
 
Thank you for the question!  I can't share an ETA, but we continue to add new primitives, features, and will support the entire Qualcomm platform.  Make sure to check back for new releases of QSML.
 
Thank you,
Matthew
  • Up1
  • Down0
sacoelsenthil
Join Date: 15 Sep 15
Posts: 4
Posted: Thu, 2017-04-27 06:45

Dear Wilford ,

 

Good to see this thread is alive :)

 

 Can you please tell me whether latest QSML supports DSP ? 

 

Regards,

Senthil . 

  • Up0
  • Down0
ToolsPM
Join Date: 15 Feb 13
Posts: 395
Posted: Thu, 2017-04-27 10:02

The current version of QSML does not run on the DSP.  It's something we hope to do, but don't have a release date yet. 

- Rick

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.