Monitoring FPU usage under Windows?

  • Thread starter Thread starter Borek
  • Start date Start date
  • Tags Tags
    Windows
Click For Summary

Discussion Overview

The discussion revolves around monitoring Floating Point Unit (FPU) usage under Windows, with participants exploring the challenges and limitations of existing tools. The conversation touches on the evolution of games with increasing FLOPS, the integration of FPUs within CPUs and GPUs, and the implications for performance monitoring.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant seeks methods to monitor FPU usage specifically, noting the lack of available tools compared to CPU monitoring.
  • Another participant confirms that FPU refers to Floating Point Units and relates the discussion to the evolution of games and their reliance on FLOPS.
  • Some participants discuss the historical context of game graphics, indicating a shift from CPU-only processing to the use of GPUs for rendering, while emphasizing that physics calculations remain the domain of CPUs and specific engines.
  • There is a contention regarding the distinction between FLOPS and MIPS, with participants expressing the need to keep these concepts separate in the context of performance measurement.
  • Concerns are raised about the feasibility of monitoring individual FPUs within modern CPUs, given their integrated nature and the complexity of their usage metrics.
  • Some participants highlight that modern CPUs contain multiple FPUs, complicating the definition of FPU usage and raising questions about how to quantify it effectively.
  • Discussion includes references to advanced GPU capabilities and their potential for non-graphics computations, although some participants insist on staying focused on FPU usage.

Areas of Agreement / Disagreement

Participants generally agree on the complexity of monitoring FPU usage due to the integration of FPUs in modern processors. However, there are competing views on the implications of this integration and the relevance of GPUs in physics calculations, leaving the discussion unresolved.

Contextual Notes

Participants note limitations in existing monitoring tools and the challenges posed by the architecture of modern CPUs, including the definition and measurement of FPU usage across multiple units.

Borek
Mentor
Messages
29,203
Reaction score
4,625
Does anyone know how to monitor FPU usage under Windows? There are plenty of monitors (even the built one) that will show CPU usage, but I am interested just in FPU and I can't find anything. Does it mean there is no way of checking?

Perhaps profilers could help gather some data, but in my (dated) experience they are perfect when you have a source code, and I need to collect some general FPU usage data.
 
Computer science news on Phys.org
FPU - Floating Point Units?
 
Borek said:
Yes.

This is related to this thread: https://www.physicsforums.com/threads/computer-games-based-on-physics-engines.803658/ I have problems finding good information. I tried to contact developers and producers, but so far to no avail.

More or less the question at the moment is: how did the games change with more and more FLOPS available? How many FLOPS do the games use?
Well, as CPUs got faster and able to execute more FLOPS, games changed from cartoons like Mario Bros. to more realistic graphics like DOOM and others.

It's hard to separate out the performance of the FPU from the CPU, because the FPU is integrated into the overall design of the processor, especially in the Intel family. The need for more raw processing power for the most realistic games has outstripped what the CPU-FPU combinations can provide, which is why graphics cards have separate memory and multiple FPU chips which are capable of executing parallel code.

http://en.wikipedia.org/wiki/Graphics_processing_unit

Most FPU testing of which I am aware is performance on one or more computation benchmarks. I'm not aware of any real-time monitoring of FPU performance.
 
SteamKing said:
Well, as CPUs got faster and able to execute more FLOPS, games changed from cartoons like Mario Bros. to more realistic graphics like DOOM and others.

And that's what I want to write about.

It's hard to separate out the performance of the FPU from the CPU, because the FPU is integrated into the overall design of the processor, especially in the Intel family.

Which doesn't make the distinction between FLOPS and MIPS obsolete (#include all necessary disclaimers and caveats here.

The need for more raw processing power for the most realistic games has outstripped what the CPU-FPU combinations can provide, which is why graphics cards have separate memory and multiple FPU chips which are capable of executing parallel code.

IMHO you are mixing two things here, and I want to keep them separate. Floating power on the graphic card is (mostly) used for graphics generation. Around DOOM time everything (including graphics generation) was done by the CPU, around Quake things has changed (thanks to Quake using some subset of OpenGL) as the first consumer graphic cards with accelerated 3D rendering appeared (Voodoo and so on). But that's not what I am looking after. As far as I know GPU is not used for the physics behind the world. This is the domain of CPU and engines like Havok, Open Dynamics Engine or Box2D. I am interested in FLOPS used by these engines.
 
Borek said:
Which doesn't make the distinction between FLOPS and MIPS obsolete (#include all necessary disclaimers and caveats here.
No one ever said that this distinction is obsolete.
IMHO you are mixing two things here, and I want to keep them separate. Floating power on the graphic card is (mostly) used for graphics generation. Around DOOM time everything (including graphics generation) was done by the CPU, around Quake things has changed (thanks to Quake using some subset of OpenGL) as the first consumer graphic cards with accelerated 3D rendering appeared (Voodoo and so on). But that's not what I am looking after. As far as I know GPU is not used for the physics behind the world. This is the domain of CPU and engines like Havok, Open Dynamics Engine or Box2D. I am interested in FLOPS used by these engines.

Normally, you would be right, but with high-end graphics cards coming down in price, their capabilities are being used for more that "just" graphics. In many cases, the raw processing power of many graphics cards outstrips that of the computer's CPU.

Here is a page from one GPU vendor, nVidia:

http://www.nvidia.com/page/products.html#GPUAccelerated

Clicking on "GPU Computing" under the section "GPU Accelerated Software Applications" will show about 20 pages of all sorts of software where the actual number crunching, not just the graphics, is accelerated by use of this brand of GPU.

Here is one sample application, under the heading of "Computational Chemistry" for nVidia Tesla GPU Accelerators:

http://www.nvidia.com/object/computational_chemistry.html

There are other applications for structural mechanics, computational fluid dynamics, etc.

With advanced GPUs having parallel architectures, it's almost like having a personal supercomputer in your desktop.
 
I know of these applications.

Can we please stay on topic?
 
Since FPUs are now integrated multiple times both within CPU's and GPU's I doubt there would be any off the shelf software for Windows that monitors the use of individual units within the chips.
Possibly the manufacturers of the chips might have something which does this as part of their R&D effort.
 
There hasn't been a separate FPU on Intel chips for a very long time - maybe 25 years. Today there are multiple FPUs on a single CPU, with some able to execute some instructions and some able to execute others. I'm not even sure FPU usage is even well defined - if FPU0 is used 100% of the time, but FPU1 is idle, is this 100% usage? 50% usage? Some other number? It's probably impossible to keep them all busy simultaneously.
 
  • #10
Vanadium 50 said:
There hasn't been a separate FPU on Intel chips for a very long time - maybe 25 years. Today there are multiple FPUs on a single CPU, with some able to execute some instructions and some able to execute others. I'm not even sure FPU usage is even well defined - if FPU0 is used 100% of the time, but FPU1 is idle, is this 100% usage? 50% usage? Some other number? It's probably impossible to keep them all busy simultaneously.
While there may no longer be separate physical chips, there are special instruction codes which are executed by the FPU which perform the floating point operations.

As the internal architecture of the Intel family has gotten more complicated, the instruction set has complexified quite a bit over the years, and the floating point instructions are but one aspect of this.
 
  • #11
I'm not sure how that helps Borek, though. Because of the superscalar nature of modern chips, even things like "time spent executing FMUL" are not simple.
 

Similar threads

  • · Replies 30 ·
2
Replies
30
Views
3K
Replies
8
Views
3K
  • · Replies 15 ·
Replies
15
Views
2K
Replies
5
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
12
Views
2K
  • · Replies 44 ·
2
Replies
44
Views
6K
  • · Replies 36 ·
2
Replies
36
Views
13K
Replies
2
Views
4K
  • · Replies 5 ·
Replies
5
Views
5K