2021年9月25日 深度学习框架与动态shape v3.1 archimekai.pptx
【深度学习框架与动态shape】是现代机器学习领域中的一个重要话题。动态shape是深度学习模型中的一种特性,它允许模型处理具有不确定或可变尺寸的数据,比如自然语言处理中的序列长度变化。相比于静态模型,动态模型能更好地适应各种输入大小,提供更广泛的适用性。 在静态模型中,每个运算符的输入输出形状在执行前就已经确定,这使得编译器可以在运行前进行优化,如预先分配张量内存。然而,这种预分配在动态模型中并不适用,因为张量的形状和内存需求无法在编译时预测。 动态模型面临的挑战包括:缺乏能表示动态结构的中间表示(IR)、生成高效动态shape算子的工具、在形状不确定时优化性能的困难、以及需要处理动态结构的轻量级运行时环境。现有的优化和内存分配策略往往假设形状固定,不适用于动态模型。 Nimble是一个针对这个问题的解决方案,它提出了一个端到端的动态模型推理系统。Nimble的主要贡献在于: 1. 它扩展了IR以支持动态shape,通过引入符号`Any`来表示未知形状。 2. 添加了形状函数以动态计算形状,区分数据独立的(如conv2d)和数据依赖的(如unique)形状计算。 3. 实现了内存分配优化,将隐式内存申请变为显式,以便在IR层面上跟踪和优化动态内存分配计划。 4. 设计了设备选择机制,考虑了模型在不同硬件上的执行效率。 5. 开发了一种基于形状的算子选择算法,根据输入形状动态选择合适的运算符。 DISC(Dynamic Shape Compiler)是另一个针对机器学习工作负载的动态形状编译器。DISC致力于解决动态shape的编译问题,提高执行效率,但它没有详细介绍具体的实现方法。 Nimble和DISC这样的框架为处理动态shape的深度学习模型提供了新的思路,它们通过编译和优化技术克服了动态shape带来的挑战,提高了模型在处理可变输入时的效率和灵活性。这些技术的发展对于推动深度学习在更多领域的应用,特别是对于那些输入数据大小不固定的场景,如自然语言处理和图像识别等,具有重要意义。
剩余17页未读,继续阅读
- 粉丝: 158
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助