【寒武纪(6)】MLU推理加速引擎MagicMind,最佳实践(二)混合精度

混合精度在精度损失范围内实现数倍的性能提升。

支持的量化特性

构建混合精度的流程

构建混合精度的流程如下,支持浮点或半精度编程,以及量化精度编程两种方式。

  • 浮点或半精度 无需提供tensor分布
  • 量化编程需要设置tensor分布。

在这里插入图片描述

网络粒度和算子粒度的设置输入精度和输出数据类型

网络中算子的输入精度和输出数据类型在不做修改时维持原始精度。如果需要修改输入精度和输出的类型,有两种方式:
1、按照网络粒度设置。推荐方法,整个网络所有的算子所使用的输入精度和输出数据类型都设置了。
2、按照算子粒度设置。精细化设置每一个算子使用的输入精度和输出类型。比较灵活但是比较复杂。算子粒度比网络粒度的优先级高,同时设置时,会使用算子粒度。
在这里插入图片描述

网络设置的配置示例:
在这里插入图片描述

算子颗粒度设置示例:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2混合精度编程

基本概念:

  • 整网输入
  • 整网输出
  • 中间层输入
  • 中间层输出
  • const tensor输出

默认情况下

整网输入、整网输出、const tensor 在网络创建时直接指定或者后续更改。
网络中间层输入类型由上一层算子连接关系自动推导,中间层输出类型(除ICastNode可以指定目标类型外)默认为float 32

设置类型

使用INodeSetxxx 后,即使不同的网络层的类型不匹配,MagicMind 会自动完成必要的数据转换。

在这里插入图片描述

一种途径:创建float32 的网络,然后设置INodeSetxxxx偏好。

在这里插入图片描述

第二种途径:改变整网的输入类型,const tensor类型、整网输出类型,结合偏好输入和输出类型,构建全float16网络,减少MagicMind的自动插入数据类型转换Node。在这里插入图片描述

3 量化数据类型

onnx框架量化参数和寒武纪量化参数,以及数值范围Range

在这里插入图片描述

手动设置量化参数

如果用户知道数据的分布范围,可以调用接口,将数据范围手动设置到Range类。

使用校准器获得并设置数据的分布范围

基于浮点模型和样本数据—>计算并设置数据分布范围,并根据滤波器的数据分布特点选择不同的量化粒度。

要求:

  • 提供浮点网络
  • 样本数据

快速生成量化模型并完成部署。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

远端校准

校准器一般运行在本地MLU,(也就是校准需要运行MLU?),可以远程调用MLU。
在这里插入图片描述

校准器会按照给定的设置进行数据动态范围的调整和设置。

量化统计方法

两种方法:线性统计和最小二乘统计(最小二乘仅支持int8)。

量化粒度设置

两种量化设置 per_tensor :按照张量量化,per_axis:按照通道量化。

配置选项:weight_quant_granularity 和 custom_nodes

1weight_quant_granularity 配置除DepthWise卷积外的全局量化粒度

在这里插入图片描述

2custom_nodes 配置DepthWise卷积量化粒度

3custom_nodes 支持“按照节点类型”配置某些类的粒度

4ITensor::SetDynamicRange ITensor::SetDynamicRangPerAxis 配置某算子是否分通道

量化对称性

从量化统计到量化参数计算,支持对称量化和非对称量化。
在这里插入图片描述

舍入模式

在这里插入图片描述

在这里插入图片描述

(正文完)

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

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

相关文章

LVS-NAT实验

实验前准备: LVS负载调度器:ens33:192.168.20.11 ens34:192.168.188.3 Web1节点服务器1:192.168.20.12 Web2节点服务器2:192.168.20.13 NFS服务器:192.168.20.14 客户端(win11…

智能优化算法应用:基于布谷鸟算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于布谷鸟算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于布谷鸟算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.布谷鸟算法4.实验参数设定5.算法结果6.参考文献7.…

Unity中Shader变体优化

文章目录 前言一、在Unity中查看变体个数,以及有哪些变体二、若使用预定义的变体太多,我们只使用其中的几个变体,我们该怎么做优化一:可以直接定义需要的那个变体优化二:使用 skip_variants 剔除不需要的变体 三、变体…

TikTok如何破解限流?真假限流如何分辨?速来自测

Tiktok是目前增长较快的社交平台,也是中外年轻一代首选的社交平台,许多出海品牌已经看到了TikTok营销的潜力,专注于通过视频、电商入驻来加入TikTok这片蓝海,加深品牌影响力,获得变现。 然而TikTok新手往往都会遇到一…

基于PHP的校园兼职系统的设计与开发

基于PHP的校园兼职系统的设计与开发 摘要:从古代至今,教育都是国家培养人才的手段,在古代教育往往都是课堂式教育,在课堂内老师教导学生学习,而随着时间的推移,越来越多的在校大学生已经不满足于只在课堂上…

【数据库】基于索引的扫描算法,不同类型索引下的选择与连接操作,不同的代价及优化

基于索引的算法 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…

乱序学机器学习——主成分分析法PCA

文章目录 概览PCA核心思想和原理PCA求解算法PCA算法代码实现降维任务代码实现PCA在数据降噪中的应用PCA在人脸识别中的应用主成分分析优缺点和适用条件优点缺点适用条件 概览 PCA核心思想和原理 PCA求解算法 特征向量表示分布的方向,特征值表示沿着个方向分布的程度…

微信异性发送“我想你了”,不要不相信

微信是一个很好的沟通工具。当你心情不佳时,总会想找个人倾心交谈,盼望对方能给你一丝安慰,或是通过对话来释放内心的烦躁。 找到一个值得信赖的倾诉对象并不容易,因为这需要对方的信任和认可。当对方找到你倾诉时,说明…

python监测GPU使用

参考: https://stackoverflow.com/questions/67707828/how-to-get-every-seconds-gpu-usage-in-python 自己测试 import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import numpy as np import matplotlib.pyplot…

Libavutil详解:理论与实战

文章目录 前言一、Libavutil 简介二、AVLog 测试1、示例源码2、运行结果 三、AVDictionary 测试1、示例源码2、运行结果 四、ParseUtil 测试1、示例源码2、运行结果 前言 libavutil 是一个实用库,用于辅助多媒体编程,本文记录 libavutil 库学习及 demo 例…

【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner​

简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 下载与安装 下载需要自动化测试的App并安装到手机 获取AppPackage和AppActivity 方法一 有源码…

探索低代码之路——JNPF

目录 一、低代码行业现状 二、产品分析 1.可视化应用开发 2.流程管理 3.整个平台源码合作 三、架构和技术 技术栈 四、规划和展望 低代码平台(Low-code Development Platform)是一种让开发者通过拖拽和配置,而非传统的手动编写大量代…

NTT 的各类优化:Harvey、PtNTT,Intel AVX2、ARM Neon、GPGPU

参考文献: [Har14] Harvey D. Faster arithmetic for number-theoretic transforms[J]. Journal of Symbolic Computation, 2014, 60: 113-119.[Sei18] Seiler G. Faster AVX2 optimized NTT multiplication for Ring-LWE lattice cryptography[J]. Cryptology ePr…

供应链 | “利刃出鞘”——顶刊POMS论文解读:制造商借助电子商务部门入侵

论文解读者:肖善,温梓曦,张怡雯,杨子豪 编者按: 解密品牌商在线电商平台:组织结构、策略选择、三方共赢 Manufacturer encroachment with an e‐commerce division 原文作者信息 Shi, S., Wang, C., Ch…

微信发红包,有哪些测试点

1、功能 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过…

springboot开发更换Java版本要检查的所有地方

尤其是装了多个Java版本的小伙伴注意啦! 首先就是要检查自己的环境变量,把环境变量设置好,然后出来打开cmd输入java -version查看是否更换成功 把系统的Java版本更换好以后,紧接着检查一下的idea,maven的所有和Java有…

4G工业路由器智慧楼宇门禁无人值守、实时监控

门禁是我们日常生活中常见的基础设施,就像是现代社会智慧城市中的“门神”,在楼宇管理领域中普遍采用的安防卫士。4G工业路由器的物联网应用则为楼宇门禁管理带来了更加便捷和高效的解决方案。 在传统的楼宇门禁系统中,人员需要手动刷卡、输…

JavaScript包装类型

前端面试大全JavaScript包装类型 🌟经典真题 🌟包装类型 🌟真题解答 🌟总结 🌟经典真题 是否了解 JavaScript 中的包装类型? 🌟包装类型 在 ES 中,数据的分类分为基本数据类型…

YOLOv5改进之ShuffleNetV2

目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理

3DMAX二维图片对象摆放插件安装使用方法

3DMAX二维图片对象摆放插件使用教程 3DMAX二维图片对象摆放插件自动对齐相机,可以有效地自动将简单的2D PNG图像添加到3dMax场景中。使用3DMAX二维图片对象摆放插件,你可以使用一次渲染来渲染具有正确阴影的快速预览和最终图像,而无需稍后合成…