概述
K230是嘉楠科技Kendryte®系列AIoT芯片中的最新一代SoC芯片,该芯片采用全新的多异构单元加速计算架构,集成的玄铁C908具有2个高能效RISCV计算核心,内置新一代KPU(Knowledge Process Unit)智能计算单元,具备多精度AI算力,广泛支持通用的AI计算框架
硬件架构
CanMV-K230开发板功能框图
SoC架构
Core架构
K230 中采用的玄铁C908双核处理器中大核具备RVV1.0扩展的特性,能够大幅度提升CPU算子推理时的表现。
软件开发
对Transformer模型推理加速的支持
K230的KPU单元不支持对Transformer的decoder模型中的 softmax、layer_norm、where、gather,reduce_arg,reshape 进行硬件推理加速,因此需要使用C908实现推理,目前已经完成了对 softmax、layer_norm、where的RVV优化,性能提升明显。
在K230上优化前后的性能对比:
在开启RVV优化后能够极大的提升CPU算子的推理性能,缩短整个模型的推理时间(1973–> 46)ms,RVV优化后占据大部分时间的 softmax算子时间减少到25ms,layer_norm算子时间减少到0.97ms,where算子时间减少到0.91ms,整个模型的推理时间缩短了97.6%,在实际模型部署时具有很高的应用价值。
nncase
nncase是一个为 AI 加速器设计的神经网络编译器, 目前支持的 target有cpu/K210/K510/K230等1。
nncase软件栈包括compiler和runtime两部分。
Compiler: 用于在PC上编译神经网络模型,最终生成kmodel文件。主要包括importer, IR, Evaluator, Quantize, Transform优化, Tiling, Partition, Schedule, Codegen等模块。
参考文献
K230 nncase开发指南 ↩︎