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.

OpenMP with 6678l

Hi, 

I am trying to run "OpenMP matrix vector multiplication example" project with 6678l using compiler version 7.4.1 and with the the following settings

**** Build of configuration Debug for project omp_d2 ****

 

C:\Texas Instruments\ccsv5\utils\bin\gmake -k all

'Building file: ../omp_config.cfg'

'Invoking: XDCtools'

"C:/Texas Instruments/xdctools_3_23_03_53/xs" --xdcpath="C:/Texas Instruments/omp_1_01_02_06/packages;C:/Texas Instruments/bios_6_33_05_46/packages;C:/Texas Instruments/ipc_1_24_03_32/packages;C:/Texas Instruments/pdk_C6678_1_1_0_3/packages;C:/Texas Instruments/ccsv5/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C66 -p ti.omp.examples.platforms.evm6678 -r debug -c "C:/Texas Instruments" "../omp_config.cfg"

making package.mak (because of package.bld) ...

generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

configuring omp_config.xe66 from package/cfg/omp_config_pe66.cfg ...

cle66 package/cfg/omp_config_pe66.c ...

'Finished building: ../omp_config.cfg'

' '

'Building file: ../omp_matvec.c'

'Invoking: C6000 Compiler'

"C:/Texas Instruments/bin/cl6x" -mv6600 --abi=eabi -g --include_path="C:/Texas Instruments/include" --display_error_number --diag_warning=225 --openmp --preproc_with_compile --preproc_dependency="omp_matvec.pp" --cmd_file="./configPkg/compiler.opt"  "../omp_matvec.c"

'Finished building: ../omp_matvec.c'

' '

'Building target: omp_d2.out'

'Invoking: C6000 Linker'

"C:/Texas Instruments/bin/cl6x" -mv6600 --abi=eabi -g --display_error_number --diag_warning=225 --openmp -z -m"omp_d2.map" -i"C:/Texas Instruments/lib" -i"C:/Texas Instruments/include" --reread_libs --warn_sections --display_error_number --rom_model -o "omp_d2.out" -l"./configPkg/linker.cmd"  "./omp_matvec.obj" -l"libc.a"

<Linking>

'Finished building target: omp_d2.out'

' '

 

**** Build Finished ****

 

 

Connecting Target...

C66xx_6: GEL Output: DSP core #6

C66xx_6: GEL Output: No initialization performed since bootmode = 0x00000005

C66xx_6: GEL Output: You can manually initialize with GlobalDefaultSetup

C66xx_6: GEL Output: Invalidate All Cache...

C66xx_6: GEL Output: Invalidate All Cache... Done.

C66xx_6: GEL Output: GEL Reset...

C66xx_6: GEL Output: GEL Reset... Done.

C66xx_7: GEL Output:

Connecting Target...

C66xx_7: GEL Output: DSP core #7

C66xx_7: GEL Output: No initialization performed since bootmode = 0x00000005

C66xx_7: GEL Output: You can manually initialize with GlobalDefaultSetup

C66xx_7: GEL Output: Invalidate All Cache...

C66xx_7: GEL Output: Invalidate All Cache... Done.

C66xx_7: GEL Output: GEL Reset...

C66xx_7: GEL Output: GEL Reset... Done.

 

[C66xx_0]

[C66xx_0] Starting values of matrix A and vector b:

[C66xx_0]   A[0]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[0]= 1.0

[C66xx_0]   A[1]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[1]= 2.0

[C66xx_0]   A[2]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[2]= 3.0

[C66xx_0]   A[3]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[3]= 4.0

[C66xx_0]   A[4]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[4]= 5.0

[C66xx_0]   A[5]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[5]= 6.0

[C66xx_0]   A[6]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[6]= 7.0

[C66xx_0]   A[7]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[7]= 8.0

[C66xx_0]   A[8]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[8]= 9.0

[C66xx_0]   A[9]= 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0   b[9]= 10.0

[C66xx_0]

[C66xx_0] Results by thread/row:

[C66xx_0] ti.omp.utils.ThreadLocal: line 132: assertion failure: A_invalidKey: Invalid key encountered

xdc.runtime.Error.raise: terminating execution

 

No source available for "C$$EXIT() at C:\Documents and Settings\eexuo\workspace_v5_4\omp_d2\Debug\omp_d2.out:{3} 0xc0310e0{4}"

As it seen above it works fine with single core but when it comes OpenMP related lines it stops.

I couldn't sort this problem out and i would appreciate any assistance.

Best Regards,

Umar 

  • I have the same issue and im trying to figure this out. Did u fix it?

    Any advice is appreciated.

  • Hello,

    Can you'll please try the following and let us know if it solves the problem

    1. Select Core 0 and then go to Tools--> Debugger Options --> Generic Debugger Options

    2. Under 'General Debugger Options' ---> 'Auto Run Options' uncheck the box that says "On a program load or restart," and click "Remember My Settings" at the bottom

    3. Repeat steps 1 and 2 for all cores

    4. Load the .out file on each of the cores (or you can group them like you were doing earlier)

    5. Run the program on all cores

  • Hi,

    I didn`t try Udays suggestions yet but I did solve my problem. by the following way.

    Step1.Debug

    Sometimes this error occurs (if it does I ignore it and debug again)

    Step 3. 

    •Scripts-> EVMC6678L Init Functions -> Global_Default_Setup
    Step 4. 
    •Press Restart
    Step 5.
    •Select Resume
    As I said before I didn't tried Udays suggestions yet but I will try it as soon as I get my board back (I dot have it now)
    Best Regards,
    Umar 
  • Both UDay's and Umar's suggestions worked for me, but turning off auto-run is a bit of a nuisance during debug, is there any other way round this problem that won't slow down my workflow?


    When the problem happens, repeated retries always make it work, but when I've got a real application with real bugs, I don't want random ones like this causing confusion- any ideas of how to fix the source, configuration or CCS setup so this problem is properly fixed?


    Is there some synchronisation needed between the cores so they start up correctly?