TPU-MLIR

1、AI 编译器

TPU,张量处理器

AI编译器,把不同框架下的搭建起来的模型,转换为统一形式的中间表达 IR,然后通过 IR 转换成可以在特定芯片平台上运行的二进制模型

Top,芯片无关层:图优化、量化、推理

Tpu,芯片相关层,权重重排、算子切分、地址分配、推理

2、TPU-MLIR

  • 算子按照顺序一一对应进行转换:onnx --> origin.mlir
  • 图优化:origin.mlir --> canonical.mlir
  • F32/BF16 lowering: canonical.mlir --> tpu.mlir
  • 多层优化操作,权重重排,网络切分:tpu.mlir --> model.bmodel

tpu-mlir1

在模型转换过程中,会在各个阶段进行模型推理,并对比结果,以确保转换的正确性,量化过程会产生偏差

3、MLIR 语法介绍

LLVM 下的子项目,自带 Tensor 类型

在深度学习中,IR 可以理解为深度学习模型的一个中间表达形式

对于越高级的 IR,就越接近源代码,提取源代码意图的难度就越低,但是针对特定硬件优化代码的的难度就越高;对于越低级的 IR,这两点相反

由于 IR 的跨度越大,转换的开销就越大,因此需要多层中间表达。从统一通用的 IR,逐步抽象为针对特定硬件的 IR,最后针对目标生成特定的二进制文件

value,type,attract,operation

基于 ODS 框架进行 OP 定义,TableGen

4、TPU-MLIR 前端转换

原模型转换为 top 模型

前端转换工作流程:

​ 前提 --> 输入 --> 初始化 converter --> 生成 MLIR 文本 --> 输出

在初始化 converter 步骤中,提取的主要信息:模型输入、输出名称,算子输出形状,算子权重等

生成 MLIR 文本:把相关信息逐一插入

5、dialect conversion

把一系列在目标 dialect 上非法的算子转换为合法算子

mlir 既支持部分转化,也支持全转换

6、lowering in TPU-MLIR

lowering,芯片无关层转换为芯片相关层

top-to-tpu 基本过程:

  • top 层 OP 成分为 f32 和 int8 两种,前者可以直接转换成 f32/f16/bf16 的 tpu 算子,也可以经过校准量化,转换成 int8 的 tpu 算子;而后者则只能转换成 int8 的 tpu 算子

针对不同的芯片,需要有不同的 patterns 实现和 pass 实现

7、量化概述

量化的动机

深度学习网路部署到硬件设备难度高的原因:

  • 大量权重导致内存过大
  • 深度学习模型计算量庞大

解决方案:

  • 高性能专用芯片(例如 TPU)
  • 模型压缩(例如 量化)

量化的本质

本质:将权重与激活值,由 32 位的浮点型的范围很大的数值,映射到由低位固定点表示的小范围内(如 INT8)

为什么可以这样呢:

  • 低位的运算成本更低
  • 低位数据的搬移效率更高

–> 推理效率提高

量化类型:

  • 训练后量化:直接对预训练过的模型进行量化操作,无需或者仅需少量的 data,易于实现
  • 量化感知训练:在训练过程中模拟量化重新训练模型,需要带标签的数据,量化后更接近 F32 模型的精度

量化方案:

  • 均匀量化
    • 对称量化
      • 有符号
      • 无符号
    • 非对称量化
  • 量化颗粒度的考虑

量化推导

r = S ( q − Z ) r =S(q - Z) r=S(qZ)

量化推导

量化校准

​ min/max, KLD

量化感知训练

  • 训练后量化:轻量化 + 提高效率,但是会降低精度

    • 精度下降原因:量化误差,截断误差,multiplier 和 shift 代替 scale也会有误差
  • 量化感知训练优势:缓和量化造成的精度下降的问题,达成更低位的量化(INT4)

  • 量化感知训练实现方式:

    • 插入 FakeQuant 算子,将 weight 和 activation 量化成低位精度再反量化回 FP32 引入量化误差

    • 量化参数

      量化参数

  • 伪量化算子梯度:离散阶梯函数,不可导 --> QAT 算法

  • QAT特点:

    • 优势:缓和量化造成的精度下降问题;达成更低位i的量化
    • 劣势:重训练的开销

8、精度验证

model_eval.py

预处理信息包含在 mlir 中

9、pattern rewriting

dag to dag transformation(dag,有向无环图)

  • pattern definition
  • pattern rewriter
  • pattern application

整体逻辑:不断地去循环尝试匹配 patterns,然后 rewrite,当没有任何的 patterns 被匹配成功,或者循环的次数超过最大值的时候,就结束调用

9、TPU-MLIR 模型适配

10、TPU-MLIR 图优化

图优化是工具链的重要性能优化手段

指令发射 --> 读数据 --> 运算 --> 写数据

图优化实现:

  • 算子融合,减少 指令发射、读数据、写数据等的时间
    • 算子融合实现:BN,scale 融合进 conv
      • BN 转换成 scale
      • 多个 scale 转换成一个新的 scale
      • conv 和 scale 的融合

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 将PDF 转为图片 工具 【Free Spire.PDF for Java】(免费版)

Java 将PDF 转为图片 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取及导入: 方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入Java程序。 方…

如何进行安全管理

目录 安全管理 修改ECS实例登录密码 方式一:重置ECS实例密码 方式二:在实例内部修改登录密码 安全组 ECS实例加入安全组的规则 使用安全组 补丁管理 安全管理 如果希望保护网站安全,首先就要保护ECS实例安全,这需要对ECS实…

AG16KDDF256 User Manual

AGM AG16KDDF256 是由 AGM FPGA AG16K 与 DDR-SDRAM 叠封集成的芯片,具有 AG16K FPGA的可编程功能,提供更多可编程 IO,同时内部连接大容量 DDR-SDRAM。  FPGA 外部管脚 FBGA256 封装,管脚说明请见下表 Table-1: Tab…

vr虚拟高压电器三维仿真展示更立体全面

VR工业虚拟仿真软件的应用价值主要体现在以下几个方面: 降低成本:通过VR技术进行产品设计和开发,可以在虚拟环境中进行,从而减少对物理样机的依赖,降低试错成本和时间。此外,利用VR技术构建的模拟场景使用方…

Azure Machine Learning - Azure OpenAI GPT 3.5 Turbo 微调教程

本教程将引导你在Azure平台完成对 gpt-35-turbo-0613 模型的微调。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师&…

Java基于TCP网络编程的群聊功能

服务端 import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.List;public class Server2 {public static List<Socket> onlineList new ArrayList<>();public static void main(String[] args) throws Except…

Uncaught ReferenceError: VueRouter is not defined

没有引入完全&#xff0c;报缺什么就引入什么 import * as VueRouter from vue-router;

STM32CubeIDE在使用freertos的情况下空间占用情况

因为STM32F103C8T6芯片的存储空间太小了&#xff0c;只有64K&#xff0c;在使用STM32CubeIDE的freertos情况下空间占用情况做个简单的测试&#xff1a; 不使用程序优化&#xff1a; 空间占用情况&#xff1a; 如果使用浮点运算功能的printf&#xff1a; 这个使用空间占用更大…

网络编程套接字socket

哈哈哈&#xff0c;之前的保存成草稿忘了发 目录 一 . 先回顾一下网络初始中的相关概念&#xff1a; 1.网络通信&#xff1a; 2.局域网&#xff1a; 3.广域网&#xff1a; 4.IP地址&#xff1a; 5.端口&#xff1a; 概念 格式 6.协议&#xff1a; 7.五元组&#xff1a; 8.分层…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法&#xff0c;包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而&#xff0c;许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

[足式机器人]Part4 南科大高等机器人控制课 CH10 Bascis of Stability Analysis

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 南科大高等机器人控制课 Ch10 Bascis of Stability Analysis 1. Background1.1 What is Stability Analysis1.2 General ODE Models for Dynamic…

162TB全球卫星地图瓦片服务

这里再为你分享长光的另一款重量级产品&#xff0c;即《吉林一号国产化全球遥感底图瓦片服务》&#xff0c;你可以把它简单地理解为是一套全球离线地图服务系统。 为了行文方便&#xff0c;我们在本文暂且称之为“长光全球瓦片系统”。 《长光全球瓦片系统》参数 《长光全球…

电脑屏幕保护时间怎么设置?这4个方法很管用!

“我的工作经常都需要使用电脑&#xff0c;有时候使用时间比较长&#xff0c;会有眼睛疲惫的感觉。想问问电脑屏幕保护时间应该怎么设置呢&#xff1f;有什么可以快速对电脑屏幕保护时间进行设置的方法吗&#xff1f;” 在现代生活中&#xff0c;电脑已经成为我们不可或缺的工具…

OpenAI大模型DecryptPrompt

what is prompt 综述1.Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(五星好评)综述2. Paradigm Shift in Natural Language Processing(四星推荐)综述3. Pre-Trained Models: Past, Present and Future Prompt即…

服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器上有一组由12块硬盘组建的raid6磁盘阵列&#xff0c;raid6阵列上层有一个lun&#xff0c;映射到WINDOWS系统上使用&#xff0c;WINDOWS系统划分了一个GPT分区。 服务器故障&分析&#xff1a; 服务器在运行过程中突然无法访问。对服务…

C++入门编程二(各类运算符、if、switch、while、for循环等语句)

文章目录 算术运算符前后置运算符赋值运算符比较运算符逻辑运算符if语句1、单行if2、多行if3、多条件if4、嵌套if语句5、案例&#xff1a;三只小猪称体重 三目运算符switch语句while循环语句案例&#xff1a;1、猜数字 do-while循环语句案例&#xff1a;1、水仙花数 for循环语句…

SAP CO系统配置-获利能力分析-(机器人制造项目实例)

创建经营组织 配置路径 IMG菜单路径:企业结构>定义>控制>创建经营组织 事务代码 KEP8 屏幕截图: 维护特性 配置路径

有没有好用的视频提取文案工具推荐?

在如今这个快节奏的时代中&#xff0c;视频已成为人们记录和分享生活的重要媒介。当然有很多优秀的人&#xff0c;它们创作的视频文案或是演讲的台词、字幕等都非常精彩&#xff1b;难免有时候我们也会借鉴他人的优质内容供自己参考、修改等。那么怎么把这些内容自动提取出来呢…

气动冷凝水回收泵机械浮球泵的特点工作原理介绍 不需要电源

​ 1&#xff1a;气动凝水回收泵机械式介绍 气动冷凝水回收泵是一种设计用于不使用电力来泵送冷凝液、油和其他高温液体等的设备。它无需维护&#xff0c;能将大量凝结水和其它液体从低位、低压或真空场所泵送到高处及高压区域。与传统电泵相比&#xff0c;气动冷凝水回收泵可…

【51单片机系列】DS18B20温度传感器模块

本文是关于温度传感器的相关内容。 文章目录 一、 DS18B20数字温度传感器介绍1.1、 DS18B20温度传感器的特点1.2、DA18B20内部结构1.3、 DS18B20的温度转换规则1.4、 DS18B20的ROM指令表1.6、 计算温度1.7、 读写时序 二、DS18B20使用示例 一、 DS18B20数字温度传感器介绍 DS1…