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.
Part Number: TMS320C6678
Tool/software: Code Composer Studio
After successfully building the dgemm example found in linalg_1_2_0_0/examples/dsponly/dgemm_test via Makefile, The program built using the Makefile also successfully runs on the DSP and yields remarkable performance. However, I am experiencing different issues using CCS.
This is how I tried to build it from CCS:1. I copy-pasted a project I previously created as described in "http://downloads.ti.com/mctools/esd/docs/openmp-dsp/building_openmp_app.html"
2. I copied dgemm_test.c, fc_config_c6678.c, ticblas_config.c and omp_config.cfg into my project folder
3. I added the necessary products via Project -> Properties.
4. If I build now, it throws the following error:"/home/idris/ti/libarch_1_0_0_0/packages/ti/libarch/src/lib_cachecfg.h", line 38: fatal error #35: #error directive: "Unsupported OS! Please specify either LIB_OPENCL or LIB_RTOS"
I therefore add -DLIB_RTOS to the C6000 compiler flags under Project->Build->C6000 Compiler. This flag is also set when building via Makefile.
5. If I build now, I get:
"/home/idris/ti/libarch_1_0_0_0/packages/ti/libarch/src/lib_cachecfg.h", line 90: fatal error #35: #error directive: "Unsupported TARGET"
So I also add -DSOC_C6678, also passed in the Makefile.
6. It now finishes building but the Linker throws the following error:
undefined first referenced symbol in file --------- ---------------- cblas_dgemm ./dgemm_test.obj lib_L1D_config_SRAM ./ticblas_config.obj lib_get_L1D_SRAM_size ./ticblas_config.obj lib_get_L2_SRAM_size ./ticblas_config.obj tiCblasDelete ./ticblas_config.obj tiCblasGetSizes ./ticblas_config.obj tiCblasInit ./ticblas_config.obj tiCblasNew ./ticblas_config.obj error #10234-D: unresolved symbols remain
And I unfortunately don't have any answer to this. Could maybe someone give me some hints on what I am doing wrong? Any help is appreciated. Please tell me if you need some additional information. Thank you very much.
I was building in Debug Mode. However, changing to release did not help. Here the complete console output:
**** Build of configuration Release for project omp_linalglib4 ****
/home/idris/ti/ccsv8/utils/bin/gmake -k -j 4 all -O
Building file: "../dgemm_test.c"
Invoking: C6000 Compiler
"/home/idris/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/bin/cl6x" -mv6600 -O2 --include_path="/home/idris/ti/openmp_dsp_c667x_2_06_02_01/packages/ti/runtime/openmp" --include_path="/home/idris/ti/openmp_dsp_c667x_2_06_02_01/packages/ti/runtime/openmp/platforms" --include_path="/home/idris/workspace_v8/omp_linalglib4" --include_path="/home/idris/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/include" --define=LIB_RTOS --define=SOC_C6678 --diag_warning=225 --diag_wrap=off --display_error_number --openmp --preproc_with_compile --preproc_dependency="dgemm_test.d_raw" --cmd_file="configPkg/compiler.opt" "../dgemm_test.c"
Finished building: "../dgemm_test.c"
Building target: "omp_linalglib4.out"
Invoking: C6000 Linker
"/home/idris/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/bin/cl6x" -mv6600 -O2 --define=LIB_RTOS --define=SOC_C6678 --diag_warning=225 --diag_wrap=off --display_error_number --openmp -z -m"omp_linalglib4.map" -i"/home/idris/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/lib" -i"/home/idris/ti/ccsv8/tools/compiler/ti-cgt-c6000_8.2.4/include" --priority --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="omp_linalglib4_linkInfo.xml" --rom_model -o "omp_linalglib4.out" "./dgemm_test.obj" "./fc_config_c6678.obj" "./ticblas_config.obj" -l"configPkg/linker.cmd" -llibc.a
"configPkg/linker.cmd", line 131: warning #10068-D: no matching section
warning #10247-D: creating output section ".tdata" without a SECTIONS specification
warning #10247-D: creating output section ".tbss" without a SECTIONS specification
undefined first referenced
symbol in file
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "omp_linalglib4.out" not built
gmake: *** [omp_linalglib4.out] Error 1
>> Compilation failure
makefile:140: recipe for target 'omp_linalglib4.out' failed
gmake: *** [all] Error 2
makefile:136: recipe for target 'all' failed
**** Build Finished ****
Creating a makefile-project resolves the matter - still it would be amazing to find another solution.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to lding:
Please excuse my late answer and thank you for your hints. I will try your suggestions and hopefully be able to post how I resolved the issue shortly.
In reply to Idris Kempf:
Hi ，you need to add the lib below. then the error is gone.
-l"C:/ti/linalg_1_2_0_0/packages/ti/linalg/lib/libcblas.ae66" \-l"C:/ti/libarch_1_0_0_0/packages/ti/libarch/lib/libarch.ae66" \
so, I loud the .out file to my evm6678. but it the console show that:
In reply to fujian yu:
Thanks a lot for your hint. Adding these two libraries to Project Properties -> Build -> C6000 Linker -> File Search Path -> Include Library file made it compile. I currently don't have the EVM with me but I will post my results as soon as I get it back.
EDIT: Without having my EVM at hand, it seems to me that you only loaded the program onto one core. I thought the program would be supposed to say hello from all cores C66XX_0-7.
how can I load the out file to all the cores?
I go to "project-->debug as-->debug configurations->program" and set all the cores will load the program.
but it still dont work.
I need your help.
turns out that I have the same problem, the device seems to be hanging at tiCblasNew(). I can't recall what I did when I ran the program the first time a few months ago. But the program hangs for both the executable built via makefile and the one built via ccs.
I now rebuilt the libarch and linalg libraries as described in http://processors.wiki.ti.com/index.php/Processor_SDK_Linear_Algebra_Library but the problem persists.
I also connect/launch the program with the options described in http://downloads.ti.com/mctools/esd/docs/openmp-dsp/building_openmp_app.html
I connect via my target config file which executes the setup script for core 0, I load the program onto all cores. When they all point to _c_int00 I am starting them and getting the output:
[C66xx_0] Hello World from thread = 0
Number of threads = 8
[C66xx_1] Hello World from thread = 1
[C66xx_2] Hello World from thread = 2
[C66xx_3] Hello World from thread = 3
[C66xx_4] Hello World from thread = 4
[C66xx_5] Hello World from thread = 5
[C66xx_6] Hello World from thread = 6
[C66xx_7] Hello World from thread = 7
L2 SRAM size is 393216, total L2 size is 524288.
It then hangs at the the function tiCblasNew() and when I pause core 0 I see:
GOMP_critical_start() at tomp_util.h:150
bli_init() at bli_init.c55
Any hints on that @TI please?
Thank you very much for your help.
I cannot get to line 162,it blows up at line 159.
the printf code is in the config_mem_for_ticblas() function. I can't get there, so didn't print anything.
second , I wanna ask you the cmd is generated automatically ,right?,Do I have to adjust a cmd file.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.