News Doom port runs entirely on your GPU — no rip-and-tear wear on your CPU

"Unfortunately, we only have a screenshot of doomgpu in action, not a video. This, and the lack of some additional documentation, means that we currently don't actually know [...]"
How hard could it be for a tech journalist to do the most basic investigation : find an AMD GPU, git clone the project and run 3 commands to test and report?

The documentation from the github project in its entirety:

$ make -C amdgpu_loader/ -j
$ make -C doomgeneric/ -f Makefile.amdgpu -j
$ ./amdgpu-loader/amdgpu-loader --threads 512 ./doomgeneric/doomgeneric -iwad doom1.wad
 
How hard could it be for a tech journalist to do the most basic investigation : find an AMD GPU, git clone the project and run 3 commands to test and report?

The documentation from the github project in its entirety:

$ make -C amdgpu_loader/ -j
$ make -C doomgeneric/ -f Makefile.amdgpu -j
$ ./amdgpu-loader/amdgpu-loader --threads 512 ./doomgeneric/doomgeneric -iwad doom1.wad
They should replace 99% of the "journalists" on this site with AI.
 
I think the main point of this is to demonstrate the completeness of the LLVM C library for GPUs. There's a large range of conventional programs you could compile & run entirely on a modern GPU, but few more evocative and attention-grabbing as a classic video game. Sadly, I fear the point will be lost on some, who just see an old video game being GPU-accelerated and think "duh".
 
  • Like
Reactions: ezst036 and P.Amini
"However, the screenshot also indicates the AMD RX 6950 XT is being pushed to 99% utilization at a mere 1280 x 800 internal resolution."

This doesn't mean what you think it means.

The GPU shows 99% utilization because Doom is running in a single kernel launch. Any waiting between frame updates and input events is done by the GPU ... so the GPU is always busy.

All that the 99% utilization means is what you already said: Doom is running entirely on the GPU.
 
Last edited:
  • Like
Reactions: bit_user
How hard could it be for a tech journalist to do the most basic investigation : find an AMD GPU, git clone the project and run 3 commands to test and report?

The documentation from the github project in its entirety:

$ make -C amdgpu_loader/ -j
$ make -C doomgeneric/ -f Makefile.amdgpu -j
$ ./amdgpu-loader/amdgpu-loader --threads 512 ./doomgeneric/doomgeneric -iwad doom1.wad
it's free. test it yourself or pay me if you insist I miss my deadlines for you

[also, not an AMD GPU user, but I'd say the same thing even if I were. it's free not to be an obnoxious backseat driver too, ya know.]
 
They should replace 99% of the "journalists" on this site with AI.

ah yes, AI that can't count the number of Rs in strawberry, mistakes recipes for poison for food, and certainly can't actually test software OR hardware in any meaningful capacity. you should learn to appreciate your fellow human, lest you be mistaken for the garbage you treat others as.
 
"However, the screenshot also indicates the AMD RX 6950 XT is being pushed to 99% utilization at a mere 1280 x 800 internal resolution."

This doesn't mean what you think it means.

The GPU shows 99% utilization because Doom is running in a single kernel launch. Any waiting between frame updates and input events is done by the GPU ... so the GPU is always busy.

All that the 99% utilization means is what you already said: Doom is running entirely on the GPU.
Yeah GPU utilisation doesn't work like CPU utilisation does. As long as anything is happening on the GPU it counts as utilisation. It is likely due to the architecture, with CPUs time utilisation on a core very closely correlates to actual resource utilisation whereas GPUs are different, likely due to them being split into SM and then individual cores. An SM could be running something 100 % of the time but could only actually be using a single core so whilst the time utilisation of the SM is 100 %, the actual resource utilisation is very low.

I am very surprised they don't have better tools for measuring GPU utilisation though. I know Nvidia has NSight but that is a bit beyond just showing a percentage in task manager.
 
  • Like
Reactions: bit_user
Yeah GPU utilisation doesn't work like CPU utilisation does. As long as anything is happening on the GPU it counts as utilisation. It is likely due to the architecture, with CPUs time utilisation on a core very closely correlates to actual resource utilisation whereas GPUs are different, likely due to them being split into SM and then individual cores. An SM could be running something 100 % of the time but could only actually be using a single core so whilst the time utilisation of the SM is 100 %, the actual resource utilisation is very low.

I am very surprised they don't have better tools for measuring GPU utilisation though. I know Nvidia has NSight but that is a bit beyond just showing a percentage in task manager.
Nvidia has a system management interface, which appears to be built on NVML. Digging into the details, it seems all you can query is:
  • unsigned int gpu - Percent of time over the past sample period during which one or more kernels was executing on the GPU.
  • unsigned int memory - Percent of time over the past sample period during which global (device) memory was being read or written.

Source: https://docs.nvidia.com/deploy/nvml-api/structnvmlUtilization__t.html#structnvmlUtilization__t

That's part of NVML: https://developer.nvidia.com/management-library-nvml

Anyway, that does sound consistent with what you're saying task manager shows. I'm also sure you're right that NSight can show actual GPU occupancy, since detecting and mitigating pipeline bubbles is a key aspect of optimizing GPU code.