Forums - Missing library symphony_hexagon_examples

3 posts / 0 new
Last post
Missing library symphony_hexagon_examples
teclas2k
Join Date: 3 Apr 12
Posts: 2
Posted: Sat, 2016-05-07 17:16

Hello,

it's been a long 12h since I got hold of your SDK, HEXAGON_SDK (2.0) and, for the last 9,
I've been met with this linking error about symphony_hexagon_examples.

Calling a monitor to rescue, I found it's looking for files in the (missing) "symphony_hexagon_examples" folder from this place: 

Hexagon_SDK\2.0\examples\common\

It took me the 1st hour to uninstall and reinstall everything over and over to make sure I didn't get anything wrong.

After giving up and trying to build a simple program following the instructions starting at pages 30- of the symphony-refman-en.pdf and getting the thing to compile... ARGHHHHHHHH!!!!!!!

Quote:
(...)arm-linux-androideabi/bin/ld.exe: error: cannot find -lsymphony_hexagon_examples collect2.exe: error: ld returned 1 exit status

Resorting once again to my faithful monitor, it looks for 

Hexagon_SDK\2.0\examples\common\symphony_hexagon_examples\android_Debug\ship

No such folder exists!!!

What is happening???

Edit (because there were 37 views since I created this post yesterday):
May, 8th: giving up on reaching Hexagon 
(for the time being).

Today I managed to build Android (native) console executables (SYMPHONY_LIB_TYPE=release-gpu)!
After rooting my phone and "pushing" the executable to a folder and the symphony lib to /vendor/lib, I started playing around with the supplied  for_hello_world sample. Using one of the several monitoring tools available in Play Store, I can see what cores get used.

Symphony's supplied pfor seems to take ages (compared to cpu's regular for) for a run over, say, 1024k integers.

When using tasks (with OpenCL kernels) things improve a lot BUT(!!) still no sign of Adreno being used, it resorts to the BIG A53!

Trying OpenCL alone to find out if the GPU "wakes up".





 

 
 

 

  • Up0
  • Down0
cascaval Moderator
Join Date: 14 May 13
Posts: 3
Posted: Mon, 2016-05-09 15:04

Hello,

I would like to better understand the issues you're facing. Do you mind sharing which version of Symphony are you using?

Section 2.6 of the Symphony User's guide lists the following steps to build the symphony_hexagon_examples library:

The following commands assume you have Symphony installed at C:\opt\Qualcomm\Symphony\1.0.0 and the Hexagon SDK 1.2.2 at   C:\Qualcomm\Hexagon_SDK\1.2.2.

  • Add the symphony_hexagon_examples library to the Hexagon SDK.

    xcopy C:\opt\Qualcomm\Symphony\1.0.0\arm-linux-androideabi\examples\symphony_hexagon_examples C:\Qualcomm\Hexagon_SDK\1.2.2\examples\common\symphony_hexagon_examples\ /S /V /I

  • Build the symphony_hexagon_examples library

  • # Inside the root tree of your Hexagon SDK installation, run

    setup_sdk_env.cmd.
    cd examples
    \common\symphony_hexagon_examples make tree V=android_Debug
    make tree V=hexagon_Debug_dynamic 

The directory structure between Hexagon SDK 1.2.2 for which the instructions have been written and Hexagon 2.0 which you seem to be using has changed slightly. I suggest that after you copy the  symphony_hexagon_examples directory, you actually copy the contents of the  Hexagon_SDK/2.0/examples/calculator/glue directory over Hexagon_SDK/2.0/examples/symphony_hexagon_examples/glue.

Regarding the performance of the pfor_each construct, the code in the example directory is intended as a simple example, not a performance test. Multiplying by 2 an array of 1024 elements is too small a loop to benefit from parallelization.

Thanks, Calin

  • Up0
  • Down0
teclas2k
Join Date: 3 Apr 12
Posts: 2
Posted: Wed, 2016-05-11 11:49

Quote:
The directory structure between Hexagon SDK 1.2.2 for which the instructions have been written and Hexagon 2.0 which you seem to be using has changed slightly. I suggest that after you copy the  symphony_hexagon_examples directory, you actually copy the contents of the  Hexagon_SDK/2.0/examples/calculator/glue directory over Hexagon_SDK/2.0/examples/symphony_hexagon_examples/glue.


Hi there! First of all, Thanks for your precious time!

You got it right about the SDK, it's v2.0.
Regarding the glue code, That might do it.

Regarding the 1024 elements, I really meant 1024K.
I tried several other sizes (8.192.000, 81.920.000).
It seems to not be touching the gpu BUT I get the Big/Little to
work simultaneously (the eight cores wake up to max speed).

Nevertheless, I might have an issue due to this being
an SD615 based phone rather than a development board.

I'm adding OpenCL code to check. The platform and the Adreno
get properly identified, by the way.

I'll come back to you a.s.a.p. and let you know how it went.

Thanks again for your support!
.

 


 

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