标签: flops

每个循环的FLOPS用于沙桥和haswell SSE2/AVX/AVX2

我对使用Sandy-Bridge和Haswell可以完成每个核心每个循环的触发器感到困惑.据我所知,对于SSE,每个核心每个周期应该为4个触发器,对于AVX/AVX2,每个核心每个周期应该有8个触发器.

这似乎在这里得到验证, 如何实现每个周期4个FLOP的理论最大值? ,这里, Sandy-Bridge CPU规范.

然而,下面的链接似乎表明,Sandy-bridge每个核心每个周期可以执行16个触发器,每个核心每个循环使用Haswell 32个触发器 http://www.extremetech.com/computing/136219-intels-haswell-is-an-前所未有-threat-to-nvidia-amd.

谁可以给我解释一下这个?

编辑:我现在明白为什么我感到困惑.我认为术语FLOP仅指单浮点(SP).我现在看到如何在每个循环中实现理论最大值4 FLOP的测试实际上是双浮点(DP),因此它们为SSE实现4个DP FLOP /周期,为AVX实现8个DP FLOP /周期.在SP上重做这些测试会很有趣.

cpu intel cpu-architecture avx flops

49
推荐指数
2
解决办法
6万
查看次数

什么是FLOP/s并且它是一个很好的性能衡量标准?

我被要求测量一个解决多CPU系统微分方程的fortran程序的性能.我的雇主坚持认为我测量FLOP/s(每秒浮动操作)并将结果与​​基准(LINPACK)进行比较,但我不相信它是要走的路,因为没有人可以向我解释什么是FLOP.

我做了一些关于FLOP究竟是什么的研究,我得到了一些相当矛盾的答案.我得到的最受欢迎的答案之一是'1 FLOP =加法和乘法运算'.真的吗?如果是这样,再次,在物理上,究竟是什么意思?

无论我最终使用哪种方法,它都必须是可扩展的.一些版本的代码解决了具有数百万未知数的系统,并且需要数天才能执行.

在我的案例中,还有哪些其他有效的衡量绩效的方法(我的案例摘要是'fortran代码,它在数百个CPU上反复进行了大量的算术计算)?

performance benchmarking flops

41
推荐指数
3
解决办法
3万
查看次数

什么是浮点加法与浮点加法的相对速度

十年或两年前,编写数字代码以避免使用乘法和除法并使用加法和减法是值得的.一个很好的例子是使用前向差异来评估多项式曲线,而不是直接计算多项式.

是否仍然如此,或者现代计算机架构已经发展到*,/不再比+慢很多倍, - ?

具体来说,我对在现代典型x86芯片上运行的编译C/C++代码感兴趣,这些代码具有广泛的板载浮点硬件,而不是一个小型微软试图在软件中进行FP.我意识到流水线和其他架构增强功能排除了特定的循环计数,但我仍然希望获得有用的直觉.

floating-point x86 mips numerical-computing flops

29
推荐指数
3
解决办法
2万
查看次数

什么是深度学习领域的 FLOPS?

什么是深度学习领域的 FLOPS?为什么我们不只使用 FLO 一词?

我们使用术语 FLOPS 来衡量冻结的深度学习网络的操作次数。

按照维基百科,FLOPS = 每秒浮点运算。当我们测试计算单元时,我们应该考虑时间。但是在测量深度学习网络的情况下,我如何理解这个时间概念?我们不应该只使用 FLO(浮点运算)这个术语吗?

为什么人们使用术语 FLOPS?如果有什么我不知道的,那是什么?

====附件===

我提到的冻结深度学习网络只是一种软件。这与硬件无关。在深度学习领域,人们使用术语 FLOPS 来衡量运行网络模型需要多少次操作。在这种情况下,在我看来,我们应该使用 FLO 一词。我认为人们对 FLOPS 一词感到困惑,我想知道其他人是否有同样的想法,或者我是否错了。

请看这些案例:

如何在 CNN 中计算网络的 FLOPs

https://iq.opengenus.org/floating-point-operations-per-second-flops-of-machine-learning-models/

performance flops deep-learning

17
推荐指数
3
解决办法
1万
查看次数

确定我们的ASM计划的FLOPS

我们必须实现一个ASM程序,用于以坐标方案格式(COOS)和压缩行格式(CSR)乘以稀疏矩阵.现在我们已经实现了所有这些算法,我们想知道它们与通常的矩阵乘法相比有多高效.我们已经实现了代码来测量所有这些算法的运行时间,但现在我们决定我们还想知道我们可以执行的每秒浮点运算数(FLOPS).有关如何测量/计算这个的任何建议吗?

这里有一些关于二手系统的背景信息:

processor   : 0
model name  : ARMv7 Processor rev 2 (v7l)
Features    : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part    : 0xc08
CPU revision    : 2
Run Code Online (Sandbox Code Playgroud)

我们现在的第一个想法是实现一种FPO计数器,我们在每次浮点运算(算术运算以及比较和移动运算)之后递增,但这意味着我们必须在我们的代码中插入递增运算,这也会减慢关闭应用程序...有没有人知道是否有某种硬件计数器可以计算浮点运算的数量,或者可能存在某种性能工具,可用于监控我们的程序并测量FPO的数量.任何建议或指示将不胜感激.

下面是使用计数方法评估矩阵乘法的FLO​​P.我们首先测量了我们感兴趣的每条指令的插入计数器的运行时间,之后我们计算了每秒的浮点运算次数. 矩阵乘法的每秒浮点运算

c assembly arm flops neon

10
推荐指数
1
解决办法
996
查看次数

计算Caffe CNN架构中的乘加运算(MAC)的数量

最近我一直在对一些CNN进行基准测试,包括时间,乘加操作数(MAC),参数数量和模型大小.我已经看到了一些类似的SO问题(这里这里),在后者中,他们建议使用Netscope CNN Analyzer.这个工具允许我通过输入我的Caffe网络定义来计算我需要的大部分东西.

然而,我在论文和互联网上看到的一些架构的乘加操作的数量与Netscope输出的不匹配,而其他架构匹配.我总是将FLOP或MAC与netscope中的MACC列进行比较,但是在某些时候我忘记了一个~10倍的因素(查看下表以获取更多细节).

Architecture  ----  MAC (paper/internet) ---- macc column in netscope
VGG 16                    ~15.5G                       ~157G
GoogLeNet                 ~1.55G                       ~16G
Run Code Online (Sandbox Code Playgroud)

Netscope中引用GoogLeNet macc编号VGG16 macc编号.

是否有人使用该工具可以指出我在阅读Netscope输出时我正在做的错误?

flops deep-learning caffe conv-neural-network

10
推荐指数
1
解决办法
5062
查看次数

RFID标签有处理器吗?

RFID标签是否具有能够进行简单计算的"真正"处理器?如果是这样,现在RFID处理器的处理能力是多少?

cpu rfid flops

9
推荐指数
1
解决办法
2986
查看次数

如何比较两段代码的性能

我和编程领域的几个人进行了友好的竞争,最近我们对编写高效代码非常感兴趣.我们的挑战是尝试不惜任何代价(可读性,可重用性等)优化代码(在cpu时间和复杂性方面).

问题是,现在我们需要比较我们的代码,看看哪种方法比其他方法更好,但我们不知道任何工具用于此目的.

我的问题是,是否有一些(任何!)工具将一段代码作为输入并计算运行它所需的触发器或CPU指令的数量?有没有工具可以衡量代码的最佳性?

PS目标语言是c ++,但很高兴知道这些工具是否也存在于java中.

c++ optimization flops

9
推荐指数
1
解决办法
2723
查看次数

坦克需要多少FLOP?

我想计算每层LeNet-5(纸张)需要多少翻牌.一些论文给触发器其他架构共(1,2,3)但是,这些文件没有就如何计算FLOPS的数量细节,我不知道有多少触发器的非线性激活功能是必要的.例如,计算需要多少FLOP tanh(x)

我想这将是实现,也可能是硬件特定的.但是,我主要感兴趣的是获得一个数量级.我们在谈论10个FLOP吗?100 FLOP?1000 FLOP?因此,选择您想要的任何架构/实现来获得答案.(虽然我很欣赏接近"常见"设置的答案,例如Intel i5/nvidia GPU/Tensorflow)

python flops tensorflow

8
推荐指数
2
解决办法
1385
查看次数

什么算作翻牌?

假设我有一个伪程序的C程序:

For i=0 to 10
    x++
    a=2+x*5
next
Run Code Online (Sandbox Code Playgroud)

对于30 FLOPS,这个(1 [x ++] + 1 [x*5] + 1 [2+(x + 5))]*10 [循环]的FLOP数量是多少?我无法理解翻牌是什么.

请注意[...]表示我从中获取"操作"的计数.

architecture flops

7
推荐指数
2
解决办法
4177
查看次数