> If someone is doing ML or video editing and the software is not using the GPU for most parts of the workflow, I'd like to invite that person to 2022.
That sounds like a pretty strong statement, so I decided to try it out on some hardware from the last 5 years (an AMD GPU with VCE 3.0 and a 6/12 core/thread AMD CPU), in particular, encoding the same video: 1080p, 30fps with similar quality settings.
Here are the results for various encoders (using ffmpeg, through Handbrake and/or Kdenlive):
How File Size Time
CPU h264 105 MB 03:15
GPU h264_amd_vce 198 MB 03:22
CPU h265 99 MB 07:44
GPU h265_amd_vce 361 MB 04:36
CPU mpeg4 102 MB 02:07
CPU mpeg2 72 MB 02:04
CPU vp8 55 MB 06:13 (low CPU usage, <50%)
Seems like the quality settings don't actually mean much across different encoders, so these results aren't that conclusive in regards to comparing the codecs against one another, however one can surmise out that GPU isn't an order of magnitude ahead of CPU in regards to video encoding, at least on mid tier consumer grade hardware.
That probably changes on more specialized or recent hardware (something newer than VCE 3.0), or things like the aforementioned ML.
A proper hardware encoder will absolutely smoke CPU decoding. Switching from OpenGL software rendering to NVENC/VAAPI reduced power consumption considerably for me. Nvidia and Apple's hardware-based decoders are both top-notch, with Intel's also being fairly decent. Like the other commenter said, I've heard mixed things about the AMD decoders (not to insinuate that their GPUs/iGPUs are bad, though).
As for machine learning, most metrics right now suggest that conventional GPGPU calculations scale with power consumption. If you want high-performance ML without specialized hardware, your only choice is high-wattage hardware.
Now Dwarf Fortress, that's another beast with no cure...