产品介绍

什么是Lyngor

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

支持的深度学习框架包括Tensorflow、Pytorch、Keras、Caffe、MXNet、ONNX 和PaddlePaddle。

系统框架

Lyngor系统框架

图 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个或多个层次,进行误差比对。如需定位 问题原因,推荐使用多层对比进行逐层定位。