定点化的基本原理

定点化与模型量化(一) 事实上,模型量化一开始就是为了压缩模型参数,韩松ICLR2016使用K-Means聚类,以类中心代替属于该类的所有样本,低bit只需要对类中心表示,从而可以使得保留更多的空间来表示更多的其他数据。既然本质上是定点化,那么模型量化的好处和定点类似,都是损失精度的代价下,有更快的速度,更小的内存,更小的功耗。以常见32bit浮点型到8bit为例,模型大小直接变成了原来的1/4,更重要的是因为使用了整型,可以使用SIMD指令集,而SIMD在移动端的优化已经非常充分了,速度可以加快2~4倍。 阅读详情

CPU有三种可能的浮点数处理方式

  • Use float instructions if your CPU has a FPU. (fast)
  • Have your compiler translate floating point arithmetic to integer arithmetic. (slow)
  • Use float instructions and a CPU with no FPU. Your CPU will generate a exception (Reserved Instruction, Unimplemented Instruction or similar), and if your OS kernel includes a floating point emulator it will emulate those instructions (slowest).

那么如果没有FPU,最好将算法转移成定点来处理来提高速度,比如:

  • 用整数来模拟浮点数

其实就是线性的映射,根据数据的动态范围把浮点映射到int8, int16或int32,
比如浮点数A,a=max(abs(A)),若要把A映射成-128~127的数,需要:
A_fix = A*(127 / a) ,即A=A_fix *a / 127;
如果B也是同样的浮点数,那么
A * B = A_fix* B_fix * a * b / (127 * 127) 就转化成一个定点运算。
注意A*(127 / a) 这一步会有精度损失,A_fix* B_fix * a * b / (127 * 127)这一步有可能溢出。

  • 用定点小数来模拟浮点数

所谓定点小数,就是小数点固定的小数。可以参考这篇文章 Fixed Point Arithmetic on the ARM。可以用库libfixmath
这个库把浮点变换成Q16.16的定点小数来进行计算,并且可以变换回来。

对于Q16.16的数:
static const fix16_t fix16_one = 0x00010000;
static const fix16_t fix16_maximum = 0x7FFFFFFF;
static const fix16_t fix16_minimum = 0x80000000;
最大精度是1.525e-05, cout << fix16_to_float(0x00000001) <

verilog 浮点数转定点数_校招基础——浮点数的定点化 一、概念1、浮点数:小数点位置是漂浮不定的。例如:浮点数运算 1.1 * 1.1 = 1.21,小数点位置发生了变化。IEEE 754 规定,浮点数的表示方法为:最高的 1 位是符号位 s,接着的 8 位是指数E,剩下的 23 位为有效数字 M。2、定点数:小数点的位置是确定的。例如:定点数运算 1.1 * 1.1 = 1.2,小数点的位置没有变化。定点的意思是,小数点固定在 32 位中的某个位置... 阅读详情

相关推荐

FPGA中浮点数的定点化处理技术及高斯模板定点化处理方法

定点化处理

H19981118的博客 4525

定点化的原理及逻辑实现

定点化原理以及逻辑实现

Letitin2020的博客 2711

dsp开发的定点化原理

讲述嵌入式开发的必备基础,定点化。尤其是音视频的DSP开发,定点化是其中的必要步骤,所以很重要

【数字IC设计】数据处理——定点化

定点化(Fixed-Point Quantization)是数字信号处理(DSP)和数字IC设计中的关键步骤,尤其在通信系统、图像处理、嵌入式系统等领域广泛应用。其核心是将浮点数算法转换为适合硬件实现的定点数格式,以降低资源消耗(如面积、功耗)并提高运算速度。

m0_51179832的博客 3338

SAP PPDS启发式排产实战:从零配置到自定义规则开发(附ABAP代码示例)

本文详细介绍了SAP PPDS启发式排产的实战应用,从基础配置到自定义规则开发的全流程。通过ABAP代码示例,展示了如何实现多目标优化、实时响应和约束可视化,帮助企业提升订单交付率、减少设备闲置时间。文章还包含开发环境准备、标准模板解析、自定义开发步骤及性能优化技巧,适合制造业数字化转型的实践参考。

seed的博客 184

【WSL】window11 安装WSL2配置conda环境及mlatom环境搭建

写这篇文章之前自己安装过两次环境,可能每次都会产生碰到同样的问题,为了搭建适合自己的虚拟环境保证每一步的正确性,按顺序记录一下。

wangxiancao的博客 1629

FPGA数字信号处理中的浮点数定点化实践

本文详细探讨了FPGA数字信号处理中的浮点数定点化实践,包括基本概念、转换步骤、位宽设计策略及误差控制方法。通过Verilog实现技巧和FIR滤波器等实际案例,展示了如何将浮点数高效转换为定点数以优化FPGA资源使用和功耗,同时确保精度满足应用需求。

g5h6i的博客 992

FPGA实战:MIG IP核AXI接口DDR3读写优化指南

本文详细解析了FPGA中MIG IP核AXI接口的DDR3读写优化策略,涵盖关键参数配置、突发传输技巧及时序收敛方案。通过AXI接口优化和突发长度选择,可实现高达12.8GB/s的理论带宽,提升DDR3访问效率。文章还提供了Vivado配置实例和调试技巧,助力开发者解决FPGA内存控制中的实际问题。

weixin_29168393的博客 546

Simulink定点化学习

以FFT4为例,尝试实现手动定点化、半自动定点化和全自动定点化目标。

weixin_44559361的博客 1880

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1249

小红书图文笔记图像批量爬取:Python爬虫实战与反反爬策略全解析

在当今社交媒体盛行的时代,小红书作为中国领先的生活方式分享平台,积累了海量的优质图文内容。对于数据分析师、市场研究人员或内容创作者来说,能够高效获取这些数据具有重要意义。本文将详细介绍如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取工具,涵盖最新技术栈和反反爬策略。本文详细介绍了如何使用Python构建一个高效、稳定的小红书图文笔记图像批量爬取系统。通过结合Playwright、aiohttp等现代工具,实现了从列表页采集到图片下载的完整流程。

2201_76125261的博客 2364

基于FPGA的数字信号处理,一文看懂什么是定点数、浮点数、浮点的定点化、定点的浮点化。

前段时间面试过程中提到了FIR滤波器这个IP核,面试官问FIR滤波器的数据输入输出类型,这里涉及到了我的知识盲区,补一下。在实际的工程应用中,往往会进行大量的数学运算。运算时除了会用到整数,很多时候也会用到小数。而我们知道在数字电路底层,只有高电平1和低电平0的存在,那么仅凭 0和1 该如何表示小数呢?数字电路中,小数可以用两种形式来表示:定点数和浮点数。

weixin_44852755的博客 4234

Cadence OrCAD Capture CIS元器件管理时ERROR(ORCIS-6454): Temporary part number tracking is turned on报错的解决方法

使用Part manager对工程的元器件进行批量管理时,出现如下图所示的ERROR(ORCIS-6454): Temporary part number tracking is turned on报错其解决方法如下。

fydar的博客 3504

Simulink 自动代码生成电机控制:自动定点化Fixed-Point Tool 使用

Simulink自动代码生成操作演示

weixin_42665184的博客 1万+

字符串尾部空格的迷思:深入解析 ABAP 隐式转换规则与 `strlen` 意外结果

看似简单的strlen之谜,背后实则是 ABAP 隐式转换的一整套严谨规则。只要开发者在赋值、输出、接口映射等关键节点建立“尾部空格意识”,辅以CONVCONDENSE等显式手段,就能有效杜绝多余空格引发的链式故障。希望本文的拆解与案例,能让你在面对下一个“异常长度”时,从容而笃定地给出正确答案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 431

Node-RED系列(二九):使用slider与chart节点来实现双折线时间序列图

今天教使用dashboard的chart组件和slider组件来是实现一个双线的折线图。效果如下 拖动顶部的电量和水量,低下的图表会实时显示时间和值之所以做这个模拟案例,是将教 大家使用chart节点和slider节点先说一下slider节点,该节点是一个滑块节点,可以接受上一节点的 msg.payload,作为滑块的值, slider必须设置最大值和最小值。且不能动态设置。 此外当用户拖动slider滑块,改变值时,该节点会向下传递当前值 以属性payload装载。在说一下chart节点,该节点可以用于

知无涯 4968

Matlab定点化

当要对于算法的硬件实现,使用Matlab进行定点化仿真非常重要,网上Matlab定点化仿真的资料比较少,下面是我总结的资料。Matlab定点化三种方法:1.使用round、floor等函数在每次运算后直接进行截断各种截断方法:ceil() 向上取整fix() 向0取整floor() 舍弃小数部分(向下取整)round() 四舍五入取整直接截断取整可能会出现高频噪声,最好使用四舍五入取整。2.使用n...

truecrab的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

十进制小数定点化

1、题目 在FPGA中做小数乘法时,一般需要对定点小数量化处理。 量化过程中首先需要确定量化的位宽,位宽越大量化的精度越高。 如题所述,对12.918做无损定点化,首先需要确定对整数部分的量化位数。整数为12,无损量化必须采用4bit; 小数部分为0.918,假如采用12bit位宽,整数部分4bit,那么小数部分只有8bit。8bit所能表达的最大的整数为255(注意,定点小数在FPGA运算过程中是没有小数点的,比如12.918,实际存储的是12.918的二进制形式,所以8bit表示小数部分最大为

CLL_caicai的博客 2575

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

FPGA部署的算法定点化原理与基础

当前在无线通信信号处理中,基本都是基于Python或者Matlab做浮点算法仿真设计,然后部署在硬件DSP或者FPGA中。算法部署在浮点DSP中,基本可以平移,但由于算法速率与成本,灵活性等原因,部分算法也会部署在FPGA中进行实现。常见的数字信号处理,图像处理等需要并行计算的场景,往往需要FPGA参与运算。那么浮点算法部署到FPGA上往往需要一个算法定点化的步骤,该步骤决定了算法性能,FPGA资源消耗,甚至决定了算法部署的成功与失败。本文主要讲述了定点化基础以及算法定点化基本流程。

FPGA/数字IC/通信算法 2192

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

浮点数定点化

​ 电路逻辑中数据通常采用二进制表示,1表示高电平,0表示低电平。​ 那么-7又是如何表示的?​ 但是我们注意到,在十进制算术中,7和-7相加自然为0,但是上述两个16位二进制数相加显然结果不为0,所以这种仅有的表示方法不合理。所以引入原码、反码和补码的概念。

weixin_52570661的博客 1475

FPGA中浮点数的定点化笔记

FPGA中浮点数的定点化笔记 关于基本相关知识参考该博客 本文只针对FPGA中相关类型题目的做法思考整理,方便查看和复习,以后有时间再深入研究。 浮点数的定点化 FPGA 1.基础概念 浮点数: 简单来说,就是小数点的位置不是固定的 定点数: 简单来说,小数点的位置是固定的,也就是整数位宽与小数的位宽是固定的 以下部分内容摘自该博文 因为在普通的fpga芯片里面,寄存器只可以表示无符号型,不可以表示小数,所以在计算比较精确的数值时,就需要做一些处理,不过在altera在Arria 10 中增加了硬核浮点DS

qq_38318540的博客 4931

FPGA中的浮点数定点化理解

学习目标: 学习内容: 学习时间: 学习产出: 学习总结 发现问题

qq_41640675的博客 3062

Matlab 定点化 (fixed point designer)-入门1

Matlab 定点化 (fixed point designer)-入门1 欢迎关注微信公众号:小鱼FPGA “ 当把算法用FPGA实现时,我们必须要考虑定点化问题。matlab的fixed point designer就是帮助我们定点化的工具” **01 定点化基...

qq_38306698的博客 1万+

定点化

谈到这个话题,有必要先介绍下“浮点数”和“定点数”这两个名词的概念。1.25 + (-2.75) = ?                                                                (1)上面这个算式我们心算就能轻松得出结果,同样的算式,交给单片机来完成,它要大致分解为下面三个计算步骤:1)加载操作数(也就是1.25和2.75);2)做加法运算;3...

为实现四个现代化奋斗 8454

Matlab 定点化 (fixed point designer)

部分内容转载:https://blog.youkuaiyun.com/qq_38306698/article/details/82054531 但是一般写出来的软件模型的运算数据类型都是浮点型运算,当要用FPGA实现,转成Verilog一般都是利用定点化运算。 什么是定点化运算呢。比如: a*b=c 当 a=0.21 b=2时。 如果是浮点运算,毫无疑问答案为 c=0.42。 但是当用定点化数据去算。如a,b...

ming0632wm的博客 2900

训练好后的神经网络如何快速定点化?

训练好后的神经网络如何快速定点化? 如何把浮点权重快速定点化后使用在嵌入式设备中 tensorflow模型的定点化 如何量化和量化意义? 网络参数是按层组织,每层数值都在同一数量级,即范围相差不大,如[-6.0,4.0],有大量论文研究表明确认值最大和最小后每层数据使用8bit定点化量化已可以很好满足推断计算。 量化最直接结果是参数存储空间要求变小,经验值是减少约3/4;减少内存读取数据量,节省带宽;使用simd进行计算加速,如果有dsp进行8bit加速计算节能,使得移动设备上进行推断计算变得更.

It is me 的博客 2046
上一篇: GDB
下一篇: 算法性能测量方法
我把葡萄酿成酒
博客等级 码龄12年 275粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值