OneFlow v0.9.0正式发布

news2024/11/17 4:30:18

24cba4dda2d927dcaa7091d83ffd734a.png


今天是 OneFlow 开源的第 903 天,OneFlow v0.9.0 正式发布。本次更新包含 640 个 commit,完整更新列表请查看链接:https://github.com/Oneflow-Inc/oneflow/releases/tag/v0.9.0,欢迎下载体验新版本,期待你的反馈。

OneFlow v0.9.0 主要包括以下新增亮点功能和优化:

1. PyTorch 兼容性

OneFlow 对 PyTorch API 和 模型的兼容性进一步提升。新增与 PyTorch 对齐的 86 个 API 接口 和 算子, 修复了 104 个算子兼容性相关的 bug。支持更多的 PyTorch 模型一键迁移成 OneFlow 模型,并获得性能加速。

  • 支持 Stable DiffusionGLMYOLOv5 等模型一键迁移为 OneFlow 模型

  • oneflow.load 支持直接加载 torch.save 的模型,模型迁移更方便

  • 新增 oneflow.mock_torch 模块 与 mock 方法(https://docs.oneflow.org/master/cookies/oneflow_torch.html),可以在不改变 PyTorch 的原始脚本的情况下,一键迁移包含多个脚本的复杂 PyTorch 模型。

2. 分布式编程易用性

Global Tensor 新增一系列方便分布式编程的接口与方法,并且修复了已知的相关 bug。

3. 支持自动并行

Graph 发布自动并行新特性(version 1) , 支持在指定 Placement 下自动搜索速度最快的 SBP 组合,使用 Global Tensor 编写分布式模型无需纠结是数据并行、模型并行还是混合并行。

文档参见:
https://oneflow.readthedocs.io/en/master/auto_parallel.html

4. 性能优化

Graph 新增一系列与内存、执行速度、流水掩盖、编译速度相关的优化,提升性能,降低显存开销。

新增一系列算子优化与系统优化, 包括 Eager 的指令调度、高性能 CUDA kernel 、多内存池打通 等。

1fe1a76f955f3d03af544e211a10c133.png

1387b387a4461926f528fb622bad1020.png


相比原始的基于 PyTorch、DeepSpeed、Apex 的 GLM 实现,基于OneFlow v0.9.0 训练 GLM-large(335M) 预训练模型,在简单调优后性能最高提升 3 倍,显存节省 1/3。

97fbeca0c0683cebd21ebf545027b6e8.png

a27f77e53593095887508183f89aa749.png

在 Stable Diffusion 推理的性能表现上,在 A100 显卡,无论是 PCIe 40GB 还是 SXM 80GB 的配置,相比其他深度学习框架或编译器,OneFlow 的性能都是最快的。

5. 调试功能

Graph 提供一系列辅助调试的功能,包括:内存分析日志、编译阶段进度显示、计算图展示等。

6. IR

OneFlow IR 支持 JIT 编译 LR 代码、分布式描述 SBP signature 以及新增 OKL Dialect 等更多编译优化功能。

7. OneFlow-ONNX 工具

OneFlow-ONNX v0.6.0 版本发布,提升了转换接口的易用性,开发了多个新的特性,并新增支持 6 种模型以及 20 余种 Op,以及修复 6 个转换过程中的 bug。pip install oneflow-onnx==0.6.0 一键安装使用 。

仓库地址:
https://github.com/Oneflow-Inc/oneflow_convert

8. 报错信息提示

报错信息提示更加友好,支持高亮显示报错内容,简化大量系统内部信息细节,可以直观地了解出错的位置和类型。

完整版 OneFlow v0.9.0 更新内容请查看:
https://github.com/Oneflow-Inc/oneflow/releases/tag/v0.9.0

感谢以下贡献者:

liujuncheng, BBuf, wyg1997, jackalcooper, Flowingsun007, clackhan, daquexian, marigoold, lixinqi, guo-ran, hjchen2, strint, ouyangyu, MARD1NO, small1945, reygu, Ldpe2G, leaves-zwx, Yipeng1994, zhongshsh, lixiang007666, mosout, chengtbf, hhhfccz, doombeaker, howin98, xiacijie, farmerzhang1, shangguanshiyuan, JasonChen9, liufengwei0103, youxiudeshouyeren, laoliu97, EsdeathYZH, rejoicesyc, AsakusaRinne, LijunZhang01, Chenqll, xiezipeng-ML, simonJJJ, ShawnXuan

其他人都在看

  • 2023年AI十大展望:GPT-4领衔大模型变革

  • 李白:你的模型权重很不错,可惜被我没收了

  • OpenAI掌门Sam Altman:AI下一个发展阶段

  • 比快更快,开源Stable Diffusion刷新作图速度

  • OneEmbedding:单卡训练TB级推荐模型不是梦

  • GLM训练加速:性能最高提升3倍,显存节省1/3

  • “零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍

点击“阅读原文”,欢迎Star、试用OneFlow最新版本

ebbce2c6f708b7a988de61cf7f3da9b9.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java补充内容(Junit 反射 注解)

1 Junit测试 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。 Junit使用:白盒测试 步骤: 定义一个测试类(测试…

机器学习知识总结——18.实现一个简单的K-Means聚类

文章目录引用库生成样本数据训练K-Means实验在上一章节里简要的介绍了无监督学习中聚类的知识点,看的太多理论概念,难免会有点莫名其妙,现在就让我们来实现一个简单的 K-Means 算法,从而从原理上彻底弄明白聚类是怎么工作的。 引…

YOLO v2主要看这些重点

来源:投稿 作者:ΔU 编辑:学姐 往期内容: YOLOv1学习笔记 论文 《YOLO9000:Better, Faster, Stronger》 Joseph Redmon∗†, Ali Farhadi∗† University of Washington∗ , Allen Institute for AI† http://pjreddie.com/…

计算机视觉OpenCv学习系列:第五部分、颜色操作

第五部分、颜色操作第一节、颜色表操作1.查找表LUT(look up table)2.颜色查找表(1)Gamma校正(2)OpenCV默认的查找表3.代码练习与测试(1)多种颜色查找表(2)滚动条颜色查找表第二节、随…

23种设计模式(十四)——中介者模式【接口隔离】

文章目录 意图什么时候使用中介者真实世界类比中介者模式的实现中介者模式的优缺点亦称:调解人、控制器、Intermediary、Controller、Mediator 意图 用一个中介者对象来封装一系列的对象交互。使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间…

新书预告:人机环境系统智能

东方算计:象者,像也西方计算:逻辑 or 实证人工智能是数学物理的产物,而数学是不完备的,物理仍是在探索中,所以人工智能存在着先天不足,有着大量的脆弱和缺点,具体而言,包…

7、矩阵的创建

目录 一、希尔伯特(Hilbert)矩阵 二、托普利兹(Toeplitz)矩阵 三、0~1间均匀分布的随机矩阵 四、标准正态分布随机矩阵 五、魔方矩阵 六、帕斯卡矩阵 七、范德蒙(Vandermonde)矩阵 MATLA…

机器学习——基本概念

小谈:一直想整理机器学习的相关笔记,但是一直在推脱,今天发现知识快忘却了(虽然学的也不是那么深),但还是浅浅整理一下吧,便于以后重新学习。最近换到新版编辑器写文章了,有的操作挺…

跨平台freebasic集锦(1)-安装与概述

目录TIOBE Index for January 2023概述特点BASIC兼容性干净的语法多平台Unicode支持大量内置数据类型用户定义类型(UDT)默认过程参数值内联汇编Intel语法传统的预处理器支持调试支持创建OBJ、LIB、DLL和控制台或GUI EXE优化代码生成下载安装TIOBE Index …

Java设计模式-迭代器模式、迭代器模式是什么、怎么使用

继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 6.9 迭代器者模式 6.9.1 定义 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示 6.9.2 结构 抽象聚合(Aggregate)角色&a…

[创业之路-48] :动态股权机制 -3- 静态股权分配 VS 动态股权分配

静态的股权分配是基础,动态的股权分配才是灵魂:只要你给了固态股权,比如说,股东A在最开始出资100万,占了10%的股份,但是,在后面的工作种,因为能力问题,价值观问题&#x…

回收租赁商城系统功能拆解12讲-会员权益

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格,后台调整最终回收价,用户同意回收后系统即刻放款,用户微信零…

【自然语言处理】词袋模型在文本分类中的用法

词袋模型在文本分类中的用法1.加载数据 20 Newsgroups:数据被组织成 20 个不同的新闻组,每个新闻组对应一个不同的主题。一些新闻组彼此非常密切相关(例如 comp.sys.ibm.pc.hardware / comp.sys.mac.hardware),而其他…

云原生之Docker容器的存储管理

一、检查本地docker环境 1.检查宿主机系统版本 [rootdocker ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) 2.检查docker版本 [rootdocker ~]# docker -v Docker version 20.10.18, build b40c2f6二、创建一个测试httpd容器 1.创建测试目录 [rootdoc…

Python版本PathPlanning运动规划库中RotationToWorldFrame函数内部计算过程分析

本文主要对Python版本PathPlanning运动规划库中RotationToWorldFrame函数的内部计算过程分析,包括相关必备python基础和计算过程分析两部分,并给出了等效的MATLAB版本计算过程程序,方便分析对比。 (注:RotationToWorld…

【春节旅游攻略】南京周边出发,小众又好玩的景点推荐

【写在前面】 过年了,今天咱不谈技术,聊聊轻松的话题,旅游,其实博主很喜欢去外面走走看的,特汇总了一个4天3晚的旅行攻略,说走就走,带上自己的亲人多看看外面的锦世繁华。 三人行,…

使用最小二乘法和最大似然法估计非线性模型

专注系列化、高质量的R语言教程推文索引 | 联系小编 | 付费合集本文是年前的最后一篇推文,我们来学习一下使用最小二乘法和最大似然法进行非线性模型估计。模型估计是指,在模型形式已知的情况下,求解出可以使已有数据与模型形式最大程度上相符…

【日常系列】LeetCode《28·动态规划3》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 二维数组中的路径问题 买卖股票的最佳时机 lc 62【剑指 098】【top100】&#xff1a;不同路径 https://leetcode.cn/problems/unique-paths/ 提示&#x…

分享优秀的视频地址

【2022 RISC-V中国峰会-芯来演讲合集】https://www.bilibili.com/video/BV1mV4y1W785?vd_source733efcf14020a43e7dac58e4c28ca0c8【计算机组成与设计&#xff1a;RISC-V【浙江大学】】https://www.bilibili.com/video/BV1tz411z7GN?vd_source733efcf14020a43e7dac58e4c28ca0…

【Dat图片的位异或解密】

文章目录 异或一、图片字节标识二、开始异或计算异或 异或(eor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为"⊕"&#xff0c;计算机符号为"eor"。其运算法则为: a⊕b (a ∧ b) ∨ (a ∧b) 如果a、b两个值不相同&#xff0c;则异或结果为1。…