Announcement

Collapse
No announcement yet.

Arch-ing ARM: Running Arch Linux On The NVIDIA Tegra 2

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

  • Arch-ing ARM: Running Arch Linux On The NVIDIA Tegra 2

    Phoronix: Arch-ing ARM: Running Arch Linux On The NVIDIA Tegra 2

    The CompuLab Trim-Slice is quite an interesting dual-core ARM Tegra 2 device. This nettop/desktop-oriented system ships with Ubuntu 11.04 by default, but it is also well supported by Arch Linux. In this article are some tests of the dual-core ARM Cortex-A9 1.0GHz system running under Arch.

    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
    I'm not sure where you got the "softfp" bit from but if you got it from the CFLAGS, be aware that this doesn't necessarily mean it's not using the FPU. -mfloat-abi=softfp merely tells it to use the soft-float calling conventions. The same goes for "softfloat" in the host triplet. I have built for two ARM systems before.

    For the ZTE Blade, which does have an FPU...
    Code:
    armv6j-softfloat-linux-uclibceabi-gcc -march=armv6j -mfpu=vfp -mfloat-abi=softfp
    For the Medion MD 86407, which doesn't have an FPU...
    Code:
    armv6k-softfloat-linux-gnueabi-gcc -march=armv6k -mfloat-abi=soft
    Last edited by Chewi; 13 January 2012, 12:49 PM.

    Comment


    • #3
      What happened to Apache benchmark?

      Anyway, a lot of the difference difference can be probably attributed to gcc versions/configurations.

      Ubuntu Linux:
      Code:
      Using built-in specs.
      COLLECT_GCC=./cc
      COLLECT_LTO_WRAPPER=/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2/lto-wrapper
      Target: arm-linux-gnueabi
      Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=arm-linux-gnueabi --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/arm-linux-gnueabi --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/arm-linux-gnueabi --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabi --host=arm-linux-gnueabi --target=arm-linux-gnueabi
      Thread model: posix
      gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
      Arch Linux:
      Code:
      Using built-in specs.
      COLLECT_GCC=./cc
      COLLECT_LTO_WRAPPER=/usr/lib/gcc/armv7l-unknown-linux-gnueabi/4.6.2/lto-wrapper
      Target: armv7l-unknown-linux-gnueabi
      Configured with: /build/src/gcc-4.6-20111223/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --disable-libstdcxx-pch --enable-checking=release --host=armv7l-unknown-linux-gnueabi --build=armv7l-unknown-linux-gnueabi --with-arch=armv7-a --with-float=hard --with-fpu=vfpv3-d16
      Thread model: posix
      gcc version 4.6.2 20111223 (prerelease) (GCC)
      As we can see, it's Ubuntu/Linaro 4.5.2-8ubuntu4 (--with-mode=thumb --with-float=softfp) vs. gcc 4.6.2 20111223 (--with-float=hard). Ubuntu uses linaro optimized gcc and also has thumb2 enabled by default. Not to mention that the version of gcc is different.

      Comment


      • #4
        More ARM hardfloat benchmarks, Debian armhf, etc.

        @Michael

        DISCLAIMER: I'm Konstantinos Margaritis, the debian-armhf maintainer, working for Genesi USA -who basically has been funding the armhf port for ~2 years now- and a Linaro partner engineer, which also leads the hardfloat push amongst ARM distros. I could easily say that the best hardfloat support can be found in Debian (with over 300 patches for armhf so far), next Ubuntu armhf and then Fedora. Collaboration between those distros is very good within Linaro, and we are having our ARM hardfloat mini-summit next month in Linaro Connect in San Francisco (Feb 6-10).

        If you really want to see impressive ARM softfp/hardfp benchmarks, make sure you check this page:



        The benchmarks were made using Phoronix Test Suite on both Debian armhf and Ubuntu armel (these are almost identically built, the only difference being the ABI, hard vs softfp).
        As you have noted, hardfp wins softfp (there is no comparison with the plain 'soft' ABI), where there are LOTS of floating point calculations, my favourite example being povray -yes, the results are real. Also, of interest is the gtkperf benchmark, font and icon rendering (via svg) is also something floating point intensive, so there is a measurable difference there as well.
        We are in the process of updating the benchmarks for the (unreleased yet) Ubuntu armhf to complete the picture.

        For the history, Debian was the first serious distro to support the hardfloat ABI -and it now has an official port, armhf:



        and



        We are at 90% and keep growing, we expect to reach armel status (>95%) in the next month or so. Next step is to finish platform support and enable Debian Installer to work on the supported devices (for now Genesi EfikaMX Smartbooks and Smarttops, Pandaboard and most likely the AC100).

        Regards

        Konstantinos

        Comment


        • #5
          It seems that Ubuntu gets higher marks in a lot of CPU and disk intensive benchmarks, but Arch wins in media encoding benchmarks. I know that media encoding is typically helped by SIMD instructions like SSE2, SSE3, etc... I believe the equivalent on ARM are the NEON instructions. I'm not sure to what affect these help encoding and if the tests are optimized for these instructions or not, but it was a thought I had.

          The other thought I had with regards to disk performance was differences in drivers due to kernel version differences between Arch and Ubuntu, but it seems they are both running the same versions of the kernel (barring any additional patches they have back-ported).

          As ssvb says, it is probably due to compiler/configuration differences (my guess is the big difference comes from enabling thumb mode on Ubuntu).

          Comment


          • #6
            I'd be interested in running one of these as a MythTV frontend.

            Do they run the NVidia binary driver and do they support vdpau or something similar that would making watching TV and 1080p/i a worthwhile exercise?

            Comment


            • #7
              There's a seperate Linux driver for Tegra hardware, downloadable from nVidia's website.

              Comment

              Working...
              X