Hello everyone, I’m a student from Russia and have a project connected with traffic sign recognition with embedded systems. I use BeagleBone AI based on Sitara AM5729 CPU.
I built Darknet framework with OpenCL support according to the following guide : https://iblog.isowa.io/2020/04/29/darknet-in-opencl-on-beagleboard-ai/ . Then I tried to run it with my own custom dataset from the CCL with ./darknet detector test… and it does not work and shows the following issue respond:
TIOCL WARNING: Opening Linux shared memory: No such file or Directory.
TIOCL FATAL: The TI Multicore Tools daemon (/usr/bin/ti-mctd) is not running. To start daemon, rm /dev/shm/HeapManager (if exists); ti-mctd. Re-run application. Refer User Guide for details. Aborted
I do not understand how to fix this problem, really need help to solve it. Tried to find information in the Internet, however failed. I have Debian 10 custom, Linux kernel 4.14.108-ti-r135 armv7l . Use SD card to have more memory and used gparted to expand memory.
Suppose that no one ever in this world ever faced the same issue…how that can be that no one can answer or help me, not on beaglebone forum, not on texas instruments forum, not on stack overflow lol
Ok, thank you. I visited Dispatch from multiple Linux processes — TI OpenCL User's Guide and found out that I do not have ti-mct-daemon.service which should be /lib/systemd/system/ti-mct-daemon.service . Does it mean that OpenCL just doesn’t work and I should create such a file? Then what should be inside it. Also I do not understand how to kill ti-mctd process and then restart it because when I write ./ti-mctd systems responds that file does not exist.
Tried to add with sudo apt-get install ti-ipc-dra7xx . Computer told that there is already the newest version (3.50.04.08-git20191028.0-0rcnee0~buster+20200324. ti-c6000-cgt-v8.3
TIOCL WARNING: Opening Linux shared memory: No such file or Directory.
TIOCL FATAL: The TI Multicore Tools daemon (/usr/bin/ti-mctd) is not running. To start daemon, rm /dev/shm/HeapManager (if exists); ti-mctd. Re-run application. Refer User Guide for details. Aborted
I suppose that the key is that beaglebone ai has everything necessary for OpenCL support because after I install extra packages:
1)apt install ocl-icd-opencl-dev
2)apt install opencl-headers
3)apt install libclblas-dev
Some files are deleted automatically and one of them is ti-mct-daemon.service what may actually cause the issue that I initially faced with. Tomorrow I’m going to check whether darknet will work if I try to install it by whis guide from isowa, however without extra packages that I mentioned above. Hope everything is going to work)
Oh, don’t install those, use the ti-opencl meta package:
Yocto vs Debian makes things fun… While TI can blow away OpenCL/Mesa in Yocto, in Debian we have to share the OpenCL library… To make this work, we renamed, TI’s libOpenCl as libTIOpenCL and used the vendor ti.icd flag so mesa/OpenCL would correctly load libTIOpenCL when calling libOpenCL:
So by installing ti-opencl, all the normal development libraries should be included:
Actually, I made a build by isowa, however without extra packages, wrote #define CL_TARGET_OPENCL_VERSION 120 instead of 220 in src/opencl.h and changed there NVIDIA=1 to ARM=1. Build succeded, however I have a new issue : opencl_init: Could not get device IDs.