This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Differences between NEON in Cortex-A8 and A9

Note: This was originally posted on 25th July 2011 at http://forums.arm.com

Currently i am working on a Cortex-A9 single-core chip(AML8726-m if you want to know more), and in the datasheet it's said there is a neon in it. But when i test the code here(http://hilbert-space.de/?p=22), i cannot find any acceleration on it, sometimes the neon-assembly- optimized code runs even slower than the arm-c-code. At the same time, the same code can get a pretty good acceleration on my i.MX515 which is a Cortex-A8 chip.


I am using the Android NDK to build a test app running on Android, can it be the reason?
Can anyone tell me why it happens? 


Here is some results:
#####On A8#####
arm c code: 116.*** ms
neon c code: 83.*** ms
neon asm code: 51.*** ms
#####On A9#####
arm c code: 107.*** ms
neon c code: 106-107.*** ms
neon asm code: 106-107.*** ms

Android is Linux based OS, so I can call gettimeofday() to get a precise time period in us level. The results on A9 are not identical but almost the same and I didn't run the same binary 3 times, I'm sure.

Thanks and looking forward to any useful suggestions.


Parents
  • Note: This was originally posted on 26th July 2011 at http://forums.arm.com


    That's strange...

    It's possible that your tests take the same time if you have made a good code that check that NEON is available...
    In this case, may be you don't have NEON on your Cortex A9. (Tegra 2 for example)
    I do not find any information about your processor

    http://www.amlogic.com/product01.htm

    they don't speak about NEON... so !

    In this case all your function call the basic ARM assembly code !
    That could explain the same time result !

    Etienne



    I got the manual guide for this chip, it does have NEON.
    Although it doesn't have NEON, how can it run the NEON assembly code in the ARM core, the CPU transforms it automatically?
    I mean if my A9 doesn't have NEON, I think the app should crash and exit and I cannot get any results from it, right?


Reply
  • Note: This was originally posted on 26th July 2011 at http://forums.arm.com


    That's strange...

    It's possible that your tests take the same time if you have made a good code that check that NEON is available...
    In this case, may be you don't have NEON on your Cortex A9. (Tegra 2 for example)
    I do not find any information about your processor

    http://www.amlogic.com/product01.htm

    they don't speak about NEON... so !

    In this case all your function call the basic ARM assembly code !
    That could explain the same time result !

    Etienne



    I got the manual guide for this chip, it does have NEON.
    Although it doesn't have NEON, how can it run the NEON assembly code in the ARM core, the CPU transforms it automatically?
    I mean if my A9 doesn't have NEON, I think the app should crash and exit and I cannot get any results from it, right?


Children
No data