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.

DSP load increase after compiler update (+ code composer studio)

Other Parts Discussed in Thread: SYSBIOS

Hello,

we notice a DSP load incread of 4%. We use the compiler version 7.4.2 instead of 7.3.1. Furthermore we use the UIA (1.03.00.02 instead of 1.00.03.25) and XDCTOOL ( 3.25.00.48 instead of 3.22.04.46 ). Do you have any idea for these behavior.

Both compilers use the following call:

/opt/ti_5.4/ccsv5/tools/compiler/c6000/bin/cl6x -mv6740 --gcc -I/opt/ti_5.4/ccsv5/tools/compiler/c6000/include --abi=eabi --exceptions --rtti -DTARGET_OS=1 -DTARGET_OS_SYSBIOS=1 -DTARGET_CPU=1 -DTARGET_CPU_C674X=1 -DTARGET_HW=1 -DTARGET_HW_J5=1 -DTARGET_HW_J5_ECO=1 -DTARGET_CORE=1 -DTARGET_CORE_J5=1 -DTARGET_CORE_J5_ECO=1 -DTARGET_CORE_J5_ECO_DSP=1 -DTARGET_BOARD=1 -DTARGET_CLASS=1 -DTARGET_CLASS_DSP=1 -DTARGET_TYPE=1 -DTARGET_TYPE_EMBEDDED=1 -DTARGET_MEM_QNX_BASE=0x82C00000 -DTARGET_MEM_QNX_LENGTH=0x04C00000 -DTARGET_MEM_DSP_BASE=0x80C00000 -DTARGET_MEM_DSP_LENGTH=0x02000000 -DTARGET_MEM_M30_BASE=0x80000000 -DTARGET_MEM_M30_LENGTH=0x00600000 -DTARGET_MEM_M31_BASE=0x80600000 -DTARGET_MEM_M31_LENGTH=0x600000 -DTARGET_MEM_DSP_NO_CACHE_BASE=0x87800000 -DTARGET_MEM_DSP_NO_CACHE_LENGTH=0x700000 -DTARGET_MEM_SHM_BASE=0x87F00000 -DTARGET_MEM_SHM_LENGTH=0x00080000 -DTARGET_MEM_DSP_TRACE_BASE=0x87F80000 -DTARGET_MEM_DSP_TRACE_LENGTH=0x00080000 -DSHARED=0 -DLIB_EXPORT="" -O3 -pm --cmd_file=/tmp_config/compiler.opt --output_file=CMakeFiles/Test.cpp.o -c Test.cpp --mem_model:data=far

Thank you.

Best Regards

Sebastian

  • Hi Sebastian,

    Sebastian Ehnert said:
    Furthermore we use the UIA (1.03.00.02 instead of 1.00.03.25) and XDCTOOL ( 3.25.00.48 instead of 3.22.04.46 )

    The increase in CPU load may not necessarily be due to the change in code gen, as you have changed multiple variables.

    I would suggest that you try some experiments with these variables, but changing only a single variable at a time.

    First, go back to your original settings that you had from before the CPU load increase.

    Then, try changing just the code generation tools version.  What happens then?  Does changing just this single variable (the code gen version) result in the CPU load increase?

    If so, then it is probably due to that change.  If not, then the code gen change is probably not the culprit, and you should change it back, and then try changing another variable (e.g. this time try changing the UIA version).  I would repeat this process until you can pinpoint it.

    Steve

  • I have another suggestion to consider.  If you suspect the compiler is the cause of the performance decrease, use the loopdiff tool to see if any important loops are running slower.

    Thanks and regards,

    -George

  • Hello,

    In a new attempt we changed the UIA and BIOS so that we now use the old UIA (1.00.03.25), old BIOS (6.32.05.54), new compiler (7.4.2) and new XDCTOOL (3.25.00.48). We saw that the DSP load is back to normal.

    In the version in which a 4% higher load was measured, also the UIA (1.03.00.02) was rebuilt as an error correction was made (http://e2e.ti.com/support/embedded/bios/f/355/p/290141/1014759.aspx#1014759).

    The higher load is concluded by UIA and BIOS.


    Thanks and regards

    Sebastian

  • Sebastian,

    That's good that you have boiled it down to either UIA or BIOS.  But, you are still changing multiple variables at a time, as UIA and BIOS are 2 different products.

    I think it would be better to pinpoint exactly which variable is causing the change, as it could still be either UIA or BIOS.

    What happens if you only move BIOS forward?  Can you verify if the CPU load goes up in that case?

    Similar for UIA.  Can you then move the BIOS version *back*, and then move the UIA version forward?  Can you verify if the CPU load goes up in that case?

    Steve

  • Sebastian,

    Regarding your first post in this thread:

    Sebastian Ehnert said:
    we notice a DSP load incread of 4%. We use the compiler version 7.4.2 instead of 7.3.1. Furthermore we use the UIA (1.03.00.02 instead of 1.00.03.25) and XDCTOOL ( 3.25.00.48 instead of 3.22.04.46 ). Do you have any idea for these behavior.

    Can you please clarify the BIOS version that was used in this case?

    -------

    I've been contacted by another TIer who I guess you are working with.  He told me that you got build errors when trying to move the UIA and BIOS versions forward individually, as I suggested in my last post.

    It looks like the newer UIA 1.03.00.02 requires a newer BIOS, so that obviously won't help you.  But, I think you should be OK trying the opposite.

     Can you please try this?

    • Keep UIA at version 1.00.03.25
    • Move BIOS to newer version (I think the "new version" is 6.35.01.29 based on email I got, but I'm not sure if that's correct).

    -------

    Sebastian Ehnert said:
    In the version in which a 4% higher load was measured, also the UIA (1.03.00.02) was rebuilt as an error correction was made (http://e2e.ti.com/support/embedded/bios/f/355/p/290141/1014759.aspx#1014759).

    I'm worried that this could also be causing the problem.  It's possible that when you have rebuilt UIA, the compiler options were different than the shipped product (resulting in non-optimized code).

    Is it possible for you to try using the original UIA 1.03.00.02?  Or would you be unable to run your app (and hence determine if the 4% load increase is present or not) without the rebuild?

    Steve

  • Hello Steve,

    We must build the UIA, otherwise our software will not run. What are the compiler options for the original UIA?

    Sebastian

  • @Steven, George: I'll paste here all the information I've got from Sebastian regarding this issue, just to have all the information collected here and avoid some bouncing around...

    @Sebastian: please put all the information here in the future, the reason is the same :)

    So, the missing information are:
    -------------------------------------------------------------
    Sebastian tried to change the UIA Version (from 1.00.03.25 to 1.03.00.02) and to keep the old BIOS Version (6.32.05.54).
    But, in this case we are getting the following error message:

    Generating tmp_config/compiler.opt, tmp_config/linker.cmd
    making package.mak (because of package.bld) ...
    configuring xxxxxxxx_sysbios_dsp_6_35.xe674 from package/cfg/xxxxxxxx_sysbios_dsp_6_35_pe674.cfg ...
    js: "/opt/ti_5.4/uia_1_03_00_02/packages/ti/uia/runtime/UIAMetaData.xs", line 1414: XDC runtime error: ti.sysbios.BIOS: no property named 'getCpuFrequency'
        "/opt/ti_5.4/uia_1_03_00_02/packages/ti/uia/runtime/UIAMetaData.xs", line 1472
        "/opt/ti_5.4/uia_1_03_00_02/packages/ti/uia/runtime/UIAMetaData.xs", line 1505
    gmake: *** [package/cfg/xxxxxxxx_sysbios_dsp_6_35_pe674.xdl] Fehler 1
    js: "/opt/ti_5.4/xdctools_3_25_00_48/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

    What is wrong here with „getCpuFrequency“?
    --------------------------------------------------------------

    And one more:
    --------------------------------------------------------------
     Sebastian tried to use the compiled bios (6.35.01.25). The result is the same. He got 4% more DSP-Load.
    Load.hwiEnabled and Load.hwiEnabled are set to false.
    In a second test he tried the old uia (1.00.03.25) with the newer bios (6.35.01.25). The DSP load is also the same.
    It seems that the bios increase the Task-Load.
    ---------------------------------------------------------------

    @Sebastian: if something is missing, please post it here.

    Thanks,
    Goran

     

  • Thanks for updating the thread with all of the current information, Goran.

    Sebastian,

    Goran Dakovic said:
    In a second test he tried the old uia (1.00.03.25) with the newer bios (6.35.01.25). The DSP load is also the same.
    It seems that the bios increase the Task-Load.

    This is very good progress.  It now seems that BIOS is the cause of this.  We now need to find which version of BIOS this problem is first seen in.  We know that it's not seen in BIOS 6.32.05.54, and is seen in 6.35.01.25, so we need to try some BIOS versions in between to help pinpoint it.

    So, I'd like to start filling out some "test results."  I believe the following "scenarios A + B" reflect the component versions you used to determing BIOS is the cause:

    Scenario A:

    1. BIOS 6.32.05.54
    2. UIA 1.00.03.25
    3. CGT 7.4.2
    4. XDCTOOLS 3.25.00.48
    5. Result: CPU load as expected

    Scenario B:

    1. BIOS 6.35.01.25
    2. UIA 1.00.03.25
    3. CGT 7.4.2
    4. XDCTOOLS 3.25.00.48
    5. Result:CPU load shows 4% increase

    Please correct me if I have anything in A + B wrong!

    ----------------------------------

    Can you next try these scenarios?

    Scenario C:

    1. BIOS 6.33.07.53
    2. UIA 1.00.03.25
    3. CGT 7.4.2
    4. XDCTOOLS 3.25.00.48
    5. Result: ??

    Scenario D:

    1. BIOS 6.34.04.22
    2. UIA 1.00.03.25
    3. CGT 7.4.2
    4. XDCTOOLS 3.25.00.48
    5. Result: ??

    You may need to download/install the versions of BIOS shown in scenario C and D.  If so, just click on them above (I made them links to the download page).

    Steve