ARM NEON support

I want to compare the performance different about has ARM NEON support and not has ARM NEON support,

could someone know how to enable/disable it at openCL thanks?

Hi Linas,

Sorry for the late response. I need to ask our OpenCL compiler team. Their response:

When using pgcl on ARM, the option “-Mnoneon”, when placed between the delimiters such as: --opencl-flags -Mnoneon --, will disable neon vector instructions, even if there are vector datatypes and vector operations within the LLVM assembly file. Note that this assumes static compilation.

  • Mat

Hi Mat

Thanks for your reply

I have give a try for your compiler option

after static compiler ,I used objdump to check the output so file ,I still see the neon instruction , it is normal?

if I want to used dymantic compiler ,to diable neon support , how to do it?


Linas

Sorry , after I check , the compiler flasg "-Mnoneon " is working, I could disable Neon support

what I see is VFP instruction

BTW , I also found if I add compiler flag -o1 or -o2 ,the binary look like same as I used "-Mnoneon " it is normal?

anotherthing is , if I want to disable VFP support , what should I do?

BTW , I also found if I add compiler flag -o1 or -o2 ,the binary look like same as I used "-Mnoneon " it is normal?

The compiler optimization level shouldn’t matter since vector operations code generation will be generated at all opt levels. The only difference is if NEON or VFP is used, and NEON is the default where available.

if I want to disable VFP support , what should I do?

We currently only support VFP and NEON. You will need to use one or the other.

  • MAt

Hi Mat

for

"BTW , I also found if I add compiler flag -o1 or -o2 ,the binary look like same as I used "-Mnoneon " it is normal? "
your answer is mean , add o1~o2 not impact the performance , only NEON or VFP support right?

for

“if I want to disable VFP support , what should I do?”
we want to know the different is

1.Neon + vfp
2.none neon +vfp
3.Neon + none VFP
4.none Neon + none VFP

base on your answer I have know we can’t disable both , but how about I just disable vfp support?

Hi Linas,

add o1~o2 not impact the performance , only NEON or VFP support right?

No. I’m saying that if you have vector operation then -O1 or -O2 should not effect it and I don’t know why your binary would look the same as if “-Mnoneon” was applied. -O1 or -O2 do not disable vector operations.

I have know we can’t disable both , but how about I just disable vfp support?

Either VFP or NEON is used. Hence, to disable VFP, use NEON.

  • Mat

Hi Mat
your answer “Either VFP or NEON is used. Hence, to disable VFP, use NEON.”

so you mean could disable VFP to used Neon right, I don’t see any compiler flag like -Mnoen… so could you told me how to do that

Hi Linas,

Default => Use Neon
-Mnoneon => Use VFP

  • Mat