本文根据作者实际测试情况对CSK6开发套件的评测过程以及环境搭建经验进行描述。评测过程包括在Linux和Windows平台上的安装和配置,以及如何创建示例项目、编译、烧录并测试。同时,还涵盖了模型部署的步骤,包括WASM SDK环境配置和编译示例工程。
工具链目前只支持AMD64平台,尝试过ARM64平台服务器上进行安装,最终因为平台差异的组件太多了没办法处理,所以最终还是老老实实回归到通用平台上进行。
由于wasm sdk目前仅支持 Linux 与 macOS 环境(也支持Windows 10 以上的 WSL),所以我这里分别在Linux平台和Windos平台都进行了环境配置。
Linux平台安装:
1 lisa zep 工具的安装
首先确认好网络没有问题后,便可以使用官方的shell脚本进行安装。
curl -o- https://cdn.iflyos.cn/public/cskTools/lisa-zephyr-install.sh | bash
2 检查lisa zep 工具是否正常安装
lisa info zep
正常如图示状态,没有提示任何异常的话。整个环境就安装完成了,官网下载的安装脚本是对应zep - 1.7.2版本的工具,这里提示更新到最新版latest: 2.0.0,这里按需选择更新即可。
如果更新的话,需要对use-env清除后重新配置
Win平台安装
window平台下载安装向导程序即可,相对比较简单。官方把常见的一些问题都进行了说明,安装时注意下即可。
\~~~~
安装结束时同样也会提示是否进行版本更新。
这里遇到了几次PowerShell已经提示安装成功了,但是向导程序仍然提示有问题,强制杀掉向导后找不到lisa命令,最后又重启了一次电脑后就不再有这个问题了。
如果进行更新操作了,则升级完成后需要注意执行环境清除指令和环境配置指令。
lisa zep use-env --clear
lisa zep use-env csk6
测试示例程序
1 创建工程
lisa zep create
cd echo
lisa zep build -b csk6011a_nano
连接硬件进行烧录测试( Type-C 数据线连接开发板的 DAPLINK USB )
lisa zep flash
通过串口调试工具找到开发板对应的串口,以 115200 的波特率进行连接。按下开发板复位按键后,可看到串口输出包含zeohyr的启动信息,并且通过串口助手发送消息后会有同样的消息返回。
模型部署
1 wasm sdk环境配置
使用 git clone wasm-sdk到本地并配置环境变量
mkdir listenai
cd listenai
git clone https://cloud.listenai.com/listenai/wasm/wasm-sdk.git --recursive
tar -xvf wasi-sdk-17.0-linux.tar.gz
export WASM_THINKER_SDK="home/xxx/listenai//wasm-sdk"
export WASI_TOOLCHAIN_PATH="home/xxx/listenai/wasi-sdk-17.0"
2 编译camera\\\_image\\\_detect 工程
使用 lisa zep 工具拉取camera\\\_image\\\_detect 示例工程
lisa zep create --from-git https://cloud.listenai.com/listenai/samples/camera_image_detect.git
cd app_wasm
lisa zep exec python $WASM_THINKER_SDK/cmake/sdk.py build -p .
编译过程如果提示缺少GLIBC库,可以参照GLIBC\\\_2.34‘ not found解决方法。
解决完上述问题后我这里又出现了GLIBCXX\\\_库缺失的问题,这里通过执行更新命令解决。
sudo apt upgrade
最终编译完成。
3 编译Zephyr工程
修改 prj.conf
文件,开启CONFIG_TEST_THINKER_MAIN
测试选项,该模式下使用apple_input.h
文件测试数据输入给模型进行推理测试。
4 烧录测试
烧录 zephyr 应用固件
lisa zep exec cskburn -s COMx -C 6 0x0 ./build/zephyr/zephyr.bin -b 748800
烧录 CP 固件资源
lisa zep exec cskburn -s COMx -C 6 0x100000 ./resource/cp.bin -b 748800
烧录 WASM 应用
lisa zep exec cskburn -s COMx -C 6 0x200000 ./resource/thinker_resnet18.aot -b 748800
烧录 WASM 模型资源
lisa zep exec cskburn -s COMx -C 6 0x300000 ./resource/resnet18_model.bin -b 748800
我这里是将linux编译好的对应文件拿到windos平台进行烧录
通过串口调试工具找到开发板对应的串口,以 115200 的波特率进行连接。按下开发板复位按键后,可以看到对apple_input.h
输入数据的分类log信息。
摄像头取图进行模型推理
再次调整 prj.conf
文件,关闭CONFIG_TEST_THINKER_MAIN
测试选项,该模式下将摄像头实时采集的图片经过特征提取后传给 Thinker,通过调用图像分类模型实现对图像的分类判断。
重新编译zephyr工程并烧录即可,其他3个文件没有调整就不用更新了。
lisa zep build -p -b csk6011a_nano
lisa zep exec cskburn -s COMx -C 6 0x0 ./zephyr.bin -b 748800
通过串口调试工具找到开发板对应的串口,以 115200 的波特率进行连接。按下开发板复位按键后,可以看到通过摄像头拍摄的苹果照片。
这次不能用普通的串口助手,我这里使用的是WindTerm。
总结:
本文对CSK6开发套件的评测过程以及环境搭建经验进行了详细描述。在整个评测过程中,介绍了遇到的问题以及解决方法,如GLIBC库问题的解决和串口调试工具的选择。
总体而言,CSK6开发套件提供了丰富的工具和文档,能够帮助开发者快速上手自研AI芯片的开发。在安装和配置过程中可能会遇到一些挑战,希望通过这次分享能为其他开发者提供一些有价值的信息。
最后感谢极术社区与聆思科技组织本次活动,给我们提供了能够深入了解AI应用开发的机会。