Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

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

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    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; 30 December 2012, 02:55 PM.

    Comment


    • #3
      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?

      Comment


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

        Comment


        • #5
          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

          Comment


          • #6
            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??

            Comment

            Working...
            X