HighLight

  • MegEngine Lite 是模型直达SDK的解决方案,充分发挥 MegEngine 的高效,多平台的推理能力,为用户提供简洁、易用的 C++、C、python 多种模型推理接口,同时 MegEngine Lite 也可以接入其他的推理框架,便于业务集成。
  • 尝鲜体验通道如下,请参考使用指南 python3 -m pip install megengine==1.6.0rc1 -f https://megengine.org.cn/whl/mge.html

Known Issue

由于对fastrun fp16 的特殊 case 加了一些判断,AMP 整体性能有10%左右的下降。

Bug Fixes

Python API

  • 解决 LSQ 量化算子初始化格式错误问题。
  • 当自定义求导 Function 的 forward 输入为非 Tensor 参数时,修改报错信息更可读。
    • 原报错信息:RuntimeError: can not find op_trait by GenericPyOp .
    • 现报错信息:TypeError: op GenericPyOp expect type Tensor as inputs, got int actually
  • 修复 module 通过 setattr 自动命名时,对同一个实例多次设置到相同属性会误报错误信息的问题。
  • 修复 is_single_machine 可能导致自定义 launcher 报错的检查逻辑。
  • 修复报错信息 ,输出 device 逻辑名称和物理名称的完整信息,以便于 debug 因为 device 不一致的计算问题。
    • 原报错信息:RuntimeError: ambiguous device: cpu0:0 vs cpu0:0 .
    • 现报错信息:RuntimeError: ambiguous device: CompNode("cpu0:0" from "xpux:0") vs CompNode("cpu0:0" from "cpux:0") .

通用组件

  • 修复从 vs code terminal 无法构建 macos 的 wheel 包的问题。
  • 统一lb_memory在环境变量、python 、C++ 里的单位为MB,解决 int 类型参数较大时溢出的问题。
  • 将 span dist too large 从 warning 降级成 deug log,避免展示一堆无用的 warning。
  • 修复开启 DTR 时由于重算链过长导致递归栈溢出的问题。
  • 修复 fp16 midout 编译失败的问题。
  • 修复 python fastrun 错误,确保读取cache的正确性

CUDA

  • 修复 cutlass 链接时候 crash。
  • 修复设置了环境变量 CUDA_CACHE_PATH 但仍然报相关警告信息的问题。
  • 缩短 cutlass 文件名以修复在 windows 上的编译错误。
  • 修复 cutlass cmake 编译依赖。

第三方硬件

  • 增加第三方的 loader 读模型失败后报错功能,避免返回 null ptr 导致后续程序崩溃。

发版流程

  • 修复图手术中 replace opr 错误导致输出名字被改动的问题。

周边工具

  • 修复 windows 编译准备脚本。
  • 在 hub 缓存的模型中加入 MegEngine 版本信息,以解决当 MegEngine 版本更新之后,若有 breaking change,而用户的 ~/.cache/megengine/hub 中还是老代码,则可能在使用 megengine.hub.load 时因 API 版本不同出现兼容性问题。
  • 修复静态内存分析的工具中统计 GPU 静态内存分配信息的错误。

New Features

Python API

  • interpolate 支持 nearest 和 bilinear 模式
  • 增加 conv_transpose2d 的量化 module 。
  • 增加 cumsum 算子,行为和 pytorch 一致。和 MegDL 差别如下。
    • axis 必须指定,而不是不指定就偷偷帮你 flatten
    • 没有暴露 exclusive 和 reverse 这两个参数
  • 增加 Reduce OPR 对空 Tensor 支持。具体行为如下。
    • sum: => 0
    • mean: => nan
    • prod: => 1
    • min: 报异常
    • max: 报异常
    • sum_sqr: 报异常

混合精度训练

  • 修改添加 weight_scaler/bias_scaler 的方式,从需要手动在模型内添加改为通过接口 get_scaled_model 实现自动添加。

CUDA

  • 添加 tensorcore fp16 matmul 算法。

通用组件

  • 新增加环境变量 MGB_REGISTER_SEGV_HANDLER (默认关闭)。该环境变量打开时,MegEngine 只打印自己的堆栈, 而默认不注册 SEGV signal。

项目简介

MegEngine 是一个快速、可拓展、易于使用且支持自动求导的深度学习框架

🚀 Github 镜像仓库 🚀

源项目地址

https://github.com/MegEngine/MegEngine

发行版本 37

MegEngine v1.13.1

全部发行版

贡献者 39

全部贡献者

开发语言

  • C++ 79.8 %
  • Cuda 13.8 %
  • Python 4.9 %
  • C 0.9 %
  • CMake 0.5 %