端侧推理软件栈
目前单个嵌入式设备算力不足以训练模型,运行大语言模型进行推理算力也是很吃紧的。嵌入式设备上可以部署轻量模型推理软件栈。
如何构建嵌入式设备模型软件栈:
1、构建自己的模型文件格式。
2、构建python,c接口库,提供模型构建工具集,模型推理接口库等。
3、支持TensorFlow,PyTorch,ONNX等模型,并提供工具将这些模型转换成自己的模型,而且提供工具分析自己的模型。
4、提供模型评估工具,支持精度评估,性能评估,内存评估等。
5、支持推理,量化,稀疏,矩阵运算,自定义算子,动态shape,数据排布等特性和功能,支持NPU/GPU/CPU调度,Cache管理等硬件管理,支持图级别/算子级别/内存优化等优化机制和流程。
6、算子可以运行在CPU上(可用SVE,NEON指令扩展等优化性能),可以运行在GPU,NPU,TPU上,其中TPU是谷歌自研的。
7、端侧使用GPU运行算子可以用OpenGL,OpenCL,Vulkan等库,MNN,NCNN是对这些库进行了封装。在NPU上运行算子需要使用专用的NPU软件栈,ARM的NPU软件栈是ARM NN。