Live data from Hacker News

What is a flop?

nhigham.com

21–30 of 41 posts

Re: What is a flop?

#21

Earlier quoted context omitted.

Given that the point of the FLOPS unit is to compare processors, it does make more sense to count complex instructions as more than a single floating-point operation. If one CPU could multiply a 4x4 matrix by a vector in a single instruction that can run a million times per second, and another CPU needed ~32 instructions and so can only multiply 500k matrices per second but retires 16 million instructions in that sam…

As a computer-engineer, the circuit design needed to make a fast multiplication operation (ie: Wallace Tree, and similar) are an order-of-magnitude larger than the circuit design needed for fast addition (ie: a Kogge-Stone Carry lookahead Adder). This idea that additions and multiplications can be combined like this as "equivalent operations" is kinda bullshit. But hey, if its "how its done" (and its done this way be…

It was just an example, not necessarily a realistic one. The point is that we want to compare how quickly a processor will compute our problem, not how many instructions it's going to execute. If it was a car you want to compare things like its top speed and acceleration, not something inane like engine revolutions per kilometer. You measure and compare things that are relevant to the user, not implementation details.

Re: What is a flop?

#22
post #16

Earlier quoted context omitted.

> MIPS was perhaps the integer equivalent to FLOP, still used in modern microcontrollers because the 8051 at 12MHZ would only execute 1MIPS (12 clocks per instruction) Actually the origin of this term was VAX MIPS (VAX 780 specifically) because that was a ubiquitous, pretty fast for its time minicomputer. There were faster machines, and slower mainframes still being built, but that was what the late 70s were like. Wh…

The 1981 manual for the 8051 contains numerous references to 12MHz. http://bitsavers.informatik.uni-stuttgart.de/components/inte... It was 12T clocked: even though the clock was 12MHz, it would only operate at 1MHz / 1MIPS, because it took 12-clock-ticks to even perform one addition. IIRC, there was a standard crystal (11.0592 MHz crystal?? I forget exactly) for the communications at the time. So going just above 11…

Wow, right on page 1-2! I'm surprised -- I don't remember anything running that fast back then. Thanks.

(Love those old Intel books too)

Nevertheless, FWIW, MIPS started out as Vax MIPS, and at first people often used to write "VAX MIPS".

Re: What is a flop?

#23
Can somebody explain why a square root is also considered a flop? Surely that involves more work than the other four operations the article listed. Is there some hardware algorithm for the square root that is as fast as (e.g.) division?

Re: What is a flop?

#24

Can somebody explain why a square root is also considered a flop? Surely that involves more work than the other four operations the article listed. Is there some hardware algorithm for the square root that is as fast as (e.g.) division?

On x86-64, there are instructions, see https://stackoverflow.com/a/54642811/468334

Re: What is a flop?

#25

Earlier quoted context omitted.

As a computer-engineer, the circuit design needed to make a fast multiplication operation (ie: Wallace Tree, and similar) are an order-of-magnitude larger than the circuit design needed for fast addition (ie: a Kogge-Stone Carry lookahead Adder). This idea that additions and multiplications can be combined like this as "equivalent operations" is kinda bullshit. But hey, if its "how its done" (and its done this way be…

It was just an example, not necessarily a realistic one. The point is that we want to compare how quickly a processor will compute our problem, not how many instructions it's going to execute. If it was a car you want to compare things like its top speed and acceleration, not something inane like engine revolutions per kilometer. You measure and compare things that are relevant to the user, not implementation details…

Okay, I think I see what you're saying now. I misinterpreted your statements earlier.

Re: What is a flop?

#28

Can somebody explain why a square root is also considered a flop? Surely that involves more work than the other four operations the article listed. Is there some hardware algorithm for the square root that is as fast as (e.g.) division?

Square root is pretty much equivalent to division in complexity, and computed by similar techniques (digit-by-digit methods or newton-raphson or goldschmidt iterations). Division is often a little more efficient, but square root has fewer messy edge cases (it never overflows nor underflows).

Division and square root are generally slower than the other arithmetic operations, in both latency and throughput. They are finally partially pipelined in recent CPUs (a result every two or three cycles), but were totally unpipelined in mainstream designs for many years before that. A decade ago, they might take a few tens of cycles, now they’re generally somewhere around ten cycles latency on “real” CPUs, vs 3-5 cycles latency for the other floating point arithmetic instructions.

Re: What is a flop?

#29
It was always an approximation to the real world computing need. a single instruction is how most people thought of flop or mips but it had to be a blend over the range of cost behind implementing a task, the ALU single thread/lock cost, and the problemspace.

If you do exclusively square roots over a giant matrix, being told the FLOP is based on a single 64 bit float division might not help you. (I cannot conceive of a problem solved only in square roots. This is a hyperbolic/reductive argument)

Given the distinction of single/parallel a lot of FLOPS stories and MIPS stories were somewhat mythic anyway. Then manufacturers started gaming the test suites.. it was always very notional.

I ask, if IOPS is in fact any better? or SQL transaction models? I might be stuck in a problem which is a LEFT OUTER JOIN do I not need to know that cost distinct from a well optimised single B Tree index cost?

I worked on an 11/780. Many in fact, both as an operator and as a user. It was awesome. But, I reminded myself the Dec-10 alongside had happily been supporting 70-80 users in parallel, running MUD, being a sort-of mainframe, I had no conscious sense of how "big" an IBM 360 was by comparison. A Vax 11/780 was however, really quite fast at processing the same FORTRAN jobs which ran on the Dec-10. The Dec-10 had a floating-point systems "ice cream cabinet" glued on the side as an array processor. It ran tasks compiled to run on it very very fast but that was a narrow problemspace. This was 1982-3.

Re: What is a flop?

#30
post #5

Floating point operations per …?

FLOP = FLoating point OPeration, akin to the work that needs to be done (which could be measured in Joule)

FLOPS = FLoating point Operations Per Second, akin to the power of a given machine (which could be measured in Watt = Joule per second)

A task of W FLOP on a machine capable of P FLOPS will take T=W/P seconds. Or, a machine capable of executing a task of W FLOP in T seconds is capable of P=W/T FLOPS.

TL;DR: 1 FLOPS = 1 FLOP/sec

Post reply on HN