产品介绍
什么是Lyngor
Lyngor是由北京灵汐科技有限公司基于自研KA200类脑芯片处理器(简称KA200) 提供的计算图编程框架,提供了丰富的基本算子,支持常用的机器学习、深度 学习、类脑计算算法及模型。Lyngor支持对多种深度学习框架提供的模型文件 进行解析和编译,生成KA200所需的指令文件作为计算图推理引擎,在KA200上 加载该引擎即可进行计算图加速计算。
支持的深度学习框架包括Tensorflow、Pytorch、Keras、Caffe、MXNet、ONNX 和PaddlePaddle。
系统框架

图 Lyngor系统框架
功能支持
计算图构建
支持使用Lyngor算子逐层构建计算图网络,进行加速计算。
支持将第三方框架模型转换为计算图。
计算图编译及优化
支持Python接口进行计算图编译。
支持计算图融合等图优化方法。
支持计算图异构拆分。
提供编译工具,支持直接输入模型路径进行编译。
支持输入JSON格式配置文件进行编译。
支持对编译生成的计算图推理引擎进行序列化/反序列化。
模型转换
支持将第三方框架模型转换为KA200支持的模型。
模型量化
支持对计算图中的卷积算子进行INT8量化。
备注
模型量化可将部分卷积的权重体积减少1倍,在保证精度的情况下,提升模型运行速度。
模型修改
支持增加前/后处理,在输入/输出阶段修改计算图。
前处理包括数据类型转换和归一化操作。
后处理包括数据类型转换和排序操作。
数据类型转换支持UNIT8/INT8/FLOAT16/FLOAT32。
异构计算
支持多种架构硬件平台,包括ARM(KA200)和APU(KA200)。
支持2种运算场景(包含1种异构运算场景),包括:
神经网络模型全部运行在APU中。
神经网络模型大部分运行在APU中,少部分运行在ARM中。
备注
上述APU,即KA200中的APU计算单元。同理,ARM,即KA200的ARM计算单元。
自定义算子插件
提供超100个基础算子。
支持用户通过基础算子进行组合,自定义新算子;新算子可在APU上运行。
备注
自定义算子的开发操作说明参见《Lyngor自定义算子开发指南》。
框架支持
表 第三方框架支持
框架 |
说明 |
---|---|
Tensorflow |
支持Tensorflow 1.12~1.15,2.0~2.4。 推荐使用Tensorflow 1.15。 |
Keras |
推荐安装最新版本。 |
MXNet |
推荐安装最新版本。 |
Pytorch |
支持torch1.5.0~1.9.0。 推荐使用torch 1.7.0;torchvision 0.8.0。 |
Caffe |
推荐编译安装最新版本。 |
ONNX |
推荐使用ONNX 1.7;opset 11及以下。 |
PaddlePaddle |
Python 3.6场景:推荐使用PaddlePaddle 2.4.2; Python 3.8场景:推荐使用PaddlePaddle 2.6.2。 |
设备支持
支持使用APU库算子编译,并在KA200中的APU设备上运行。
支持部分算子的ARM编译,并在KA200中的ARM设备上运行。
算子支持
支持第三方框架算子。具体内容参见:《Tensorflow/Caffe/Pytorch/ONNX/Keras/MXNet/PaddlePaddle算子说明书》
支持开发自定义算子。具体内容参见:《Lyngor自定义算子开发指南》和《LynLang算子编程平台开发指南》
基本概念
表 基本概念
术语 |
说明 |
---|---|
KA200类 脑芯片处理器 |
简称KA200,指由北京灵汐科技有限公司自主研发, 应用众核类脑计算架构的SoC边缘计算芯片,用于实现人工 智能推理和类脑计算。 |
KA200衍生产品 |
指由北京灵汐科技有限公司自主研发,以KA200为核心, 具有不同形态,适用于不同场景的计算产品, 包括板卡和模组。 |
HP系列产品 |
指由北京灵汐科技有限公司自主研发,以KA200为核心, 具有不同形态,适用于不同场景的类脑计算加速卡。 |
HM系列产品 |
指由北京灵汐科技有限公司自主研发,以KA200为核心, 具有不同形态,适用于不同场景的类脑计算模组。 |
Lyngor |
是由北京灵汐科技有限公司基于自研KA200提供的计算图 编程框架,提供了丰富的基本算子,支持常用的机器学习、 深度学习、类脑计算算法及模型。 |
Lyngor库 |
是Lyngor提供计算图相关操作的Python接口。 |
第三方框架 |
指由其他企业公司或组织开发的神经网络框架, 目前Lyngor可支持Tensorflow/Caffe/Pytorch/Keras/ MXNet/ONNX/PaddlePaddle。 |
设备 |
指HP/HM系列产品上搭载的KA200。 |
网络 |
指由算子节点构成的计算图的网络结构。 |
节点 |
构成计算图的算子,即为网络的一个节点。 |
模型 |
指由1个或多个算子组成实现特定功能的函数。 |
计算图 |
用于表示AI模型前向和后向传播的过程,由算子和边组成。 |
算子 |
指一个运算或者一组运算。 |
基础算子 |
指Lyngor已提供的算子,包括math模块(常用数学计算 算子)、nn模块(常用神经网络模型算子)和transform模 块(常用数据变换算子)。 |
自定义算子 |
指当系统提供的算子不能满足用户个性化需求时, 用户基于当前系统自行开发算子实现功能。 |
字典 |
是Python内建的映射类型,通过名字引用值的数据结构。 |
数据类型转换 |
指在不同数据类型之间切换,支持UNIT8/INT8/ FLOAT16/FLOAT32。 |
编译模型工具 |
是Lyngor内置工具,通过命令行对第三方框架模型进行 编译,通过参数设置,覆盖模型编译的绝大多数场景。 |
精度对比工具 |
用于比较Lyngor和第三方框架模型的结果误差。 |
单层对比 |
指基于模型最终推理结果,进行误差比对。如需比对结果 误差,推荐使用单层对比。 |
多层对比 |
指基于模型中1个或多个层次,进行误差比对。如需定位 问题原因,推荐使用多层对比进行逐层定位。 |