算力单位
1Flops/s简写为T/s,是数据流量的计数单位,意思是“1万亿次浮点指令每秒”,它是衡量一个电脑计算能力的标准。
1TFlops=1024GFlowps,即1T=1024G。
各种FLOPS的含义:1)一个MFLOPS(megaFLOPS)等于每秒1百万(=10^6)次的浮点运算;2)一个GFLOPS(gigaFLOPS)等于每秒10亿(=10^9)次的浮点运算;3)一个TFLOPS(teraFLOPS)等于每秒1万亿(=10^12)次的浮点运算;4)一个PFLOPS(petaFLOPS)等于每秒1千亿(=10^15)次的浮点运算。
算力单位TOPS,GPU处理能力(TFLOPS/TOPS),CPU能力MIPS ,片外内存与片内内存
文章目录
TOPS
GOPS
FLOP与GOPS之间的换算
GOPS与FLOPS
常规神经网络算力
CPU处理能力
基于NXPS32V234的ADAS辅助驾驶硬件计算平台
ROM
片外RAM与片内RAM
TOPS
TOPS是TeraOperationsPerSecond的缩写,1TOPS代表处理器每秒钟可进行一万亿次(10^12)操作。
与此对应的还有GOPS(GigaOperationsPerSecond),MOPS(MillionOperationPerSecond)算力单位。1GOPS代表处理器每秒钟可进行十亿次(109)操作,1MOPS代表处理器每秒钟可进行一百万次(106)操作。TOPS同GOPS与MOPS可以换算,都代表每秒钟能处理的次数,单位不同而已。
在某些情况下,还使用TOPS/W来作为评价处理器运算能力的一个性能指标,TOPS/W用于度量在1W功耗的情况下,处理器能进行多少万亿次操作。
GOPS
OPS与FLOPS类似,只不过OPS一个是操作次数,FLOPS一个是浮点操作次数。
FLOP与GOPS之间的换算
(FLOP与GOPS之间的换算需要查相关资料,后续查找资料给出)
不确定的看法是OPS是操作数量,FLOPS为浮点操作数量,两者可近似于相等,FLOPS比OPS稍大。
GOPS与FLOPS
1.1FLOPS
FLOPS定义
是“每秒所执行的浮点运算次数”(floating-pointoperationspersecond)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。
在这里所谓的“浮点运算”,实际上包括了所有涉及小数的运算。这类运算在某类应用软件中常常出现,而它们也比整数运算更花时间。现今大部分的处理器中,都有一个专门用来处理浮点运算的“浮点运算器”(FPU)。也因此FLOPS所量测的,实际上就是FPU的执行速度。而最常用来测量FLOPS的基准程式(benchmark)之一,就是Linpack。
FLOPS换算
一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算,
一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的浮点运算,
一个TFLOPS(teraFLOPS)等于每秒一万亿(=10^12)次的浮点运算,(1太拉)
一个PFLOPS(petaFLOPS)等于每秒一千万亿(=10^15)次的浮点运算,
前标的十进制与二进制
此处存在疑问,从M到G再到T,到底是1024近似为1000,还是采用二进制的乘以1024,还是确实为十进制的1000
倾向于FLOP的前标与内存一样,是以二进制算,每进一级是1024为单位的。
但是10243是1073741824,可以近似为109。所以采用10^3来近似1024问题不大。
常规神经网络算力
2.1AlexNet
对于AlexNet处理224*224的图像,需要1.4GOPS
2.2ResNet-152
对于224*224的图像,ResNet-152需要22.6GOPS
例如对于1080p图像(像素点个数1920*1280)的8路帧率为30FPS的图像。
22.6GOPS30FPS8路*(1920*1280/224^2)=265Teraop/sec
这个数量级为30张高端显卡。
2.3EIE算力
EIE在稀疏网络上可达102GOPS/s,相当于同等级非稀疏网络的1TGOPS/s
2.4一些层的算力
CPU处理能力
今天在看《ARM权威指南-Cortex-M0》时,遇到一个单位名词——DMIPS,查找过程中发现几个相关单位名词,在此做下记录。
MIPS(MillionInstructionsPerSecond):字面理解为百万条指令/秒,即每秒执行百万级指令数。这是衡量CPU速度的一个指标。像是一个Intel80386电脑可以每秒处理3百万到5百万机器语言指令,既我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。
DMIPS(DhrystoneMillionInstructionsexecutedPerSecond):Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。Dhrystone是一种整数运算测试程序。
MFLOPS(MillionFloating-pointOperationsperSecond),主要用于测浮点计算能力。
ARM中的MIPS和MHz联系
以下摘自博客https://blog.csdn.net/bigmarco/article/details/6652659
现如今CPU的频率越来越高,又是流水线又是超标量计算又是双核多核的,单纯以时钟频率来衡量计算机的速度已经不再科学,用MIPS来衡量相对比较合理。以ARM7为内核的S3C44B0X的推荐最高工作频率为66MHz,按照ARM公司提供的技术资料,ARM7类CPU的运算速度可按如下公式计算:MIPS=0.9×MHz,由此可得出,S3C44B0X的最大运算速度大约为0.9×66MHz=59.4MIPS。6M的51单片机通常是12或24个时钟周期才能完成1条指令,乘法和除法指令更需要48个时钟周期。这样,我初步估算6M的51单片机的运算速度应该在0.2~0.5MIPS之间。可见8位机与32位机的运算速度还是有巨大的差异的。
再以AVR为例,它的数据吞吐率可达1MIPS/MHz,即1MHz的震荡频率可达1MIPS。
综上,用MIPS衡量计算机速度很合理,对于不同的cpu,它的最高工作频率不同,数据吞吐率也不同,所以不可一概而论。
基于NXPS32V234的ADAS辅助驾驶硬件计算平台
https://blog.csdn.net/weixin_42229404/article/details/81190577
ROM
1】rom或者flash,叫程bai序存储du区,你写的程序是存在这里面zhi的,上电后从这里面执行。
程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64k,所以很少有外扩
片外flash或者片外的rom了,flash或者rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;
2】ram有------内部ram的低128位(00-7f),对应c语言就是data,比如我定义一个变量,
data
片外RAM与片内RAM
STC89C52共有512字节的RAM,是用来保存数据的,比如我们定义的变量都是直接存在RAM里边的。但是单片机的这512字节的RAM在地位上并不都是平等的,而是分块的,块与块之间在物理结构和用法上都是有区别的,因此我们在使用的时候,也要注意一些问题。
51单片机的RAM分为两个部分,一块是片内RAM,一块是片外RAM。标准51的片内RAM地址从0x00H~0x7F共128个字节,而现在我们用的51系列的单片机都是带扩展片内RAM的,即RAM是从0x00~0xFF共256个字节。片外RAM最大可以扩展到0x0000~0xFFFF共64K字节。这里有一点大家要明白,片内RAM和片外RAM的地址不是连起来的,片内是从0x00开始,片外也是从0x0000开始的。还有一点,片内和片外这两个名词来自于早期的51单片机,分别指在芯片内部和芯片外部,但现在几乎所有的51单片机芯片内部都是集成了片外RAM的,而真正的芯片外扩展则很少用到了,虽然它还叫片外RAM,但实际上它现在也是在单片机芯片内部的,我们的STC89C52就是这样。以下是几个KeilC51语言中的关键字,代表了RAM不同区域的划分,大家先记一下。
在这里插入图片描述
51单片机的片内RAM和片外RAM的区别
data:片内RAM从0x00~0x7F
idata:片内RAM从0x00~0xFF
pdata:片外RAM从0x00~0xFF
xdata:片外RAM从0x0000~0xFFFF
大家可以看出来,data是idata的一部分,pdata是xdata的一部分。为什么还这样去区分呢?因为RAM分块的访问方式主要和汇编指令有关,因此这块内容大家了解一下即可,只需要记住如何访问速度更快就行了。
我们定义一个变量a,可以这样:unsignedchardataa=0,而我们前边定义变量时都没有加data这个关键字,是因为在Keil默认设置下,data是可以省略的,即什么都不加的时候变量就是定义到data区域中的。data区域RAM的访问在汇编语言中用的是直接寻址,执行速度是最快的。如果你定义成idata,不仅仅可以访问data区域,还可以访问0x80H~0xFF的范围,但加了idata关键字后,访问的时候51单片机用的是通用寄存器间接寻址,速度较data会慢一些,而且我们平时大多数情况下不太希望访问到0x80H~0xFF,因为这块通常用于中断与函数调用的堆栈,所以在绝大多数情况下,我们使用内部RAM的时候,只用data就可以了。
对于外部RAM来说,使用pdata定义的变量存到了外部RAM的0x00~0xFF的地址范围内,这块地址的访问和idata类似,都是用通用寄存器间接寻址,而如果你定义成xdata,可以访问的范围更广泛,从0到64K的地址都可以访问到,但是它需要使用2个字节寄存器DPTRH和DPTRL来进行间接寻址,速度是最慢的。
我们的STC89C52共有512字节的RAM,分为256字节的片内RAM和256字节的片外RAM。一般情况下,我们是使用data区域,data不够用了,我们就用xdata,如果希望程序执行效率尽量高一点,就使用pdata关键字来定义。其它型号有更大的RAM的51系列单片机,如果要使用更大的RAM,就必须得用xdata来访问了。
————/END/————
注:如有遗漏或错误之处请指正,联系方式如下:
投稿邮箱:ittbank@ittbank.com
ITTBANK客服热线:25839333
声明:转载请注明来源!