Forums - [Q] Is FastCV for Snapdragon optimized based on Adreno GPU?

9 posts / 0 new
Last post
[Q] Is FastCV for Snapdragon optimized based on Adreno GPU?
jaehyeonyoo
Join Date: 9 Mar 16
Posts: 1
Posted: Wed, 2016-03-09 23:13

Hi I'm a novice of Qualcomm SDK and I firstly meet FastCV and Adreno GPU SDK.

As we know, OpenCV has a compile option for GPU parallelism. Is there couterpart in FastCV?

I know that my Qualcomm chipset has Adreno GPU. Is FastCV already optimized with respect to that GPU?

Or, do i need to implement parallel code based on Adreno GPU SDK instead?

 

Thank you in advance,

Jae Yoo

  • Up0
  • Down0
jeff4s Moderator
Join Date: 4 Nov 12
Posts: 106
Posted: Thu, 2016-03-10 15:38

Hi,

The way to use GPU optimized FastCV APIs is different from OpenCV. FastCV has GPU optimization for a subset of APIs. Usually user sets the appropriate operating mode, e.g. FASTCV_OP_PERFORMANCE, if an API has GPU-optimized variant and it provides best performance then it will run on GPU. However user cannot handpick a particular API to run on GPU.

Cheers,

-Jeff

  • Up0
  • Down0
gutao
Join Date: 6 Jun 17
Posts: 9
Posted: Tue, 2017-06-06 20:44

Hi, 

    What will a FastCV program run on in default without setting the operating mode? Will it run on CPU or Hexagon DSP?

     Can we specify where the FastCV program should run on?

     I have downloaded both the SDK for Hexagon and FasterCV as well. I want to implement some computer vision related algorithms on Qualcomm Snapdragon 820 platform, which SDK should I choose, Hexagon or FasterCV?

BR

Frank

  • Up0
  • Down0
jeff4s Moderator
Join Date: 4 Nov 12
Posts: 106
Posted: Thu, 2017-06-08 14:32

Hi,

Some FastCV APIs have been optimized for Adreno GPU. Depending on the API and operation mode, GPU optimization may be used at run time. It's entirely transparent to the user. Since FastCV is not open source, it is different from OpenCV where you can compile your own lib to choose GPU implementation.

With Adreno SDK you write your own OpenCL code to run on Adreno GPU.

Cheers,

-Jeff

  • Up0
  • Down0
gutao
Join Date: 6 Jun 17
Posts: 9
Posted: Fri, 2017-06-16 01:05

Hi,

   Thanks for your reply.

   I guess Adreno GPU is the best choice for heavy-computation applications.  What is the typical development procedure when using GPU?

   I have codes written in C++ and OpenCV ready to use. However, OpenCV is not supported in Qualcomm SDK. So should I change all the OpenCV functions in my code to FastCV or should I use OpenCL instead?

 B.T.W,   what about Hexagon DSP when considering both the power consumption and the performance as well?  Will the code written in OpenCL and FastCV API work both on Hexagon DSP and Adreno GPU?

BR

Tao

  • Up0
  • Down0
jeff4s Moderator
Join Date: 4 Nov 12
Posts: 106
Posted: Fri, 2017-06-16 17:34

Hi,

It is recommended to always specify operating mode before calling FastCV APIs. If not it will run on CPU and may not use any optimization such as NEON. However, you cannot cherry-pick APIs to run on specific processor (e.g. CPU, DSP or GPU).

Within Hexagon SDK you get the FastCV library optimized for Hexagon DSP, and you can develop your application to run entirely on DSP. If you use FastCV SDK, you develop your application to run on CPU but the FastCV APIs you call can run on other processors depending on operating mode. So if you are just starting out to build CV applications FastCV SDK would be a good choice. If your goal is to run your application on DSP then Hexagon SDK could be a good option since it includes the same FastCV APIs for Hexagon specifically.

Hope this clarifies.

Cheers,

-Jeff

  • Up0
  • Down0
gutao
Join Date: 6 Jun 17
Posts: 9
Posted: Sun, 2017-06-18 23:10

Hi

    Thanks so much for your reply. It really helps!

    I have another question regarding the openCV and fastCV.

    I used to think openCV functions are not supported when using  Hexagon IDE/SDK. Recently, however, I have seen many people posted questions for the use of OpenCV in this forum. So it seems opencv functions such as imread() are really supported.

    But I do not know how to configure the openCV environment for Hexagon IDE. Is it something similar to the configuration in visual studio? Is there any guide for this configuration?

BR

Tao

  • Up0
  • Down0
jeff4s Moderator
Join Date: 4 Nov 12
Posts: 106
Posted: Mon, 2017-06-19 09:45

Hi,

OpenCV is open source. There's nothing preventing you from compiling OpenCV library or downloading prebuilt library to link to your project.

For Hexagon specific questions please post your questions in its forum.

https://developer.qualcomm.com/forums/software/hexagon-dsp-sdk

Cheers,

-Jeff

  • Up0
  • Down0
gutao
Join Date: 6 Jun 17
Posts: 9
Posted: Mon, 2017-06-19 20:14

Hi,

    Thanks for your help. I have posted the question in Hexagon-dsp-sdk.

    B.T.W, in order to use fastCV, do I have to install the fastCV sdk?

    Currently, I have installed the Hexagon DSP IDE. If I want to accelerate some functions using fastCV optimized functions for Hexagon DSP, do I need the fastCV sdk or Hexagon DSP IDE alone would be enough?

BR

Tao

  • 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.