默然Mooran · 2023年10月29日 · 北京市

【聆思CSK6 LNN工具体验】 探索与环境搭建

本文根据作者实际测试情况对CSK6开发套件的评测过程以及环境搭建经验进行描述。评测过程包括在Linux和Windows平台上的安装和配置,以及如何创建示例项目、编译、烧录并测试。同时,还涵盖了模型部署的步骤,包括WASM SDK环境配置和编译示例工程。

工具链目前只支持AMD64平台,尝试过ARM64平台服务器上进行安装,最终因为平台差异的组件太多了没办法处理,所以最终还是老老实实回归到通用平台上进行。

由于wasm sdk目前仅支持 LinuxmacOS 环境(也支持Windows 10 以上的 WSL),所以我这里分别在Linux平台和Windos平台都进行了环境配置。
image

Linux平台安装:

1 lisa zep 工具的安装

首先确认好网络没有问题后,便可以使用官方的shell脚本进行安装。

curl -o- https://cdn.iflyos.cn/public/cskTools/lisa-zephyr-install.sh | bash

 title=

2 检查lisa zep 工具是否正常安装

lisa info zep

 title=

正常如图示状态,没有提示任何异常的话。整个环境就安装完成了,官网下载的安装脚本是对应zep - 1.7.2版本的工具,这里提示更新到最新版latest: 2.0.0,这里按需选择更新即可。

如果更新的话,需要对use-env清除后重新配置

Win平台安装

window平台下载安装向导程序即可,相对比较简单。官方把常见的一些问题都进行了说明,安装时注意下即可。

 title=\~~~~

安装结束时同样也会提示是否进行版本更新。

 title=

这里遇到了几次PowerShell已经提示安装成功了,但是向导程序仍然提示有问题,强制杀掉向导后找不到lisa命令,最后又重启了一次电脑后就不再有这个问题了。

 title=

如果进行更新操作了,则升级完成后需要注意执行环境清除指令和环境配置指令。

lisa zep use-env --clear
lisa zep use-env csk6

 title=

 title=

测试示例程序

1 创建工程

lisa zep create

 title=

cd echo
lisa zep build -b csk6011a_nano

 title=

连接硬件进行烧录测试( Type-C 数据线连接开发板的 DAPLINK USB

lisa zep flash

 title=

通过串口调试工具找到开发板对应的串口,以 115200 的波特率进行连接。按下开发板复位按键后,可看到串口输出包含zeohyr的启动信息,并且通过串口助手发送消息后会有同样的消息返回。

 title=

模型部署

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解决方法

 title=

解决完上述问题后我这里又出现了GLIBCXX\\\_库缺失的问题,这里通过执行更新命令解决。

 sudo apt upgrade

最终编译完成。

 title=

3 编译Zephyr工程

修改 prj.conf 文件,开启CONFIG_TEST_THINKER_MAIN 测试选项,该模式下使用apple_input.h 文件测试数据输入给模型进行推理测试。

 title=

4 烧录测试

  1. 烧录 zephyr 应用固件

    lisa zep exec cskburn -s COMx -C 6 0x0 ./build/zephyr/zephyr.bin -b 748800
    
  2. 烧录 CP 固件资源

    lisa zep exec cskburn -s COMx -C 6 0x100000 ./resource/cp.bin -b 748800
    
  3. 烧录 WASM 应用

    lisa zep exec cskburn -s COMx -C 6 0x200000 ./resource/thinker_resnet18.aot -b 748800
    
  4. 烧录 WASM 模型资源

    lisa zep exec cskburn -s COMx -C 6 0x300000 ./resource/resnet18_model.bin -b 748800
    

我这里是将linux编译好的对应文件拿到windos平台进行烧录

 title=

通过串口调试工具找到开发板对应的串口,以 115200 的波特率进行连接。按下开发板复位按键后,可以看到对apple_input.h 输入数据的分类log信息。

 title=

摄像头取图进行模型推理

再次调整 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。

 title=

总结:

本文对CSK6开发套件的评测过程以及环境搭建经验进行了详细描述。在整个评测过程中,介绍了遇到的问题以及解决方法,如GLIBC库问题的解决和串口调试工具的选择。

总体而言,CSK6开发套件提供了丰富的工具和文档,能够帮助开发者快速上手自研AI芯片的开发。在安装和配置过程中可能会遇到一些挑战,希望通过这次分享能为其他开发者提供一些有价值的信息。
最后感谢极术社区与聆思科技组织本次活动,给我们提供了能够深入了解AI应用开发的机会。

参考链接

  1. 环境搭建 | 聆思文档中心 (listenai.com)
  2. 编译\\\_烧录\\\_调试 | 聆思文档中心 (listenai.com)
  3. 环境搭建常见问题 | 聆思文档中心 (listenai.com)
  4. 模型部署快速上手 | 聆思文档中心 (listenai.com)
  5. GLIBC\\\_2.34‘ not found简单有效解决方法-CSDN博客
  6. 初级开发指引 | 聆思文档中心 (listenai.com)
  7. 进阶开发指引 | 聆思文档中心 (listenai.com)
推荐阅读
关注数
5167
内容数
99
聆思科技官方专栏,专注AIOT芯片,持续分享有趣的解决方案。商务合作微信:listenai-csk 技术交流QQ群:825206462
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息