NVENC encoding in linux working on GPU but also using CPU

Hi,

I have an issue that is driving me crazy and i need your views on this please.

The scenario is this:

I have an 8core, 16GB RAM Server running Linux CentOS 64 bit, Java 8u5, Wowza Streaming Engine 4.0.3 and the server kas an Nvidia Quadro K5000 kepler card in it.

I have installed the CentOS nvidia drivers and the card is recognised fine.

I am pushing 1 incoming stream to the wowza server and I configured it to transcode to 3 different streams. So, incoming stream is testStream and transcoded streams are testStream_1 , testStream_2 , and testStream_3 .

The problem is here, when i set the transcode profile to use NVENC, i can see wowza utilising the GPU (i see GPU and GPU MEM usage via nvidia-smi tool), and it also utilises the CPU at 30%. When i change the profiles to use Default (uses CPU transcoding only. Does not use the GPU), i can see that the GPU is no longer utilised but i am getting the same CPU utilisation.

is seems as if when set to NVENC or CUDA, the GPU is transcoding but the CPU is ALSO transcoding.

Isn’t the whole point of transcoding with an expensive card like that to decrease CPU overhead and put the big number crunching on the GPU?

Any thoughts?

Hi,

Please open a ticket so that we can look at this issue closer.

To create a ticket please email support@wowza.com with a detailed description of the issue you’re facing, a link to this thread fro reference and a zipped copy of the following directories:

[Wowza-Install]/conf/

[Wowza-Install]/logs/

[Wowza-Install]/transcoder/

[Wowza-Install]/manager/logs/

Wowza uses CPU to decode the stream which means that you will have CPU usage when transcoding

We will be able to see in much more detail when we have a copy of the above directories.

Please see the NVIDIA NVENC and CUDA cards article which lists which cards are supported

Thanks

Jason

I’ll get the support ticket opening asap.

To decode a 1080 stream (h264 main 4.0 @ 6 mbps) on the system above what sort of system usage should I expect?

Also the card mentioned above does have NVENC and wowza confirms this on the transcode start up. The log line also confirms that NVENC is being used.

Under m$ windows this all worked fine.

Hi,

Can you confirm that you are running under CentOS and the drivers you have are the latest ones available?

The encoding wont show as usage on the card, as it uses a Fixed Function NVENC processor for transcoding, which isn’t measured as GPU utilization.

CPU is still used for decoding, so you’ll see moderate CPU utilization.

Daren

Hi,

How many streams are being sent to the transcoder when you see this happen?

What is the resolution and bitrate of the the streams?

Does this occur when a single stream is being sent?

You would need to test and scale back the number of streams to find how many could be handled by the current server.

Daren

Hi,

This issue is being handled in support ticket 92855.

Jason

Hi,

The decoding of streams is not just measured on the number of streams but the resolution and bitrate of the streams too.

30 streams is a high number transcodes please see our Transcoder AddOn Performance Benchmark for an idea of how many streams can be transcoded on a single server.

The complexity also the same for the encodes created by the transcoder, if you’re creating high resolution and bitrate encodes, this is more resource heavy than lower resolution and bitrate streams.

Regards,

Jason

I have a same problem

CPU rests at the start of 100%, then falls, then rises again and crash JAVA

as possible to solve this problem?

Тесла k10

OS Architecture

amd64

Memory

Total: 220,39 GB

Available: 202,76 GB

Processor Cores

32

Java Version

1.7.0_51

Java Bitness

64

I’m using Ubuntu 12.04.4 LTS, probably somewhere missed that need CentOS

All the latest drivers

CPU is still used for decoding, so you’ll see moderate CPU utilization.

Hmm, I thought this processor can easily cope with the decoding of 30 streams

server to cope with the number of threads, I do not understand exactly CPU peaks at the start of the server in which the crash java