TIM-VX是VIP开发维护的开源项目,作用是作为后段将开源框架和VIP的ML加速器进行整合绑定,对VIP 提高其NPU的应用领域,扩大应用生态具有巨大作用,其官方介绍如下:
下载代码:
github仓库地址:GitHub - VeriSilicon/TIM-VX: Verisilicon Tensor Interface Module
实际代码量并不多,包含仓库在内共有87M。
编译
TIM-VX支持BAZEL和CMAKE两种构建系统,先用CMAKE尝试编译一下,编译顺序命令如下:
mkdir host_build
cd host_build
cmake ..
make -j8
make install
首先遇到了编译错误,是CMAKE版本太低导致
升级CMAKE
cmake的下载在这里https://github.com/Kitware/CMake/releases/download/v3.23.0/cmake-3.23.0.tar.gz
首先卸载系统自带CMAKE
sudo apt purge cmake
cmake编译遵照标准的Linux下源码包编译的三部曲
编译TIM-VX
配置成功:
编译:
安装:
sudo make install
安装目录包含两种文件,分别是库和头文件
TIM-VX要基于UNIFY SDK运行,但是X86主机环境下没有NPU,所以为了支撑TIM-VX在系统层面的运行,TIM-VX提供了pre-build的RUNTIME库仿真器件。
编译测试用例:
配置后编译:
cmake -DTIM_VX_ENABLE_TEST=ON ../
导出环境变量
export LD_LIBRARY_PATH=$PWD/../../../prebuilt-sdk/x86_64_linux/lib:/home/caozilong/Workspace/TIM-VX/host_build/lib:$LD_LIBRARY_PATH
export VIVANTE_SDK_DIR=`pwd`/../../../prebuilt-sdk/x86_64_linux/lib
export VSIMULATOR_CONFIG=czl
export DISABLE_IDE_DEBUG=1
之后运行./unit_test,出现段错误:
cl_viv_vx_ext.h是一个在线编译头文件,它的位置在
需要将其拷贝到VIVANTE_SDK_DIR指定的目标地址:
mkdir prebuilt-sdk/x86_64_linux/lib/include
cp prebuilt-sdk/x86_64_linux/include/CL prebuilt-sdk/x86_64_linux/lib/include -fr
再次执行unit_test不再有段错误
编译用例
cmake -DTIM_VX_ENABLE_TEST=ON -DTIM_VX_BUILD_EXAMPLES=ON ../
编译后生成EXAMPLE目录
执行LENET用例,打印TOP5输出。