Hi,
I have a static library written in C++, and compiled with the ti-cgt-c6000_8.1.0 cl6x compiler. I'd like to call functions within the library via OpenCL. This is analogous to the dsplib_fft OpenCL example, which calls the dsplib library's DSPF_sp_fftSPxSP function.
I am able to build a kernel with the C++ library (with warnings):
warning #10247-D: creating output section ".init_array" without a SECTIONS specification
warning #10247-D: creating output section ".cio" without a SECTIONS specification
But when I en-queue the kernel I get into trouble and an exception is generated:
Warning: Initialized data for objects in .mem_l2 sections will be ignored.
/ti-opencl/host/src/core/dsp/tal/ocl_load/ocl_load.c:118: DLIF_read: Assertion `0' failed.
I can run programs compiled with this library directly on the DSP (uploaded via JTAG debugger). I do not have the ability to rewrite the C++ library (I do have access to the source). What is the best way to leverage this library for parallel processing on the DSP if the TI OpenCL implementation will not support this use case? Specifically, the use case is: dispatch processing from ARM host (running Linux) to DSP, executing C++ library functions on DSP and returning processing results to ARM.
I have proved out the IPC between the ARM host and DSP by building and running the dsplib_fft example from TI, so I think my problem is with trying to use a library written in C++.
Thanks,
Weston