-
Notifications
You must be signed in to change notification settings - Fork 307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is the relationship between GMACs and GFLOPs? #16
Comments
Most of modern hardware architectures uses FMA instructions for operations with tensors. |
Thank you, sir! Whether the output value is directly FLOPs? Do we need to divide it by 2 to get FLOPs? |
what does MAC stands for? Multi-Add Calculation? |
MAC = Multiply–accumulate operation |
I think GFLOPs = 2 * GMACs as general each MAC contains one multiplication and one addition. |
@sovrasov is there a typo here? I did a little reading and it seems that @snownus has it right. In general a multiply-accumulate is one multiplication and one addition, which can each be floating point operations. So 1 GMAC counts as 2 GFLOPs, meaning GMACs = .5 * GFLOPs (I'm not sure if this is what was already meant). As for fused multiply-add (FMA) it seems that (if it is supported on a given chip/system) the two FLOPs are indeed computed "in a single step" (see here) or "at once" (see here). But this confuses our conversion. Perhaps in the case of FMA it is more accurate to say 1 GMACs = 1 GFLOPs? Hopefully someone with more expertise than me can clarify! |
@sovrasov, in this case would you consider changing the variable flops-counter.pytorch/sample.py Line 36 in 1ad0ed1
|
@cassie101 makes sense, I'll change it |
I am also confused. Shouldn't we multiply it by 2 to get FLOPs? |
@code-by-jin yes, exactly, we should multiply GMACS by 2 to get FLOPS |
Thanks for your response. I checked ResNet-50 using your tool. It has around 4 GMACS, which is close to the number of FLOPS claimed in the resnet paper. Now I am confused, do I really need to multiply your output GMACS by two? |
In the original resnet paper authors mixed up macs and flops. As far as I remember, they provided a definition of flops that considers one flop as multiply & add operation. Please check up the paper, correct me if I'm wrong. |
hi, I've never seen GMACs like this before, it means 10^9 about macs? As far as I know the capital letter before the word is related to FLOPS, not FLOPs and MACs, which is easy to confuse me. Looking forward to your reply, thx |
GMACs = 2 * GFLOPs, because MACs includes addition and multiplication operation, GFLOPs only has add operation. |
It isn't always true that GMACs = 2 * GFLOPs. For example, two models with the same the GMACS, may have very difference GFLOPS. It depends how you implement model efficiently |
@cmj18 @jerryli1981 |
I want to know is there any relation between GOPS(Giga operations per second ) and GFLOPS ,like if i know GFLOPS then ,can i determine GOPS , or are they independent ?? |
GOPS is a characteristic of hardware, it can only be determined by measurements. ptflops just shows an approximation to theoretical amount of operations required for one forward pass. Time is not considered by ptflops. |
Why use the GMACs?GMACs is different with GFLOPs.
The text was updated successfully, but these errors were encountered: