This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Benchmark test of floating point between TIAM335X new and old tool-chain

Attached file is our benchmark test of floating point between TI AM335X new and old tool-chain.

We knew the new tool-chain (ti-am335x-linux-devkit-06.00.00.00.tar.gz) support hardware floating point computation.

The old tool-chain just support software floating point computation. (ti-sdk-am335x-evm-05.07.00.00)

 

In this report, we can find the result cannot meet our expectation.

The measured value of new tool-chain should get higher value of computing floating point. But it's not.

From this report, I cannot persuade our customer to change the tool-chain.

The worst situation is we had customer used your new tool-chain and meet the same problem.

 

My question is:

1) Is there anything wrong in our compile argument or something we don't know?

2) How did TI measure their benchmark of computing floating point? What tool?...How to test?

  Could you please offer your benchmark report?5074.Floating Point Test for SE1904.doc

  • Hi Eric,
     
    This will need to be escalated to the factory team. I will take care of this and you will receive reply on this thread.
  • Hi Eric,

    Please have a look at this link : http://processors.wiki.ti.com/index.php/Cortex-A8

    I think you need to direct the compiler to auto vectorize.

    Also there seems to be certain dissimilarties in your compiler option compared with the 

    -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -ffast-math -mfloat-abi=softfp

    found in the above link.

  • Hi Eric,

    If you are using LINUXEZSDK-AM335X:, then an optimized whetstone is included prebuilt in the file system. The following measurement is on am AM335x GP EVM running at 800 MHz CPU clock rate.

    You can download the LINUXEZSDK-AM335x here: http://www.ti.com/tool/linuxezsdk-sitara

    root@am335x-evm:~# /usr/bin/whetstone 50000

    Loops: 50000, Iterations: 1, Duration: 11 sec.
    C Converted Double Precision Whetstones: 454.5 MIPS

    root@am335x-evm:~# cat /proc/cpuinfo
    Processor : ARMv7 Processor rev 2 (v7l)
    BogoMIPS : 795.44
    Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant : 0x3
    CPU part : 0xc08
    CPU revision : 2

    Hardware : am335xevm
    Revision : 0000
    Serial : 0000000000000000


    There is also a project included in the SDK in the following directory: $(SDK_HOME)/example_applications/arm-benchmarks-1.3/whetstone

    So you can build it yourself and run it and look at all the compiler flag settings. You should be able to get the same numbers out.