This repository has been archived by the owner on Jun 8, 2023. It is now read-only.
Releases: DeepLink-org/DIOPI-PROTO
Releases · DeepLink-org/DIOPI-PROTO
v0.1.0
Release Note
DeepLink-DIOPI v0.1.0 Release Notes
大家好!我们很高兴的宣布DeepLink-DIOPI v0.1.0版本正式发布!
DeepLink-DIOPI是一套设备无关接口体系,作为芯片于深度学习框架适配的“桥梁”。旨在训练框架和人工智能芯片之间定义一套计算契约,良好的函数抽象使得上(框架)下(芯片)两层在适配工程实施时能有效地解耦。基于这套契约,芯片开发者可以将下层芯片适配的工作复用到不同的训练框架(Pytorch、Parrots等)的适配中去,降低芯片+框架的适配成本,保障算子实现正确性。在这个版本中,我们开源了三个仓库,分别是:DIOPI-PROTO、DIOPI-IMPL、DIOPI-TEST。
版本号
v0.1.0
核心功能
- 提供120+个标准算子接口,覆盖OpenMMLab的Top30流行模型。涵盖了分类、检测、分割及姿态估计等多个领域深度学习模型所需训练算子。
- 框架层面支持多种训练框架(包括Pytorch、Parrots等),硬件层面支持多种国产芯片(包括寒武纪、燧原和天数等),是训练框架和硬件适配的“桥梁”
- 提供标准测试套件,为硬件芯片实现的算子库提供调试验证功能。
应用行业
- 对硬件行业:
- 实现软硬件解耦,根本性的破除生态壁垒
- 一次适配即可兼容国际和国产框架,建立开放兼容的新生态
- 对框架行业:
- 实现软硬件解耦,专心框架的性能优化
- 一次适配即可支持多家优秀国产AI芯片
- 对应用行业:
- 实现主流框架与芯片高效适配,极大降低算力使用门槛,激活算力使用需求
- 融入Torch 软件大生态,海量的优秀算法框架,让模型训练更简单
- 打破算力和框架的垄断,选择更丰富,实现算力要素多样化
仓库介绍
DeepLink-DIOPI仓库说明和构造如下表所示:
仓库 | DIOPI-PROTO | DIOPI-IMPL | DIOPI-TEST |
---|---|---|---|
说明 | 包含标准算子接口 DIOPI 定义的头文件,它包含了操作接口和算子接口 | 是厂商用户基于 DIOPI PROTO 进行算子实现时的一个参考实现。该参考实现以 CUDA 为例,展示了调用 kernel 和实用库(cuDNN)两种方式如何实现算子 | 一套标准测试套件,支持没有训练框架的情况下验证算子适配正确性 |
组成 |
文档
diopi_v3.1.0
DIOPI-V3.1.0-Release-Note
前言
标准算子接口(Device-Independent Operator Interface, DIOPI)是一套设备无关接口体系,作为芯片于深度学习框架适配的“桥梁”,根本性实现软硬件解耦,破除生态壁垒,遵守此标准可以实现主流框架与芯片高效适配,极大降低算力使用门槛,减少技术阻力,从而打破算力和框架的垄断,实现算力要素多样化。
版本号
v3.1.0
发版日期
2022.12.30
新增接口
新增框架侧所需的:
- diopiGetVendorName
- diopiGetImplVersion
- diopiGetLastErrorString
新增功能
框架支持
- 新增SenseParrots框架支持
芯片支持
- 新增英伟达芯片支持和3款国产芯片支持
其他
- 新增42个算子实现,共计119个算子实现,覆盖OpenMMLab的Top30流行模型
- 一致性测试新增 filter_type, models 功能参数
优化部分
- 优化了scalar的创建与传递以保证不同数据类型scalar测试
- 优化函数接口定义中reduction参数传参方式
- 优化max_pool等算子测例以兼容不同硬件对于index的定义
- 优化DIOPI_API宏以增加导出为弱符号的功能
修复问题
- 修复设备商反馈及迭代过程发现的Bug
- 修复dropout接口没有计算反向所需中间变量
- 修复topk/unique/等输出可能不唯一的情况下的测例
- 修复常量Tensor的传参方式
- 修复index_put接口以允许不同数量的index
文档更新
- 新增40个算子的API文档(API文档-V1.1.0)
注意事项
无
20221121
add backward op def of linear and cross_entropy, add fill def
20221111
fix dropout