I’m using the BeagleBone AI-64 with a custom Debian 12 minimal image (aarch64) and want to take advantage of the C7x DSP (TDA4VM SoC) and C66 DSP for signal processing.
Specifically:
I want to use TI DSP libraries (e.g., DSPLIB, FFTLIB)
I want to run OpenCL on the DSP to offload compute from the Cortex-A72
My setup:
BBAI-64 with Debian 12 minimal, booted from SD card
Kernel 5.x with remoteproc, rpmsg, etc.
I have extracted the Processor SDK and RTOS SDK contents
Could someone guide me on:
Whether TI’s OpenCL runtime (ti-opencl) can work with this Debian setup?
Where to place firmware blobs to boot DSP via remoteproc?
Whether TI OpenCL runtime can auto-boot the DSPs or I must do it manually?
Any success stories running OpenCL on the DSP (not GPU) on BBAI-64?
Any help or pointers to example setups would be great!
If you need hard deterministic control you will need to use the Ti product.
If you need process video, signals, and research use the Nvidia product.
CUDA is mature and user friendly, Ti is a manipulative and controlling. Did I have any luck getting the Ti product up, no, too many intentional voids in the information. So it comes down to your use case and available time.
If you do find a real working solution please post it, the AI64 board is rock solid and would be a good fit in some industrial applications.
I would sooo love to do a machine that uses the image processing capabilities of this thing for targeting. Items on a conveyor belt, defects on plywood, roaches in the kitchen, so on.
If only there was just one solid guide out there of someone successfully doing something of this nature. Once one person figures it out, the river starts flowing. The board would have done a lot better if it was released with a full stack example showing it’s power. Been years, still nobody has done it.
The Jetson orin nano is the clear winner for that application. It leaves every SBC in the dust. They too have some issues, one is NOT very cool at all. They seem to be slow walking bringing back to market so I assume they found the issue and are fixing the silicon or the SDK.
I got tired of waiting for them and now use a big box with GPU. Nano is great for inference but you cannot train on it due to so little Ram.
Pretty sure the DSP works fine, I have seen Sitara chips in Fanuc controls, also sure if Fanuc has a problem with the code that Ti would assign a dedicated team to them. They are not about to let the public know where the “gold” is buried. Typical industry paradigm with this, overwhelming majority of makers/hobbists do not have a clue in the world they are getting played like fools on this. Typical ground cover is, “It is complicated”, “We are not here to teach you how to develop code”.
That is all “double talk” for if you pay us or a preferred partner we can bring your “dream” to reality…
Hi!! @Tamilselvan Can you please share you’re code regarding remoteproc and rpmsg, Because I’m currently working on BeagleBone AI-64 and I struggling to establish an internal communication between the cortex and DSP C71x.
It may be helpful to start with a working example of using OpenCL + c7x acceleration on the BB AI-64. Then you can either copy how they do it or perhaps build on their Yocto image instead of using the distro your currently using.
The TI Edge AI demos exercise the various accelerators. Latest release is here:
That targets the SK-TDA4VM board but could be modified for BBAI-64.
Did you @babldev face any issues with the VisionApps firmware file for the DSP C7x (vx_app_rtos_linux_c7x_1.out) on the BeagleY-AI ?? When I run the command sudo beagle-version on the kernel of the official Edge AI image for the BeagleBone AI-64 (BBAI64 11.8 2023-10-07 10GB eMMC TI EDGEAI Xfce Flasher), I get the following error :
[ 8.424063] remoteproc remoteproc14: powering up 64800000.dsp
[ 8.424075] remoteproc remoteproc14: Booting fw image vision_apps_eaik/vx_app_rtos_linux_c7x_1.out, size 13242432
[ 8.424142] remoteproc remoteproc14: unsupported resource 65538
…
even though u-boot version is v2021.01, it’s not later then v2021.01, so i guess the issue is not related to the U-Boot version of the image but rather to the file itself: vx_app_rtos_linux_c7x_1.out
That old BB-AI64 “Edge AI” release was approached differently. AFAIK it was Beagleboard Debian with edge AI features ported over as packages.
A different approach was taken with the Beagley-AI Edge AI release. It’s basically the TI released image with small modifications needed for BeagleY-AI board support. So beagle-version is not a valid command on that image.
I’m not very familiar with the BB-AI64 image, but from what I understand it isn’t actively maintained. You may have better luck taking a similar approach to the B-AI image built with this script Making sure you're not a bot!