lad*_*ofa 17 performance flops deep-learning
什么是深度学习领域的 FLOPS?为什么我们不只使用 FLO 一词?
我们使用术语 FLOPS 来衡量冻结的深度学习网络的操作次数。
按照维基百科,FLOPS = 每秒浮点运算。当我们测试计算单元时,我们应该考虑时间。但是在测量深度学习网络的情况下,我如何理解这个时间概念?我们不应该只使用 FLO(浮点运算)这个术语吗?
为什么人们使用术语 FLOPS?如果有什么我不知道的,那是什么?
====附件===
我提到的冻结深度学习网络只是一种软件。这与硬件无关。在深度学习领域,人们使用术语 FLOPS 来衡量运行网络模型需要多少次操作。在这种情况下,在我看来,我们应该使用 FLO 一词。我认为人们对 FLOPS 一词感到困惑,我想知道其他人是否有同样的想法,或者我是否错了。
请看这些案例:
https://iq.opengenus.org/floating-point-operations-per-second-flops-of-machine-learning-models/
小智 26
令人困惑的是, FLOP s(浮点运算)和 FLOP S(每秒浮点运算数)都用于参考机器学习。FLOP 通常用于描述运行给定模型的单个实例所需的操作数,例如 VGG19。这是您发布的两个链接中 FLOP 的用法,但不幸的是,opengenus 链接错误地使用“每秒浮点运算”来指代 FLOP。
您将看到 FLOPS 用于描述给定硬件(如 GPU)的计算能力,这在考虑给定硬件的强大程度时很有用,或者相反,在该硬件上训练模型可能需要多长时间。
有时人们在表示 FLOP 时会写 FLOPS。从上下文中通常可以很清楚它们的意思。
小智 13
我不确定我的答案是否 100% 正确。但这就是我的理解。
FLOPS = FL浮点运算操作每小号的Econd
FLOPS = FL浮点运算关合作小号
FLOPS 是速度单位。FLOPs 是一个数量单位。
深度学习领域的FLOPS是什么?为什么我们不只使用 FLO 这个术语?
FLOPS(每秒浮点运算)在大多数领域都是相同的 - 它是硬件(如果您非常幸运)能够执行的(理论上)最大浮点运算数。
我们不使用 FLO,因为 FLO 始终是无穷大(假设硬件有无限的时间能够执行无限量的浮点运算)。
请注意,一个“浮点运算”是一次乘法、一次除法、一次加法……通常(对于现代 CPU)FLOPS 是通过重复使用“融合乘法然后加法”指令来计算的,因此一条指令算作 2浮点运算。与 SIMD 结合使用时,一条指令(并行执行 8 条“乘法和加法”)可能算作 16 条浮点指令。当然,这是一个计算出的理论值,因此您可以忽略内存访问、分支、IRQ 等内容。这就是为什么“理论 FLOP”在实践中几乎无法实现。
人们为什么使用术语 FLOPS?如果有什么是我不知道的,那是什么?
它主要用于描述硬件的强大功能以用于营销目的(例如“我们的新 CPU 能够达到 5 GFLOPS!”)。
| 归档时间: |
|
| 查看次数: |
13982 次 |
| 最近记录: |