Personal computing discussed
Moderators: renee, Flying Fox, morphine
Shining Arcanine wrote:Would someone enlighten me as to why people care about floating point performance?
Shining Arcanine wrote:The intensive floating point calculations fall into the category of stream processing, so it is possible to do them on a GPGPU far faster than anyone could do them on a CPU. With that in mind, discussion about the floating point capabilities of a CPU on systems that are typically equipped with increasingly general-purpose GPUs seems strange to me.
flip-mode wrote:I've been AMD-ing it since my Athlon 800. I liked the performance for the price of the P2-X4 955 BE that I've got now. But I'm wondering if the direction AMD is going will bring products that compete with SB on the desktop. Servers are great and all and if AMD has to focus there for business reasons then so be it, but it will pain me if I have to move over to an Intel platform. I just don't appreciate the way Intel has strong-armed the market, and would like not to give them any of my money.
shining arcanine wrote:The intensive floating point calculations fall into the category of stream processing, so it is possible to do them on a GPGPU far faster than anyone could do them on a CPU. With that in mind, discussion about the floating point capabilities of a CPU on systems that are typically equipped with increasingly general-purpose GPUs seems strange to me.
morphine wrote:Shining Arcanine wrote:Would someone enlighten me as to why people care about floating point performance?
Because at this point in time close to zero of the commonly-used server software is OpenCL/CUDA/whatever enabled?
Shining Arcanine wrote:morphine wrote:Shining Arcanine wrote:Would someone enlighten me as to why people care about floating point performance?
Because at this point in time close to zero of the commonly-used server software is OpenCL/CUDA/whatever enabled?
Did you know that close to zero of the commonly-used server software requires a floating point unit?
morphine wrote:Shining Arcanine wrote:Did you know that close to zero of the commonly-used server software requires a floating point unit?
Surely you have to be joking.
Buub wrote:I think as servers become more sophisticated that becomes less and less true. Yes, it doesn't require any real floating point math to run a mail server or serve up a web page, but as the rendering, statistical monitoring, and other services provided as part of a sophisticated server become more complex, there is plenty for a floating point unit to do. Yes, it won't be a bottleneck, but a CPU with a decent floating point unit will do better than a processor that requires all FP be done in software.
morphine wrote:I was going to provide counterpoints to your individual claims, but I see little point in doing so, as obviously you're not going to deviate from your academic-induced reality denial path.
Instead, I'm going to have to ask you to provide proof of your ridiculous claim that close to zero of server applications do floating point math.
float i = 0;
while (i != 1) { i += 0.02 }
cout << "I iterated " << 50 * i << " times" << endl;
just brew it! wrote:It is probably true that most server applications could be coded to completely avoid floating point math. Ditto for games. But I'd be willing to bet that reality is otherwise.
Lack of SSE support hurt AMD in the gaming market during the late K6-x and early Athlon days. Game developers were starting to use SSE, but AMD didn't have enough market share to make it worthwhile for game developers to create a separate 3DNow code path.
SSE instructions are divided into four subgroups (note that the first subgroup has subordinate subgroups of its own):
- SIMD single-precision floating-point instructions that operate on the XMM registers
- MXSCR state management instructions
- 64-bit SIMD integer instructions that operate on the MMX registers
- Cacheability control, prefetch, and instruction ordering instructions
Buub wrote:Please, rounding "errors" at the least significant digits are expected in software. It's a well-understood paradigm that computer floating point numbers are not exact. It doesn't matter. When I'm computing to four or five significant digits whether the twelfth least significant digit has a rounding error. It's entirely irrelevant.
And the academic argument that server software "can" be written without floating point is also irrelevant, since that doesn't man that it is. I think I point that out quite clearly above.
It's entirely true that static web pages can easily be served up without floating point calculations. But anything more complex is much less sure of a bet.
Buub wrote:Please, rounding "errors" at the least significant digits are expected in software. It's a well-understood paradigm that computer floating point numbers are not exact. It doesn't matter. When I'm computing to four or five significant digits whether the twelfth least significant digit has a rounding error. It's entirely irrelevant.
And the academic argument that server software "can" be written without floating point is also irrelevant, since that doesn't man that it is. I think I point that out quite clearly above.
It's entirely true that static web pages can easily be served up without floating point calculations. But anything more complex is much less sure of a bet.
if(x==0.1)
Shining Arcanine wrote:morphine wrote:I was going to provide counterpoints to your individual claims, but I see little point in doing so, as obviously you're not going to deviate from your academic-induced reality denial path.
Instead, I'm going to have to ask you to provide proof of your ridiculous claim that close to zero of server applications do floating point math.
If you understood what floating point math was and what servers do, you would not ask such a ridiculous question. Servers process information. That is all they do. Floating point numbers are a hack that was invented to allow programmers to deal with ranges of values that exceed the ability of a single machine word to address. They work by spacing the numbers that machine words can represent out over a range so inordinately large that there is no way that a programmer could reasonably expect to instruct a computer to represent every item in the range without causing the computer to slow to a crawl, assuming it even can represent such a range, which is not always the case. If you do not need such a large range, which few people do, there is no need for floating point numbers and there are enough problems with them that people actively try to avoid using them.
select * from SAMPLES where AVG_TEMP > 37.5 and AVG_PRECIP < 3.45;
select ID from AIRPORTS where LAT=32.8968281 and LONG=-97.0379958
Shining Arcanine wrote:If you understood what floating point math was and what servers do, you would not ask such a ridiculous question.
SecretSquirrel wrote:So how am I supposed to run the following database query without support for floating point numbers?
SecretSquirrel wrote:Buub wrote:Please, rounding "errors" at the least significant digits are expected in software. It's a well-understood paradigm that computer floating point numbers are not exact. It doesn't matter. When I'm computing to four or five significant digits whether the twelfth least significant digit has a rounding error. It's entirely irrelevant.
And the academic argument that server software "can" be written without floating point is also irrelevant, since that doesn't man that it is. I think I point that out quite clearly above.
It's entirely true that static web pages can easily be served up without floating point calculations. But anything more complex is much less sure of a bet.
Not to put too much support behind SA, but rounding in floating point numbers causes headaches all the time in very simple applications. Something as simple as thisCode: Select allif(x==0.1)
may not work depending on the floating point implementation. 0.1 cannot be represented exactly as a sum of powers of two.
--SS
SecretSquirrel wrote:Shining Arcanine wrote:morphine wrote:I was going to provide counterpoints to your individual claims, but I see little point in doing so, as obviously you're not going to deviate from your academic-induced reality denial path.
Instead, I'm going to have to ask you to provide proof of your ridiculous claim that close to zero of server applications do floating point math.
If you understood what floating point math was and what servers do, you would not ask such a ridiculous question. Servers process information. That is all they do. Floating point numbers are a hack that was invented to allow programmers to deal with ranges of values that exceed the ability of a single machine word to address. They work by spacing the numbers that machine words can represent out over a range so inordinately large that there is no way that a programmer could reasonably expect to instruct a computer to represent every item in the range without causing the computer to slow to a crawl, assuming it even can represent such a range, which is not always the case. If you do not need such a large range, which few people do, there is no need for floating point numbers and there are enough problems with them that people actively try to avoid using them.
So how am I supposed to run the following database query without support for floating point numbers?Code: Select allselect * from SAMPLES where AVG_TEMP > 37.5 and AVG_PRECIP < 3.45;
or this oneCode: Select allselect ID from AIRPORTS where LAT=32.8968281 and LONG=-97.0379958
--SS
morphine wrote:Shining Arcanine wrote:If you understood what floating point math was and what servers do, you would not ask such a ridiculous question.
If you could, for just a minute, block your arrogance and presumption, you'd see the following:
a) Nearly everyone in the discussion knows exactly what floating-point math is and what it does. In fact, I'm pretty sure that most here have already forgotten more about it than you'll ever know. There's no need to show off your theory.
b) Floating-point math is not a "hack". It's a tool. Unless all the CPU makers have been on the wrong track this whole time, and if you truly believe so, then you can always apply for a job at either Intel or AMD and show them how it's done.
c) Just because you don't find FP math elegant (it certainly seems you have some sort of axe to grind), it doesn't mean that it doesn't have its use, and more importantly, it doesn't mean that it isn't used, more or less depending on the program in question. This is precisely why I have told you to provide proof for your claims. If you'd have bothered to look, you'd see that most software in existence does some sort of floating-point math. Some actually being very intensive, some to a lesser degree. As Buub pointed out, just because stuff can be rewritten to use integer math instead, it doesn't mean that it should be done.
Shining Arcanine wrote:Databases are I/O limited, so the hard drive will cause the program to wait either way.
Shining Arcanine wrote:Floating point numbers map irrational numbers to rational ones, which is a hack to obtain an illusion that a machine word can represent more than is theoretically possible. If you know differently, then please enlighten me.
Shining Arcanine wrote:Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs. It is nice for scientific computing, which has a significant amount of legacy code that is largely dependent on CPUs for floating point calculations at the moment, but that is not something that seems to impact people here
Shining Arcanine wrote:It was suggested that servers need them, but that is nonsense.
Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs. It is nice for scientific computing, which has a significant amount of legacy code that is largely dependent on CPUs for floating point calculations at the moment, but that is not something that seems to impact people here.
codedivine wrote:Javascript doesnt have an integer type. Its only number type is floating point.
Ryu Connor wrote:Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs. It is nice for scientific computing, which has a significant amount of legacy code that is largely dependent on CPUs for floating point calculations at the moment, but that is not something that seems to impact people here.
We care because we're all concerned about PhysX performance on our CPU. How the hell else are we gonna manage to play Mass Effect 3 when it releases if we don't have CPU PhysX support?
Don't say buy an NVIDIA card. TR forum members with ATI cards get cash kickbacks from AMD. That's way too lucrative to be going back to the green team for.
Shining Arcanine wrote:Ryu Connor wrote:Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs. It is nice for scientific computing, which has a significant amount of legacy code that is largely dependent on CPUs for floating point calculations at the moment, but that is not something that seems to impact people here.
We care because we're all concerned about PhysX performance on our CPU. How the hell else are we gonna manage to play Mass Effect 3 when it releases if we don't have CPU PhysX support?
Don't say buy an NVIDIA card. TR forum members with ATI cards get cash kickbacks from AMD. That's way too lucrative to be going back to the green team for.
That is the first reasonable answer someone has posted. Things make sense now. Thanks.
Shining Arcanine wrote:The intensive floating point calculations fall into the category of stream processing, so it is possible to do them on a GPGPU far faster than anyone could do them on a CPU. With that in mind, discussion about the floating point capabilities of a CPU on systems that are typically equipped with increasingly general-purpose GPUs seems strange to me.
Shining Arcanine wrote:If your database keys are floating point numbers, then you will likely have issues selecting entries due to rounding errors and other things. It is probably safer to leave those things as strings and better to select entries as via some other identifier, like the 3 character codes for airports or a numbering system that numbers all of them from 0 to n - 1. If you must do it that way, your processor need not have any real floating point support because you can compile the floating point operations into integer operations.
Shining Arcanine wrote:Floating point numbers map irrational numbers to rational ones, which is a hack to obtain an illusion that a machine word can represent more than is theoretically possible. If you know differently, then please enlighten me.
Shining Arcanine wrote:Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs.
Glorious wrote:Shining Arcanine wrote:Floating point numbers map irrational numbers to rational ones, which is a hack to obtain an illusion that a machine word can represent more than is theoretically possible. If you know differently, then please enlighten me.
This is just a mess.
First off, computers are finitely precise, so if you want to use irrational numbers you're going to HAVE to use an approximate rational number for them. Integer/FP/whatever, if you're dealing with things like pi or e on a computer, you're using this "hack." Which, you know, is kinda of a good thing? Otherwise cellphones, the internet, scientific computing, etc... would all be impossible.
Shining Arcanine wrote:The IEEE 754 standard defines how floating point arithmetic is supposed to be done.
Shining Arcanine wrote:All modern CPUs implement floating point calculations according to the standard.
Shining Arcanine wrote:There should in theory be no implementations other than ones that are con-formant with the IEEE 754 standard.
Shining Arcanine wrote:As far as I know, the only GPUs that have IEEE 754-compliant floating point implementations are Fermi and post-Fermi Nvidia GPUs.
Shining Processor wrote:The IXP425 processor, which has been used in everything from file servers, irc servers, torrent servers, VPN servers, routers, etcetera lacks a floating point unit.
JBI wrote:SA -- FWIW I actually agree that many developers incorrectly use floating point values where a scaled integer, BCD representation, or even string would be more appropriate. But that doesn't change the fact that you seem to have completely missed the point.