首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

嵌入式开发既要代码小,又要速度快!程序该如何优化?

4、定义常数 在程序化设计过程中,对于经常使用的一些常数,如果将它直接写到程序中去,一旦常数的数值发生变化,就必须逐个找出程序中所有的常数,并逐一进行修改,这样必然会降低程序的可维护性。...(2) 平方运算 a = pow(a, 2.0); 可以改为: a = a * a; 说明:在有内置硬件乘法器的单片机中(如51 系列),乘法运算比求平方运算快得多,因为浮点数的求平方是通过调用子程序来实现的...,在自带硬件乘法器的AVR 单片机中,如ATMega163 中,乘法运算只需2 个时钟周期就可以完成。...在ICCAVR 中,如果乘以2n,都可以生成左移的代码,而乘以其它的整数或除以任何数,均调用乘除法子程序。用移位的方法得到代码比调用乘除法子程序生成的代码效率高。...实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如: a = a * 9; 可以改为: a = (a << 3) + a; 5、循环 (1) 循环语 对于一些不需要循环变量参加运算的任务可以把它们放到循环外面

1.7K30

一文揭开AI芯片的神秘面纱

目前通用的CPU、GPU都能执行AI算法,只是效率不同的问题。但狭义上讲一般将AI芯片定义为“专门针对AI算法做了特殊加速设计的芯片”。 2、AI芯片的主要用处?...如手机里的指纹解锁、面部识别应用等。 3、AI芯片是不是比CPU要难以设计? 恰恰相反,AI芯片很容易实现,因为AI芯片要完成的任务,绝大多是是矩阵或向量的乘法、加法,然后配合一些除法、指数等算法。...CPU与GPU并不是AI专用芯片,为了实现其他功能,内部有大量其他逻辑,这些逻辑对于目前的AI算法来说是完全用不上的,自然造成CPU与GPU并不能达到最优的性价比。...手机的话,也是一样焊在主板上,手机上主要用于图像处理,如AI美颜、人脸识别等任务,如果系统设计得好的话,AI芯片的存储模块可以大大减少,直接调用摄像头底层存储数据,留出来的空间可以增加更多的计算单元。...16X16=256个乘法器。这些乘法器同时计算,也就是说,一个周期可以执行256个乘法。 NFU-2是加法树。16个。每个加法树是按照8-4-2-1这样组成的结构。每个加法数有15个加法器。

44010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    软硬件融合技术内幕 终极篇 (5) —— 中华文明的瑰宝

    因此,4bit的乘法器的输入和输出应当像下图这样: 从上图的竖式看出,4bit x 4bit需要进行三次移位运算,以及三次加法运算,因此,乘法器实际上需要一个移位器,以及一个8bit的暂存器:...我们想到,在前面几期,我们介绍的加法器实际上是无状态的,并没有中间状态的存储。而乘法器需要中间状态的存储,也就是需要所谓的“寄存器”。这就进入了数字电路的一个新领域——时序电路。...当然,这样的乘法器在理论上是很不错的,但在真实的工程实践中,因为每次移位都需要1个时钟周期,32bit的移位就需要32个时钟周期;同时,每次累加也需要1个时钟周期,这会导致32bit的乘法运算需要100...在工程实践中,对乘法器的优化是CPU设计的深水区。如Intel的386计算16bit数的乘法需要约150个指令周期,而486只需要30个指令周期。 在计算机ALU,最为复杂的运算单元是除法器。...计算机计算除法的方式和人类差不多,以16bit除以8bit为例,需要以下步骤: 从高位开始试商并计算该轮余数; 余数左移一位,与被除数随后一位组合,循环回步骤1,重复8次循环; 因此,计算除法需要1

    29830

    Si Stebbins Stack中的数学与魔术(十一)——《Woody on Stebbins》作品赏析

    如果能够找到公差恰好为1,模也够大在一定范围内管用的性质,那就再好不过了。因此,这里根据等差数列的性质我们发现,两个的公差是6,3个是9,4个是12。...实际上,这就是个取22 + n(mod 13)的C13群的完全代表系罢了。 好了,索引的+1和数值特征的-1加合到一起,必然就可以构成常量了。...这里我们取从Ace开头的Si Stebbins序列,那么从下一张4开始的连续序列以及包括其在内的13张牌,其连续4张点数和再往后数那么多张以后,会达到常数张数为5 + 34 + n - n = 39,换句话说...感性上理解,因为这种发牌的本质是把同余或者等周期位置的牌放置在了同一叠,那自然再发的时候,每叠几张就要再把它从相邻位置重新发回各个牌叠代表的周期等效位置上去。...关于多叠发牌,其实有两种基本模型,一种是上面的依次发牌,对应的是小学数学里讲的等分除法计算过程,还有个是每次都发在一叠上,给定张,这个是包含除法的意义,以后可以更多地来探讨里面的一些数学教育意义和魔术价值

    49130

    数字硬件建模SystemVerilog-组合逻辑建模(3)使用函数表示组合逻辑

    为了表示组合逻辑行为,每次调用函数时都必须计算一个新的函数返回值。如果调用了静态函数,但没有指定返回值,则静态函数将隐式返回其上一次调用的值。这是锁存逻辑的行为,而不是组合逻辑。...:作为组合逻辑的函数 最佳实践指南7-8 在可能的情况下,使用SystemVerilog运算符,如*,而不是使用循环和其他编程语句。...算法乘法器的示例7-2还说明了为什么在乘法和除法等复杂运算中最好使用SystemVerilog运算符。...RTL模型不是在具有大量内存资源的通用计算机上运行的软件程序。RTL模型是门级实现的抽象。所表示的功能需要在物理上适合目标ASIC或FPGA,并且在时间上在有限的数量或时钟周期内。...之前的文章有详细介绍了在RTL模型中使用算术运算符(如乘法和除法)的指导原则。

    64060

    嵌入式 NPU 发展概况

    当用现有的基于冯·诺伊曼结构的经典计算机(如 X86、ARM 通用处理器和英伟达 GPU )运行神经网络应用时,就不可避免地受到存储和处理分离式结构的制约,数据吞吐量限制算力。...GPU(Graphics Processing Unit)是一种图形处理器,它可以弥补 CPU 在计算能力上的天然缺陷。...NPU 也有不足,如特定的指令集可能只满足部分机器学习的需要,而不支持的指令或多个神经网络的组合计算仍然需要回落 (Fallback) 至通用处理器计算。...总的来说NFU将资源分为了16份,每一份包括NFU-1的16个乘法器,NFU-2的1个加法树(15个加法器)和NFU-3的一个激活函数运算器,运算时一份资源中乘法器同时运行共输出16个结果,送加法树,加法树运算后得出一个结果送激活函数...ALU包含各一个加法器、乘法器、除法器和一个转换器(converter),用于机器学习中一些特殊的MLU解决不了的计算。

    5.2K10

    浅谈Python内置对象类型——数字篇(附py2和py3的区别之一)

    Python内置对象可以分为简单类型和容器类型,简单类型主要是数值型数据,而容器类型是可以包含其他对象类型的集体,如序列、元组、映射等。         ...所有的对象都有数据属性和内置的方法。对象的方法就是我们经常说的函数,用于执行操作,作用于对象上。对象的属性和方法都可以通过点操作符(.)来调用。         ...前天小编写了一篇文章,关于如何在交互式环境中执行Python程序,下图是部分实例,先感受一下数字类型对象。...其实Python中也支持科学计数法,常常用科学计数法来表示浮点数,如1.2e-3或1.2E-3表示1.2*10的-3次方。...除了默认的十进制数之外,还可以使用二进制、八进制、十六进制来表示常数,不过要在这些数字前边添加前缀以便和十进制数进行区分,二进制、八进制、十六进制的前缀分别是0b、0、0x。

    1K30

    浅谈Python内置对象类型——数字篇(附py2和py3的区别之一)

    Python内置对象可以分为简单类型和容器类型,简单类型主要是数值型数据,而容器类型是可以包含其他对象类型的集体,如序列、元组、映射等。...所有的对象都有数据属性和内置的方法。对象的方法就是我们经常说的函数,用于执行操作,作用于对象上。对象的属性和方法都可以通过点操作符(.)来调用。...前天小编写了一篇文章,关于如何在交互式环境中执行Python程序,下图是部分实例,先感受一下数字类型对象。 ?...其实Python中也支持科学计数法,常常用科学计数法来表示浮点数,如1.2e-3或1.2E-3表示1.2*10的-3次方。...复数也支持常数中的四则运算等,复数之间运行的结果仍为复数,如下图所示: ?

    1.2K20

    数值问题

    为方便比较,将阶加上一个偏置常数使其变成正数,因为加的都是同一个偏置常数,阶的差值也是不会改变的。...如c语言中可解释为有符号数和无符号数,而 $java$ 中只解释为有符号数。 数值比较时,得确定类型才能比较。通常默认为有符号数相比,若出现无符号数,则按照无符号数相比。...计算机里整数浮点数的加减乘除运算的实际过程都很复杂,内容很多,建议直接看唐朔风的计算机组成原理第六章,数字逻辑相关书籍中加法器,乘法器等的电路实现。深入理解计算机系统对各种数值算法的理论推导。...常量乘除 乘除法运算所花的时间远远多于移位加减运算的时间,因此,编译器处理变量与常量乘除时会以移位,加法,减法的组合运算来代替乘除法。...然后再看看数字逻辑的相关书籍了解了解加法器乘法器等的电路实现来加深理解 好了本节就这样吧,有什么问题还请批评指正,也欢迎大家来同我讨论交流学习进步。

    20000

    计算机组成原理:第二章 运算法和运算器

    结论: 一个负数加上“模”就是它的补数(如-3+12=9,表示-3在模为12下的补数是9)。 一个正数和一个负数互为补数时,他们绝对值之和即为模数(相当于结论1的逆运算)。 正数的补数就是其本身。...如:x = -1010,取反得0101,+1得0110,加上符号位得补码:1,0110。...例题: 1.设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积x·y 由于是原码列阵乘法器,首先求出x和y的原码:[ x ]_ 原 = 01111,[ y ]_ 原 = 11101, 去掉符号位...2.设x=-15,y=-13,用带求补器的补码阵列乘法器求出乘积x·y。...逻辑非运算 逻辑非也称求反, 对某数进行逻辑非就是按位求反,常用变量上加一横来表示。

    3.7K40

    编码通信与魔术初步(五)——编码通信魔术入门《3 * 7的感应》

    在前面的内容里,我着重介绍了通信模型,信息论,以及把这些理论用在魔术上的基本思路。最后尤其说清楚了编码通信魔术的应用边界,是以辨识力效果作为主要表现形式的这类魔术的主要数学原理。...,因为本质上魔术师只是秘密地得知了一些信息而已,天然表现为辨识力的魔术效果。...而转化为其他不同的形式的效果则比较少,但也不是没有,比如也可以把这个信息变成一种巧合(如《对称与魔术初步(二)——经典魔术《命中注定的缘分》》等在对称与群论系列里的魔术很多都是这样,不过通信部分比较简单...比如我读小学和给小学生讲解这个魔术的时候,哪知道啥是信息论啊,但还是可以看到每一次回答,都使得牌的范围缩小一点,最后缩小到只剩下一张,用到的数学描述工具也仅仅停留在带余除法。...首先,你从21张还是27张中间找到了观众选的牌,感受上区别并不大,虽然熵的不确定度上真的区别不小,除非小到3张,人们才会有比较大的区别,觉得还是二十几张的这个可能更厉害;其次,我们希望尽量抹去魔术中所有可能的数学含义

    32310

    使用Python在自定义数据集上训练YOLO进行目标检测

    此外,我们还将看到如何在自定义数据集上训练它,以便你可以将其适应你的数据。 Darknet 我们认为没有比你可以在他们的网站链接中找到的定义更好地描述Darknet了。...Darknet是一个用C和CUDA编写的开源神经网络框架。它快速、易于安装,并支持CPU和GPU计算。你可以在GitHub上找到源代码,或者你可以在这里了解更多关于Darknet能做什么的信息。...所以我们要做的就是学习如何使用这个开源项目。 你可以在GitHub上找到darknet的代码。看一看,因为我们将使用它来在自定义数据集上训练YOLO。...克隆Darknet 我们将在本文中向你展示的代码是在Colab上运行的,因为我没有GPU…当然,你也可以在你的笔记本上重复这个代码。偶尔会更改路径。...我们在上一个单元格中设置的配置允许我们在GPU上启动YOLO,而不是在CPU上。现在我们将使用make命令来启动makefile。

    46210

    仅需15成本:TPU是如何超越GPU,成为深度学习首选处理器的

    Cloud TPU 将 TPU 作为可扩展的云计算资源,并为所有在 Google Cloud 上运行尖端 ML 模型的开发者与数据科学家提供计算资源。...这种 GPU 架构在有大量并行化的应用中工作得很好,例如在神经网络中的矩阵乘法。实际上,相比 CPU,GPU 在深度学习的典型训练工作负载中能实现高几个数量级的吞吐量。...因为 GPU 在其 ALU 上执行更多的并行计算,它也会成比例地耗费更多的能量来访问内存,同时也因为复杂的线路而增加 GPU 的物理空间占用。...首先,TPU 从内存加载参数到乘法器和加法器的矩阵中。 ? 然后,TPU 从内存加载数据。当每个乘法被执行后,其结果将被传递到下一个乘法器,同时执行加法。因此结果将是所有数据和参数乘积的和。...Cloud TPU v2 的价格,截至 2018 年 8 月。 斯坦福大学发布了深度学习和推理的基准套装 DAWNBench。你可以在上面找到不同的任务、模型、计算平台以及各自的基准结果的组合。

    63500

    港科大等提出基于FPGA实现的同态加密算法硬件加速方案

    基于二进制进行运算的芯片,包括 CPU,都可以轻松实现高效的加法、乘法、位移等运算;然而取模、除法等运算则一直是硬件电路难以啃下的硬骨头,计算效率十分低下,显然 Paillier 加密运算中存在不可避免的取模和幂运算...整除(被 2 的整数次幂除本质上就是向右移位),从而可以无误差地通过移位操作完成除法,同时保证,完成了移位之后得到的最终结果 ?...因此,如何在硬件上优化蒙哥马利模乘运算成为了主要工作。我们从资源分配和时序分析两个方面对优化工作进行介绍。...由图一所示,蒙哥马利模乘算法由内外两重循环构成,我们将单次内部循环操作封装为如图三所示的处理单元,每个处理单元中包含两个乘法器,分别用于计算 x*y 和 q*m,两个乘法结果与外层循环的上一轮计算结果...将乘法器声明为流水(Pipelined)乘法器:流水乘法器可以将大位宽的乘法拆分到多个时钟周期执行,从而缓解紧张的时序。

    1.5K61

    关于振动的分析

    但是,热转换单元R1和 S1、R2和S2具有一定,且固定的时间常数,所以对于过低频率的信号,需要较长时间才能稳定,并且温度波动会较大,所以了这种真有效值计算方案的低频性能不好。...平方可以使用乘法器完成,平均可以使用低通滤波器完成,开方可以使用运放和乘法器完成。 显式计算法框图如图2所示,因为是连续的模拟测量,所以选择性能优秀的乘法器和运放可以实现相对不错的精度和带宽。...它的缺点是带宽一般比热真有效值计算或显式计算法要窄。隐式计算方案可以使用直接乘法和除法,或者使用一种对数-反对数电路技术。...理论上加速度在时域上进行两次积分可以得到位移 , 但实际的结果却不一定如想象中的那么理想。我曾经将测得的加速度经过两次积分后想获得速度 , 但积分的结果却与现实有很大的偏差 ( 如图 1 。...频域积分据说相对稳定一些 , 不过存在相位误差的问题。但是本人没有试验成功 , 也没有找到理论根据 , 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    2.2K30

    Trio-ViT | 专门针对高效 ViTs 的卷积 Transformer混合架构的加速器!

    具体来说,作者首先采用领先一位检测器(LOD)来找到 X_{Q} 第一个非零位的索引 i ,然后加上 i 与 (i-1) 位的值来获得结果。..._MAT引擎_由 S 个PE通道组成,每个通道包括 T 个乘法器,旨在高效处理EfficientViT中的多个基于乘法的操作,不包括DWConvs,如第V-A1节的设计选择#1中解释的那样。...此外,_log2量化模块_用于根据第IV-D节第一段末尾步骤对等式(4)中的除数进行量化,从而提高量化精度并使昂贵的除法转换为硬件高效的位运算移位,如第IV-D节所述。...Evaluation of Trio-ViT's Dedicated Accelerator 与GPU/CPU上的SOTA Baseline 的比较。...如图10所示(其中y轴以对数刻度绘制以便更好地说明),与GPU/CPU上的SOTA Baseline 相比,作者可以获得更好的硬件效率,证明了作者的有效性。

    36510

    研学社·系统组 | 实时深度学习的推理加速和持续训练

    训练需要很高的吞吐量,因此也通常在 GPU 上完成,因为 DNN 模型的训练通常会涉及大量的并行计算和简单的控制流与功耗效率。...2.6GHz)和 GPU 服务器(same CPU with 1XP100 PCIe)上的性能。...传统上,FPGA 的峰值浮点运算性能不如 GPU,因此 FPGA 侧重于发展有关 DNN 推理的技术。...一块 TPU 包含 60000 Int8 乘法器,几乎是在普通 GPU FP32 乘法器的 25 倍。...可配置的、可编程的三个硬件单元:矩阵乘法器单元、标准缓存和激活单元驱动了这些特殊设计的指令高效执行。矩阵乘法器单元是一个大规模并行矩阵处理器,它能在单个时钟周期内进行成百上千次矩阵运算(乘法和加法)。

    78290

    matlab与FPGA数字滤波器设计(6)—— Vivado 中使用 Verilog 实现并行 FIR 滤波器截位操作

    并行结构即并行实现 FIR 滤波器的乘累加操作,数据的处理速度较快,使用多个乘法器同时计算乘法操作,数据输入速率可以达到系统处理时钟的速率,且与阶数无关(相比较串行,用了更多的资源,但提高了处理速度,典型的...量化后导出参数,可以直接用 .coe 文件导出备用,导出后 matlab 也会自动打开系数文件,用 Verilog 语言的常数定义参数 h0 ~ h7(注意指定为有符号数); ?...(3) 综合的 RTL 图 综合后共用到 6 个乘法器和 7 个加法器, Verilog 共计有 8 次乘法,但是其中有 2 个乘法的乘数是常数 0,所以 Vivado 只综合出 6 个乘法器;...[15:0]) ,当数据比较小的时候可以(高位上没有有效数据,用十进制举例 2 * 2 = 4,取十进制低位为 4); (3)根据仿真出来的数据的表示范围,去掉高位的符号位,截取实际需要的数据; ?...仿真例化的器件,找到下方的 data_out_temp 信号并右键 Add to Wave Window(箭头1),点击 Restart(箭头2)之后再仿真 Run(箭头3),调成模拟波形 Analog

    4.8K11

    Facebook新研究优化硬件浮点运算,强化AI模型运行速率

    该方法的实现与目前硬件中的浮点运算及其变体(如非规格化的清零行为或字大小/字段位宽度变化,如 bfloat16 或 minifloat)有很大的区别。...浮点的字大小越大,消耗的算力就越多。 通用的定点数机制:尾数是定点数,定点数的加法器、乘法器和除法器是算术运算所必需的。浮点类型的精度(尾数长度)越高,这些组件就越大。...硬件乘法器和除法器通常比硬件加法器更消耗资源(芯片面积、功耗和延迟)。 通用的浮点数机制:该机制处理基数点的「浮点」,因此是浮点表示法的一部分。...定点数机制 我们可以设法避免在尾数上进行的乘法和除法运算。尾数可以被看作是小数部分的映射 f(x),它将取值范围在 [0, 1) 间的定点数 x 映射到 [1, 2) 中。...ELMA 设计也可以被用于非线性代数任务(如多项式计算)。

    1.1K30
    领券