Allow me to rephrase that- the standard behaviour if trying to use hardware acceleration where a user’s hardware so happens to not have a specific codec supported is to fail/exit. The technology/API does not currently have a native mechanism to fall back to using SM’s/ Cuda cores in the case where the requested codec, or version of a codec is unsupported.
The context behind this is related to an arm based compute cluster I’m working on. I’ve begun with a few jetson’s as a POC and then probably moving to Cadmium arm servers with discrete cards later on, or some other vendor.
Because Codecs can and are updated/expanded every few years, it would be very useful to be able to fall back to a secondary mechanism that is still accelerated rather than attempt to decode on CPU. If at all possible I’d like to be spending more of the chassis power budget on GPU’s than having to account for higher CPU resources, even when a large portion of the GPU hardware is idling.
For example, the relative performance loss of moving from a Maxwell era hardware Decode → encode chain for the same bitrate and same profile is an entire order of magnitude when compared to 4 arm cores @ 1.5 ghz. Testing methodology is at the end of the post.
What I’m looking for is something in between. Because we will always want to use the hardware encoder, processing on GPU is both faster since the hardware is better adapted/leveraged and it removes the need to move data over the PCIe bus, since everything is presumably already in video memory. This also better allows for CUDA based image processing for the same reason.
I’m aware that using the ASIC on board the cards would be ideal in most cases, but that unfortunately inst always possible
Testing done with a Jetson Nano 2gb and 4gb, across multiple files types, codecs bitrates etc. Testing resulted in a ~7% standard deviation across all scenarios.
For hardware encoding/decoding Nano was in 5W mode with only 2 cores active and Jetson clocks off.
For CPU encoding decoding/ Nano was in NVMAX mode with JetsonClocks on.