Page 1 of 1

2 NVIDIA Graphic Cards

Posted: Wed Apr 01, 2020 12:44 pm
by Nemesh
Here at home I have 2 Pallit KalmX GTX 1050 Ti graphic cards.
They are not SLI capable but that's not a problem because I don't play games with my computer.

Have installed the second card in the PC and ConvertXtoHD can see the both cards in: Setup -> Hardware Optimization -> Graphic Card to Use.
There I can see both GTX 1050 Ti graphic cards when I use the pulldown menu.

So I have 2 questions:

1. If I do a conversion using hardware acceleration will ConvertXtoHD use one or both cards?
2. If ConvertXtoHD uses 1 card (the one selected in setup) is it then possible to add to ConvertXtoHD the possibility to use both graphic cards at the same time. (feature request?)

The would temendously speedup the conversion time.
With regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Sat Apr 18, 2020 3:20 pm
by Nemesh
Can I please get a answer from VSO on this question?
Simple yes or no will do.

Re: 2 NVIDIA Graphic Cards

Posted: Mon Apr 20, 2020 2:59 pm
by Maggie
Hello,
One for decoding and all for encoding.
Will try to have more tech info from Jacques
Rgds,

Re: 2 NVIDIA Graphic Cards

Posted: Mon Apr 20, 2020 3:33 pm
by Nemesh
Thank you Maggie.
So one card can decode but if I have a project with (lets say 5 episodes) both cards
work simoustanly?
So not 2 NVENC processes but 4?
Am I correct?
With regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Wed Apr 22, 2020 12:42 pm
by Maggie
It will use as many cards as available yes

Re: 2 NVIDIA Graphic Cards

Posted: Wed Apr 22, 2020 1:26 pm
by Nemesh
Thanks for the fast reply Maggie.
Wiil save me a lot of time.
regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Thu Apr 23, 2020 1:10 pm
by Nemesh
Hello Maggie,

Have ordered today my second Palit GTX 1650 graphic card.
Will take a few days to arrive.
Have 1 question remaining.
In my other PC ConvertXtoHD 'sees' both graphic card (in that PC 2x Palit GTX 1050 Ti KalmX).
When I had 1 graphic card I set the number of instances to 2.
This because I want the graphic-card to do the encoding.
Now I have 2 graphic-cards, must I change the numer of instances to 4 or leave it at 2 to take advantage of both cards?
With regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Fri Apr 24, 2020 1:10 pm
by Nemesh
Made a mistake with the screenshot and number of instances.
What I would like to know: Must I set 'Maximum Simultaneous Conversion' to 4 (2 cards) or must it stay at 2?
Have attached to correct screenshot.
My appologies for the inconvience.
Regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Sat Apr 25, 2020 12:45 pm
by Nemesh
Today I received the second GTX 1650.
Remember Maggie, I told you that the GTX 1650 cards are NOT SLI.
Build it in to my computer, and started a prject for conversion using NVENC.
ConvertXtoHD sees both graphic-cars: see screesnhot1
Set the Maximum Simultanious Conversions to 4.
But then ConvertXtoHD uses 2x NVENC and 2 GPU OpenCL and NOT 4x NVENC: see screenshot 2.
With Maximum Simultanious Conversions set to 2 there is no increase in conversion-speed.

To see what was happening I also started CPUID HW Moinitor 1.41
Then also started a project with ConvertXtoHD
As you see in the screenshot only 1 card is used (red square).
The other video-card (green square) is not used.
Not matter what card I select or setting simultanois conversions, ConvertXtoHD uses only one card.
Please take a look at screenshot 3.

Am I doing something wrong?
Must I do a diffrend setting or is this a bug?
With regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Wed May 06, 2020 4:19 pm
by Nemesh
Is there anybody from VSO who can give a answer to this issue please ?
Last reply from VSO on 22 April.
Due to the reply Maggie gave me, I have bought a second graphic-card.
That costed me €182,75.
Can I please have a answer?

Re: 2 NVIDIA Graphic Cards

Posted: Wed May 06, 2020 4:40 pm
by Jacques (VSO)
Hello, sorry for the late technical answer, but this deserve a bit of explanation.

It's long but at the end there is a TL-DR; version

First of all, hardware decoding and encoding are completely independant in the source code, and they don't operate in the same way.

For the hardware decoding, it's done through DXVA2 (Direct X Video Acceleration 2) - which is a microsoft provided hardware abstraction layer.

The name of the graphic card is provided by the DXVA2 parser that return always 2 of the same name, which in fact correspond to a flavor of renderer, so it's virtual names and doesn't match real number of cards installed.

In fact, for the hardware decoding, the engine use best effort and don't explicitely select a given hardware or renderer. It uses what''s available, and if it's not, it switches to software decoder.

So for short, it ask to DXVA2 if a HW context is available, and if so and it's set to use HW decoding, it'll use it without specifically selecting a given card. The video card selection in "Hardware decoding (DXVA2)" is not important.

As a side note, on modern PC's, HW decoding is often slower than SW as it is limited by the graphic card and the HW chip doing the decoding. One can expect 50-100 Fps for decoding with HW while software decoding can easily jump to 200-500 Fps for MPEG-2 or H264 8 bits source. However, for very high definition sources (4K, 10 or 12 bits), HW decoding when available tend to work faster than SW.


For hardware encoding, things are really different. The cards are explicitely selected with a internal mechanism, and we use the encoding libraries provided by each vendor (in fact AMD or NVidia) So this one is carefully enforced and important, as contrary to the hardware decoder, HW encoder are faster than SW.

However, there is severe limits with hardware encoders:
* Almost all non professionnel video card limit the number of simultaneous HW encoding to 2

* HW video encoding is not 3D !!! It is not necessary to purchase a card with enormous number of CUDA cores or impressive 3D acceleration as they are useless for video encoding. In fact, video encoder in most graphic card is just a very small part of the graphic core, often not even embedded in the main chip but in a dedicated side chip on card. So you may have very good and fast HW video encoder in cheap video card

* It's not clear, especially with NVidia, if you have several video cards in the PC that the maximum HW encoding is (2*number of cards) - so for short adding more card may not add more HW encoding. I admit we don't have clear answer on this issue as we lack of serious investigation on the matter, because the real limiting fact in number of simultaneous conversion is that the software is still in 32 bits. Encoding, no matter it's HW or SW is memory hungry, and with the current resolutions and video format, the limit of 3 GB of RAM useable by a single 32 bits process is very fast reached.

* Nvidia drivers tend to be problematic with the memory allocation. Once a process allocate memory for HW encoding, it is never ever released even if we specifically free the memory and unload the library. In fact, the memory is allocated at the kernel level, and is never released as long as the process do exist. So, as HW conversions are completed, the available memory for the next conversion is smaller, and the memory used before can no longer be used. This lead to HW encoder failure when converting for instance a complete season of video. HW encoding work for instance up to video 8-9, and fail after because there is no more free memory available. This is particularly a problem again with 32 bits code.

So, nevertheless HW encoding usually work, it currently suffer from many design flaws and limitations, most of them due to historical reason and the need to ensure a backward compatibility.


So here is the TL-DR; conclusion:
our HW support is currently very limited for historic reason : 32 bits, use old DXVA2 for HW decoding. this practically limit the number of HW context to 2 decoder and 2 encoder, and the rest is done in SW if the number of simultaneous encoding is set to a higher limit.

So stuffing PC with extra video cards will not improve the situation as of today, and may not improve it even with 64 bits code, as we can't be sure that NVidia allow more than 2 HW encoder running at the same time (and maybe it's a kind of political limit rather than HW capabilities)

64 bits code should resolve most of the flaws and remove most of the current limitations on hardware encoding/decoding, but will not remove the limitations that the hardware providers (Nvidia, Amd, Intel) are enforcing.

Re: 2 NVIDIA Graphic Cards

Posted: Thu May 07, 2020 9:32 am
by Nemesh
Hello Jaques,

Thanks for the clear answer.
Never the less, after Maggie's reply I bought a additional card and it costed me €182.
I know you are working on a 64 bits release with will solve a lot of problems.
Would put the card I bought in my secnond PC and remove the two GTX 1050 Ti.
However, if had had this answer before I would not have bought the GTX 1650.
With much regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Thu May 07, 2020 12:27 pm
by Jacques (VSO)
I am sincerely sorry. Maggie will contact you privately to solve the issue of the unnecessary purchase .

We have in the needle a new release of ConvertX to be released in the next few days for which we have solved some weird memory issues and some problems with SSA subtitles. I'll be released in Beta in a matter of few days, it may improve the situation for HW encoding as well.

Re: 2 NVIDIA Graphic Cards

Posted: Thu May 07, 2020 5:16 pm
by Nemesh
Many thanks Jaques.
With regards,

Nemesh

Re: 2 NVIDIA Graphic Cards

Posted: Mon May 11, 2020 12:25 pm
by Maggie
FOR INFORMATION - after a deeper investigation of our tech team -

Decoding: only one card will be used for decoding (the preferred) ---- at its full potential.

Encoding: TWO CARDS (max) can be used simultaneously HOWEVER they have to be from different brands.
(ex1: one Nvidia and one ATI -> they can work simultaneously at their full potential)
(ex2: old Nvidia, new Nvidia -> only the preferred one will be used at its full potential)

Potential of Nvidia cards: https://developer.nvidia.com/video-enco ... ort-matrix
"Max # of concurrent sessions" -> number of encoders (simultaneous) for this card
"Total number of NDEC" -> number of decoders (simultaneous) for this card

Cheers,