Alta features a 5TOPs INT8 Verisilicon NPU for running tensor and convolution computation for AI based workloads. Tomeu has developed TensorFlow Lite delegate for Mesa to make use of the existing piping for Verisilicon’s Etnaviv IP. The long term goal is to create a NN API HAL frontend that is targeted by TensorFlow Lite and PyTorch Mobile with Gallium as the backend to create dmabufs and command streams for the physical hardware. If you are interested in this work, there is a community at #ml-mainline on OFTC.
Please update your board to the latest firmware. You can setup an NFS environment on Debian with LOON or use our Debian 12 image.
Enable the NPU with the wiring tool:
git clone https://github.com/libre-computer-project/libretech-wiring-tool.git
cd libretech-wiring-tool
make
sudo ./ldto enable npu
cd ..
Enable APT sources
sed "s/^deb\s/deb-src /" /etc/apt/sources.list > /etc/apt/sources.list.d/src.list
sudo apt update
Install Mesa Build Dependencies
sudo eatmydata apt-get -y build-dep mesa
sudo eatmydata apt -y install meson glslang-tools glslang-dev python3-mako zlib1g-dev flatbuffers-compiler python3-pytest python3-exceptiongroup python3-pip python3-pil
Build Teflon
git clone https://gitlab.freedesktop.org/tomeu/mesa.git -b teflon --single-branch --depth=1
cd mesa
meson setup build -Dgallium-drivers=etnaviv -Dvulkan-drivers= -Dteflon=true
meson compile -C build
Install TensorFlow Lite
pip3 install --break-system-packages tflite-runtime
#cd subprojects
#wget https://github.com/tensorflow/tensorflow/archive/refs/tags/v2.14.0.tar.gz
#tar -xf v2.14.0.tar.gz
#mv tensorflow-2.14.0 tensorflow
Run Teflon Tests
DELEGATE_PATH=build/src/gallium/targets/teflon/libteflon.so python3 -m pytest -v src/gallium/frontends/teflon/tests/test_conv2d.py
Run MobileNetV1
python3 src/gallium/frontends/teflon/tests/classification.py -i ~/tensorflow/assets/grace_hopper.bmp -m src/gallium/frontends/teflon/tests/mobilenet_v1_1.0_224_quant.tflite -l src/gallium/frontends/teflon/tests/labels_mobilenet_quant_v1_224.txt -e build/src/gallium/targets/teflon/libteflon.so
To learn more about AI/neuro computing and how it is applied, Tomeu gathered a list of reading material.