Help with vaapi on Cent OS 7

Discussions related to the 1.36.x series of ZoneMinder
Post Reply
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Help with vaapi on Cent OS 7

Post by ZMfan »

Hi all
Need help with vaapi setup on CentOS 7.

Hardware
HP ProLiant ML310e Gen8 v2
Xeon® E3-1270 v3
8 Gb Ram
AMD RX 550 2Gb
ILO on board video

7 pcs: IP camera 5MP (2592x1944) Video Codec H.265/H.264 (HP/MP/BP)/MJPEG
configured for H.264

Software
CentOS 7.9
Clear install ZoneMinder 1.36
Radeon Pro Software for Enterprise for Linux

In BIOS HP ProLiant ML310e Gen8 v2
Primary ILO on board video Secondary AMD RX 550

In ZoneMinder setup Monitor
section Base
Offset of the reference frame, % No blending
Offset of the alarm reference frame, % No blending
section Source
DecoderHWAccelName vaapi

Deleted all Zones for detection.

2 cameras are setup for Record.
Remaining cameras to view (Monitor)

In this case CPU load 100%
I tried to apply the setting vaapi but there was no effect.

I can assume that for correct work vaapi need some more settings.
But I do not know which ones and I need help with this.
I also don't understand how to better configure the BIOS for video adapters. Which should be primary which secondary. Or maybe some should be disabled.

the question is off topic: why such a high load is not the weakest processor?
dougmccrary
Posts: 1336
Joined: Sat Aug 31, 2019 7:35 am
Location: San Diego

Re: Help with vaapi on Cent OS 7

Post by dougmccrary »

A couple things;
Those cams have a lot of pixels, and a high framerate may be the cause.
I suspect NO blending is not a good idea.
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Re: Help with vaapi on Cent OS 7

Post by ZMfan »

dougmccrary wrote: Tue Feb 21, 2023 12:54 am A couple things;
Those cams have a lot of pixels, and a high framerate may be the cause.
I suspect NO blending is not a good idea.
first of all, I'm trying to reduce the CPU load as much as possible. As I wrote in the first post: in such set I have a very high load on the processor. And even if I leave only three cameras on I have high load on the processor.
There is no clear description of the hardware requirements regarding the camera resolutions used.
That's why I turn off all the settings for the motion detector. And later I want to use the signal from the camera because it has its own motion analyzer built in.
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Re: Help with vaapi on Cent OS 7

Post by ZMfan »

I figured out the drivers.
installed Radeon™ Software for Linux® 18.50 only AMDGPU All-Open
After that

Code: Select all

[root@zmserver ~]# vainfo --device /dev/dri/renderD128 --display drm
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Mesa Gallium driver 18.2.0-rc3 for Radeon RX550/550 Series (POLARIS12, DRM 3.27.0, 3.10.0-1160.83.1.el7.x86_64, LLVM 7.0.1)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
But when I setup Monitor DecoderHWAccelName (?) vaapi
Try to open Monitor to view and the load on the processor is rising.
At the same time
in radeontop
before addin DecoderHWAccelName (?) vaapi

Code: Select all

9М / 2043М VRAM   0,46% │
7M / 3065M GTT   0,24% │
0,30G / 1,75G Memory Clock  17,14% │         
0,21G / 1,18G Shader Clock  18,09%
after addin DecoderHWAccelName (?) vaapi

Code: Select all

132М / 2043М VRAM   6,45% │   
38M / 3065M GTT   1,25% │ 
0,30G / 1,75G Memory Clock  17,14% 
0,58G / 1,18G Shader Clock  48,09%
I conclude that something is starting to come to the video card, but the rest of the activity does not show on the card.
When try to open Monitor to view no additional activity is displayed in radeontop except for the one described above.

perhaps the parameter DecoderHWAccelDevice should be filled in?
My version ffmpeg-3.4.12-1.el7.x86_64
I try set DecoderHWAccelDevice: /dev/dri/renderD128 and radeonsi
This did not give any changes. Based on this, what other directions can there be to search for a result?
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Re: Help with vaapi on Cent OS 7

Post by ZMfan »

raised the driver version to 20.20 and radeontop started to show the load GPU normally.
but at the same time, the load from the CPU was not particularly removed.

are amd cards worse suited for video decoding than nvidia? does anyone have any experience of comparison?
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Re: Help with vaapi on Cent OS 7

Post by ZMfan »

raised the driver version up to 21.10

I paid attention to the fact that all available 8Gb RAM was used. I added 16 Gb. but even at the same time, the entire amount of memory was slowly filled up to 100% usage.
This effect is observed only when using VAAPI. The system at startup shows consumption of about 7 GB. and after slowly 100-200mb grows until it takes up the entire amount of all RAM and the swap file. at the moment, I turned it off VAAPI on all monitors and memory consumption has stabilized.
any ideas about this?
User avatar
iconnor
Posts: 3278
Joined: Fri Oct 29, 2010 1:43 am
Location: Toronto
Contact:

Re: Help with vaapi on Cent OS 7

Post by iconnor »

hwaccel decoding is hampered by the extra copy of the image data. If we could leave it on the card, things would be much better. But instead we copy it off the card to ram, then transform it to rgba, then finally do all the other stuff. Those two steps often take more time than just decoding on the cpu.

I am working on getting rid of that second transform, but honestly at the moment hwaccel just isn't worth it.
ZMfan
Posts: 11
Joined: Thu Feb 16, 2023 4:20 pm

Re: Help with vaapi on Cent OS 7

Post by ZMfan »

need more RAM? or why is the existing one not being cleaned?

if I understand correctly, these are the consequences of using ffmpeg. And if the hwaccel decoding has such an algorithm, then it does not matter which GPU to use. and as a result, it turns out that the load from the processor is not removed?

is it possible to use the gpu to decode the video that we watch in the archive? are there such settings?
Post Reply