mac上求卷积的软件_分享一个FLOPs计算神器

FLOPs(浮点运算次数)常用于衡量硬件性能和算法复杂度,但在不同计算平台上,相同FLOPs的网络执行速度可能不同。计算速度受MAC(乘加操作)和并行度等因素影响。因此,仅依赖FLOPs作为评估标准并不充分,应考虑更多实际运行条件。文章通过GPU和ARM平台上的实验展示了FLOPs与速度的不一致关系,强调直接指标如速度和延迟的重要性。
摘要由CSDN通过智能技术生成

FLOPS: 全大写,指每秒浮点运算次数,可以理解为计算的速度。是衡量硬件性能的一个指标。(硬件)

FLOPs: s小写,指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。(模型) 在论文中常用GFLOPs(1 GFLOPs = 10^9 FLOPs)

2017年,ICIR收录了NVIDIA发表的一篇论文,在这篇论文的附录里,NVIDIA详细的讲解了一下FLOPs的计算。

对于卷积层来说:

image

有人将其简化了一下:

image

可以用来计算pytorch构建的网络的参数,空间大小,MAdd,FLOPs等指标,简单好用。

比如:我想知道alexnet的网络的一些参数。

只需要:

from torchstat import stat

import torchvision.models as models

model = model.alexnet()

stat(model, (3, 224, 224))

就能得到结果啦:

image

可以看到每一层都有结果!兼职是神器呀。

再附上一个常用网络的参数:

image

以及:

image

跑的有点远,收!

image

作者认为FLOPs是一种简介的测量指标,是一个近似值,并不是我们真正关心的。我们需要的是直接的指标,比如速度和延迟。

image

图c是经典小网络在GPU上的MFLOPs与速度(Batches/sec)的关系。 图d是经典小网络在ARM上的MFLOPs与速度(Batches/sec)的关系。

我们可以发现,具有相似的FLOPs的网络,执行的速度却不一样。有的相差还挺大。

使用FLOP作为计算复杂度的唯一指标是不充分的。

为什么不能只用FLOPs作为指标呢?

作者认为有如下几个原因:

FLOPs没有考虑几个对速度有相当大影响的重要因素。 2)计算平台的不同。

FLOPs没有考虑几个对速度有相当大影响的重要因素

MAC和并行度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值