Floating-point units in server-grade CPUs

Discussion of all forms of processors, from AMD to Intel to VIA.

Moderators: Flying Fox, morphine

Floating-point units in server-grade CPUs

Postposted on Thu Oct 28, 2010 11:33 am

Would someone enlighten me as to why people care about floating point performance?

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.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Thu Oct 28, 2010 11:50 am

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?
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Thu Oct 28, 2010 12:26 pm

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.

How many web servers do you know with GPUs in them?
Cloud computing providers?
Anything that isn't a single-user desktop or a priced-in-the-stratosphere HPC cluster?
Core i7 920, 3x2GB Corsair DDR3 1600, 80GB X25-M, 1TB WD Caviar Black, MSI X58 Pro-E, Radeon 4890, Cooler Master iGreen 600, Antec P183, opticals
SNM
Emperor Gerbilius I
 
Posts: 6206
Joined: Fri Dec 30, 2005 10:37 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Thu Oct 28, 2010 2:14 pm

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.


I held out until the core2duo. :(

I still usually go AMD when making computers for other people though.

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.


Does anything for you NOT fall into the "category of stream processing?"

Do you really need us to jump all over you again?
Glorious
Darth Gerbil
Gold subscriber
 
 
Posts: 7884
Joined: Tue Aug 27, 2002 6:35 pm

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Thu Oct 28, 2010 2:18 pm

I don't think you need to "jump all over" anyone. that's probably why your the least popular person on here, well after me anyway.
sweatshopking
Gerbil Elite
Silver subscriber
 
 
Posts: 685
Joined: Fri Aug 15, 2008 10:37 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 8:26 pm

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?
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 8:41 pm

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?

Surely you have to be joking.
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:07 pm

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.


I am serious. People in the open source community often run servers on embedded hardware that lacks the ability to process floating point numbers. The presence of a floating point unit or what performance it has in some benchmark is unimportant as far as servers go. Integers are used almost exclusively in business applications, which is what a server does. Floating point units are mainly useful in specialized tasks like scientific computing. Doing things like multimedia or running video games does require a floating point unit (although emulation is possible), but servers do not do those things. Your typical server does not do things that benefit from graphics cards.

By the way, here is a fun fact. Many game programmers implement their games' calculations using integers, rather than floating point numbers. The main thing that does floating point calculations in games is the GPU. Although I am sure that there are cases to the contrary, the CPU is dedicated to tasks that do not use floating point numbers. There is a popular open source game called Battle for Wesnoth. I found a few bugs in it and fixed them last summer, with my patch being merged into the main tree within 24 hours of my contributing it. While I was working on it, I did not see a single floating point number in use and I was dealing with a part of the game that did calculations.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:11 pm

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.

For example, about a year ago I wrote an identity cache that's used internally at our company. It contains about 1 billion entries and can serve up to 110,000 queries per second, but has to do so in a rate limited way, since going flat out would bring down the source database (hence the need for a cache in the first place). The rate limiting algorithm is all floating point math. Some of the monitoring statistics are as well. Why shouldn't they be? It's run on a processor that offers floating point hardware. True, I could do it with a slightly cruder algorithm that was entirely integer based, but why bother when I know I have dedicated FP hardware available, and the FP algorithms are more precise.
Buub
Maximum Gerbil
Silver subscriber
 
 
Posts: 4214
Joined: Sat Nov 09, 2002 11:59 pm
Location: Seattle, WA

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:17 pm

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.


Servers do not provide rendering services and statistical monitoring can be done with integer units.

It is much harder to use floating point numbers in a way that does not introduce bugs into code than it is to work with integers. As soon as the calculations are rounded by hardware, rounding errors are introduced into the calculations, which means that your code is no longer processing what you intended it to process, which can be okay, but it means that weird unexpected things can happen and there is no end to the issues that are caused by the use of floating point numbers. Programmers share examples of issues involving them amongst themselves all the time and there are even large amounts of time at major conventions dedicated to talking about it. Integers are immune to the problems that plague floating point numbers, because the worst that will happen is that they can wrap-around, which is something that is fairly easy to anticipate.

The big issue with integers is that you cannot reach large exponents with integers. Floating point numbers were introduced as a method to deal with that, but using them introduces bigger issues and the problem for programmers is reduced to choosing which set of issues do they want to encounter. For anything that can trivially use integers instead of floating point numbers, using integers is the best choice.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:42 pm

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.
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:50 pm

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.
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37979
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 9:58 pm

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
Maximum Gerbil
Silver subscriber
 
 
Posts: 4214
Joined: Sat Nov 09, 2002 11:59 pm
Location: Seattle, WA

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Sun Oct 31, 2010 11:28 pm

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.

Code: Select all
float i = 0;
while (i != 1) { i += 0.02 }
cout << "I iterated " << 50 * i << " times" << endl;


How many times does that iterate?

There is an inordinate number of examples where the rules of mathematics are violated by floating point numbers. If I multiply two numbers and then divide the result by each of them, the number should be equal to 1, right? If you use floating point numbers, the result need not be one. Depending upon the numbers being multiplied, the result could also be positive infinity, negative infinity, close to but less than 1 or close to but greater than 1. I would need to double check the last two cases as it might be the case that only one of the two can occur, but I can tell you that at least 3 different things can happen. If this is part of some complicated expression, you can also get NaN, which stands for "Not a Number" and it is not always obvious that such a thing is possible. Even if you were aware of the possibility, you could think that your code will never encounter condition X, so you ignore it and then modify it at some point in the future not thinking about that caveat, causing condition X. At which point, assuming that the system does not crash, you get garbage as your result and the reason why that happened is not obvious.

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.


There is no need to rewrite server applications to use integer instructions because they are not usually written to use floating point instructions in the first place. Databases typically deal with integers and text. File servers, http servers, IRC servers, etcetera push bits from place to place. Routers also move bits from place to place and do hash verification, which relies solely on integer performance. VPN servers do encryption, which relies solely on integer performance. Those are the main areas. Games ten years ago are a different story. Quake for example made fairly heavy use of floating point arithmetic, although the use of SSE is a mixed story as far as what types of operations are done goes.

http://www.intel.com/Assets/PDF/manual/253665.pdf

Section 5.5 describes SSE.

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


The instructions introduced with SSE allowed programmers to tell the CPU to move data around in ways that reduced the impact of the the Von Neumann bottleneck, improved upon MMX and introduced a mix of SISD/SIMD floating point operations. Intel calls the instructions that help mitigate the Von Neumann bottleneck data "Cacheability control, prefetch, and instruction ordering instructions", which are huge as far as performance improvements in CPUs go. The improvements to MMX made SIMD integer operations more practical. x87 was a poorly implemented hack to implement floating point operations via a x87 co-processor. Implementing floating point instructions at that time required large amounts of die area relative to integer instructions. x87 was implemented when the die area requirements of floating point instructions were not easily met by the process technologies that existed at the time, so it took a stack based approach to calculation. The stack based approach is inherently slow, but it simplified the logic of implementing floating point instructions, making it feasible to introduce floating point instructions via x87. While SSE instructions for floating point calculations introduced SIMD floating point instructions, they also made x87 obsolete by introducing SISD floating point instructions that behaved like their integer counterparts in x86, which took a non-stack based approach to calculations because the die area lower die area requirements of integer instructions meant that die area constraints were not a problem when x86 was designed. Things that used x87 were recompiled to use SSE and today, x87 instructions are available mostly for legacy reasons. Back then, GPUs did fixed function calculations, such that things that run on GPUs today had to run on CPUs, which made SISD and SIMD floating point instructions incredibly useful in 3D video games of the period.

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.


Why are you making an argument from my query about why people care about floating point performance in CPUs? Do you like arguing over pointless things?

Compilers can translate floating point calculations into integer calculations, which enable people to compile any program that uses floating point numbers into one that does not need a floating point unit at all. Furthermore, since floating point numbers are rarely used in computer programs, this can often be done with no performance penalty. The things that do suffer a performance penalty are CPU-intensive things where all of the processing does floating point calculations, in which case you would likely be using a GPU anyway.

When people say academic, they often seem to mean theoretical and not used in practice, but these are things that are done an inordinate number of times a second in computers all over the world. This is no theoretical statement of how things could be. This is a statement of how things are.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 7:45 am

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 this
Code: Select all
if(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
Gerbil Jedi
Gold subscriber
 
 
Posts: 1731
Joined: Tue Jan 01, 2002 7:00 pm
Location: The Colony, TX (Dallas suburb)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 7:56 am

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 all
select * from SAMPLES where AVG_TEMP > 37.5 and AVG_PRECIP < 3.45;


or this one
Code: Select all
select ID from AIRPORTS where LAT=32.8968281 and LONG=-97.0379958


--SS
SecretSquirrel
Gerbil Jedi
Gold subscriber
 
 
Posts: 1731
Joined: Tue Jan 01, 2002 7:00 pm
Location: The Colony, TX (Dallas suburb)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 10:41 am

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.
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 10:42 am

SecretSquirrel wrote:So how am I supposed to run the following database query without support for floating point numbers?

Well duh, you should be using CUDA, obviously. *wink*
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 2:26 pm

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 this
Code: Select all
if(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


The IEEE 754 standard defines how floating point arithmetic is supposed to be done. All modern CPUs implement floating point calculations according to the standard. There should in theory be no implementations other than ones that are con-formant with the IEEE 754 standard. As far as I know, the only GPUs that have IEEE 754-compliant floating point implementations are Fermi and post-Fermi Nvidia GPUs.

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 all
select * from SAMPLES where AVG_TEMP > 37.5 and AVG_PRECIP < 3.45;


or this one
Code: Select all
select ID from AIRPORTS where LAT=32.8968281 and LONG=-97.0379958


--SS


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. Performance wise, using integer instructions in place of floating point instructions is probably not a big deal. Databases are I/O limited, so the hard drive will cause the program to wait either way.

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.


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.

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. It was suggested that servers need them, but that is nonsense. Until about a decade ago, there were plenty of old servers doing server applications that lacked floating point units. There are still servers sold today that lack them. 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. The software for them is compiled without floating point instructions and there are no issues from the lack of a hardware floating point unit. None of the things people ask it to do require floating point numbers. It is not as if they are running Quake on a linksys NSLU2 or some other piece of hardware that uses the IXP425 processor. As far as I see, there is no reason why anyone here should care about the floating point performance of CPUs. It is nice as far as benchmarks go, but nothing the average power user runs requires strong floating point performance, unless it is something that should be on the GPU in the first place.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 4:30 pm

This whole discussion went from interesting to retarded. Thanks a lot, Shining Arcanine.

And yes, before you make inaccurate assumptions, I know what floating point is and what a Von Neumann architecture is. :roll:
"I take sibling rivalry to the whole next level, if it doesn't require minor sugery or atleast a trip to the ER, you don't love her." - pete_roth
"Yeah, I see why you'd want a good gas whacker then." - VRock
dextrous
Gerbil Elite
 
Posts: 563
Joined: Mon Nov 22, 2004 1:49 pm
Location: Ooooooooooklahoma

Re: Are the Bulldozer FP capabilities being underestimated?

Postposted on Mon Nov 01, 2010 4:54 pm

Shining Arcanine wrote:Databases are I/O limited, so the hard drive will cause the program to wait either way.

No, they're not. The dependance (or independence) on I/O varies by a great deal according to the workload and data set. Small dataset mostly loaded into RAM is an example of something that's CPU and memory bandwidth-bound. Datasets that rely heavily on sorting tend to be CPU-bound. One answer does not fit all.

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.

Yes, and? Do you have a point besides "I think FP math is ugly because it isn't inherently exact and nobody should use it because I don't like it"?

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

Stop. Assuming. Seriously, you don't know what "people here" do as a living nor what are their interests in server-grade CPUs.

Shining Arcanine wrote:It was suggested that servers need them, but that is nonsense.

Says who, you? You just say it's nonsense and then the rest of the world changes to fit your view? :roll: Go look into source code for server software. Come on, do it, and then come back and tell me exactly which percentage of that software doesn't include FP math. Because it's pretty obvious at this point that you have absolutely no clue what the hell you're talking about and instead prefer to go "la la la I don't hear you, I'm in my academic bubble!". Here, I'll help you: you can start with TR's server CPU benchmarks.

Up to this day, I saw you as simply misguided. Now I have a strong belief that you're simply an ignorant that likes to take his much-lauded theory, shoehorn it into stuff that it doesn't apply to, in order to pretend he actually knows something about the matter at hand.

Mod PS - Considering a thread split at this point.
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Floating-point units in server-grade CPUs

Postposted on Mon Nov 01, 2010 10:59 pm

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.
"Welcome back my friends to the show that never ends. We're so glad you could attend. Come inside! Come inside!"
Ryu Connor
Global Moderator
Gold subscriber
 
 
Posts: 3591
Joined: Thu Dec 27, 2001 7:00 pm
Location: Marietta, GA

Re: Floating-point units in server-grade CPUs

Postposted on Mon Nov 01, 2010 11:07 pm

Since this thread is full of random stuff, I decided to throw in a fun fact I learnt recently that has no relevance whatsoever to anyone (just like this thread): Javascript doesnt have an integer type. Its only number type is floating point.
codedivine
Gerbil Elite
Silver subscriber
 
 
Posts: 705
Joined: Sat Jan 24, 2009 8:13 am

Re: Floating-point units in server-grade CPUs

Postposted on Mon Nov 01, 2010 11:09 pm

codedivine wrote:Javascript doesnt have an integer type. Its only number type is floating point.

Oh man, someone's going to have a heart attack... how can you be so cruel?
There is a fixed amount of intelligence on the planet, and the population keeps growing :(
morphine
Grand Admiral Gerbil
Silver subscriber
 
 
Posts: 10073
Joined: Fri Dec 27, 2002 8:51 pm
Location: Portugal (that's next to Spain)

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 2:28 am

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.
Disclaimer: I over-analyze everything, so try not to be offended if I over-analyze something you wrote.
Shining Arcanine
Gerbil Jedi
 
Posts: 1717
Joined: Wed Jun 11, 2003 11:30 am

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 2:34 am

Media encoding/transcoding is also FP intensive. Why would you want to require people who want to do that sort of thing to buy a discrete GPU that is capable of high CUDA/OpenCL performance (and wait for a CUDA/OpenCL optimized version of their apps)?

Edit: Photo editing is another one...
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37979
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 7:35 am

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.


Image
SecretSquirrel
Gerbil Jedi
Gold subscriber
 
 
Posts: 1731
Joined: Tue Jan 01, 2002 7:00 pm
Location: The Colony, TX (Dallas suburb)

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 10:35 am

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.


First off, GPUs that can do compliant double-precision without a significant performance penalty are, what? six months old? Thus, even assuming that you're technically correct, what you are saying isn't "strange" at all. It's normal.

It'd only be strange if the entire programming world completely changed over in half a year. Because, no, systems are not "typically" equipped with teslas, sorry.

Second off, GPUs do well with certain workloads. They are not the magical solution to every workload. The set of workloads that involve FP and the set of workloads that do well on GPUs need not be the same and IS NOT THE SAME.

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.


First off, those floating point number are represented by a particular pattern of bits. Unless you are computationally arriving at them they will not change.

Second off, you know, a good chunk of the point of having a database is lost if people can't arbitrarily choose their selection criteria. He never said that these are the keys to the table, just that this is a legitimate query.

Third off, no, your processor doesn't need FP support, but since SQL, the calling language, and the native database all need to understand the FP standard, why not the processor?

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.

Second off, FP numbers map real numbers. Those real numbers CAN be irrational, but they could also just be rational numbers whose precision is larger any given wordlength of the computer allows.

Third off, the "illusion" that comes into play with how FP maps real and rational numbers is that the scheme trades accuracy for range. You can deal with a wide variety of values within a given wordlength, but you lose the certainty of exactness. The "illusion" is just that your precise answer confers that same amount of accuracy.

Shining Arcanine wrote:Anyway, no one answered my question as to why people here care so much about the floating point performance of CPUs.


Because not everyone has a tesla? And not everyone will need one? You know, it's nice to have good FP performance without having to lay hundreds of additional dollars ON TOP of your CPU.
Glorious
Darth Gerbil
Gold subscriber
 
 
Posts: 7884
Joined: Tue Aug 27, 2002 6:35 pm

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 10:55 am

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.

Or to look at it another way, this "hack" is nothing more than the concept of "significant digits" that we all learned in high school math class, recast from the decimal realm to the binary realm.

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.
(this space intentionally left blank)
just brew it!
Administrator
Gold subscriber
 
 
Posts: 37979
Joined: Tue Aug 20, 2002 10:51 pm
Location: Somewhere, having a beer

Re: Floating-point units in server-grade CPUs

Postposted on Tue Nov 02, 2010 10:57 am

Shining Arcanine wrote:The IEEE 754 standard defines how floating point arithmetic is supposed to be done.


No, it defines how to do it according to their standards. If you conform to that you'll save a lot of handache because virtually everyone else does, yes, but that's a little different than your implication that theirs is how it is "supposed" to be.

Shining Arcanine wrote:All modern CPUs implement floating point calculations according to the standard.


Not true, there are plenty of processors out there that have "fast" floating point modes that aren't compliant.

Shining Arcanine wrote:There should in theory be no implementations other than ones that are con-formant with the IEEE 754 standard.


Then your theory sucks hard, because I deal with the very non-compliant DEC standard every fricking day.

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.


That's because you don't know very much...

http://en.wikipedia.org/wiki/Evergreen_%28GPU_family%29

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.


That's an embedded network processor with a TDP of under 2 watts. You know, not exactly apple-to-apple?

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.


This is true, but as usual Shining Arcanine takes a little smidgen of truth and creates a gigantic sandstorm of arrogrant ignorance from it.
Glorious
Darth Gerbil
Gold subscriber
 
 
Posts: 7884
Joined: Tue Aug 27, 2002 6:35 pm

Next

Return to Processors

Who is online

Users browsing this forum: No registered users and 3 guests