Results 1 to 6 of 6

Thread: Unpleasant: LLVM/Clang 3.2 On The ARM Cortex-A15

  1. #1
    Join Date
    Jan 2007
    Posts
    15,181

    Default Unpleasant: LLVM/Clang 3.2 On The ARM Cortex-A15

    Phoronix: Unpleasant: LLVM/Clang 3.2 On The ARM Cortex-A15

    Since publishing LLVM/Clang 3.2 benchmarks a few days ago that showed the Clang C/C++ compiler competing with -- and in some cases outperforming -- the GCC compiler on Intel x86_64, several Phoronix readers have been asking how things compare on the ARM side...

    http://www.phoronix.com/vr.php?view=MTI2NDg

  2. #2
    Join Date
    Dec 2008
    Location
    San Bernardino, CA
    Posts
    233

    Default

    Michael,

    Thank you for your excellent articles on GCC/LLVM on ARM. I'm an Android developer, and have noticed severe performance degradation on the Cortex-A15 (Qualcomm Snapdragon Pro S4 "Krait" line) SoC in conjunction with GCC (both 4.6 and 4.7). I'm not sure if it is due to GCC, the Qualcomm Snapdragon S4 Pro "Krait" SoC or something in the Android NDK itself.

    On my mostly integer based code, I've been seeing performance on the Krait that is inline with the first generation Snapdragon hardware! I don't have the resources to run a comprehensive performance analysis, but perhaps you do. It would be very interesting to see if such performance regressions exist on the Linux side (i'd be surprised if they didn't) with the "Krait" hardware. If you get a chance, could you please run some benchmarks on the new Qualcomm Krait and compare it against another Cortex-A15 (Exynos) SoC as well as the Cortex-A9?

    Thanks!
    Last edited by gururise; 12-30-2012 at 01:55 PM.

  3. #3
    Join Date
    Jan 2012
    Posts
    113

    Default

    Quote Originally Posted by gururise View Post
    I'm an Android developer, and have noticed severe performance degradation on the Cortex-A15 (Qualcomm Snapdragon Pro S4 "Krait" line) SoC
    Qualcomm S4 "Krait" is not the same as ARM Cortex-A15. It's supposed to be a Cortex-A15 competitor from Qualcomm, providing "similar performance". Just like AMD Athlon was a competitor for Intel Pentium III, etc.
    in conjunction with GCC (both 4.6 and 4.7)
    Do older versions of GCC generate better code for Krait than GCC 4.6 and 4.7?

  4. #4
    Join Date
    Dec 2008
    Location
    San Bernardino, CA
    Posts
    233

    Default

    Quote Originally Posted by ssvb View Post
    Qualcomm S4 "Krait" is not the same as ARM Cortex-A15. It's supposed to be a Cortex-A15 competitor from Qualcomm, providing "similar performance". Just like AMD Athlon was a competitor for Intel Pentium III, etc.
    While this may be true, most marketing materials provided by Qualcomm and reviews are comparing the "Krait" to the Cortex-A15. It would be very interesting to see how direct that comparison is. In my testing, for single-threaded C/C++ code using GCC as the compiler, the "Krait" falls flat on its nose. It is also my understanding that the "Krait" has a smaller cache than the A15. I also found a post detailing how the "Krait" has, in some cases, worse IPC than even a stock Cortex-A8.


    Do older versions of GCC generate better code for Krait than GCC 4.6 and 4.7?
    I've only tried GCC 4.6 and 4.7. I will try with 4.4 and let you know. I did try both compiling with Thumb-2 and full ARM instructions and there was almost no difference in speed (Thumb-2 was just a bit slower), with the "Krait" still slow as molasses.

  5. #5
    Join Date
    Jan 2012
    Posts
    113

    Default

    Quote Originally Posted by gururise View Post
    I also found a post detailing how the "Krait" has, in some cases, worse IPC than even a stock Cortex-A8.
    If I'm interpreting the results from these tables correctly, Krait has 2 (!) cycles latency even for simple scalar integer arithmetics. Most of the modern processors (both ARM and Intel) have 1 cycle latency for such instructions. If this is correct, then Krait clearly does not stand a chance against genuine Cortex-A15. Krait is going to perform particularly bad on the code with long dependency chains. And by the way, GCC has some issues related to it: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55623

  6. #6
    Join Date
    Dec 2008
    Location
    San Bernardino, CA
    Posts
    233

    Default

    Quote Originally Posted by ssvb View Post
    If I'm interpreting the results from these tables correctly, Krait has 2 (!) cycles latency even for simple scalar integer arithmetics. Most of the modern processors (both ARM and Intel) have 1 cycle latency for such instructions. If this is correct, then Krait clearly does not stand a chance against genuine Cortex-A15. Krait is going to perform particularly bad on the code with long dependency chains. And by the way, GCC has some issues related to it: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55623
    Thats what I'm seeing too. Thats quite bothersome. What I'm confused about is how the Krait shows such good performance on several Android benchmark tests (ie. Antutu, etc)? Wonder if it could be the GPU making up for the poor CPU performance??

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •