This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

QTGMC vapoursynth opencl device
#1
hi,
is there a way to specify a opencl device instead of the default one (i have 2 devices - intel and nvidia and i want to use nvidia one)
Reply
#2
QTGMC for Vapoursynth has the following parameters:
QTGMC(Input, Preset='Slower', TR0=None, TR1=None, TR2=None, Rep0=None, Rep1=0, Rep2=None, EdiMode=None, RepChroma=True, NNSize=None, NNeurons=None, EdiQual=1, EdiMaxD=None, ChromaEdi='', EdiExt=None, Sharpness=None, SMode=None, SLMode=None, SLRad=None, SOvs=0, SVThin=0., Sbb=None, SrchClipPP=None, SubPel=None, SubPelInterp=2, BlockSize=None, Overlap=None, Search=None, SearchParam=None, PelSearch=None, ChromaMotion=None, TrueMotion=False, Lambda=None, LSAD=None, PNew=None, PLevel=None, GlobalMotion=True, DCT=0, ThSAD1=640, ThSAD2=256, ThSCD1=180, ThSCD2=98, SourceMatch=0, MatchPreset=None, MatchEdi=None, MatchPreset2=None, MatchEdi2=None, MatchTR2=1, MatchEnhance=0.5, Lossless=0, NoiseProcess=None, EZDenoise=None, EZKeepGrain=None,  NoisePreset='Fast', Denoiser=None, FftThreads=1, DenoiseMC=None, NoiseTR=None, Sigma=None, ChromaNoise=False, ShowNoise=0., GrainRestore=None, NoiseRestore=None, NoiseDeint=None, StabilizeNoise=None, InputType=0, ProgSADMask=None, FPSDivisor=1, ShutterBlur=0, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=4, Border=False, Precise=None, Tuning='None', howSettings=False, ForceTR=0, TFF=None, pscrn=None, int16_prescreener=None, int16_predictor=None, exp=None, alpha=None, beta=None, gamma=None, nrad=None, vcheck=None, opencl=False)
see https://github.com/HomeOfVapourSynthEvol...avsfunc.py, line 682+
so as you can see by default this is not possible. (which is why Hybrid doesn't support it)

That said, looking through the source code using openCL will use core.nnedi3cl.NNEDI3CL and core.eedi3m.EEDI3CL.

Looking at those filters:
NNECI3CL:
nnedi3cl.NNEDI3CL(clip, int field[, bint dh=False, bint dw=False, int[] planes, int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, int device=-1, bint list_device=False, bint info=False]
see: https://github.com/HomeOfVapourSynthEvol...h-NNEDI3CL
EEDI3CL:
edi3m.EEDI3CL(clip clip, int field[, bint dh=False, int[] planes, float alpha=0.2, float beta=0.25, float gamma=20.0, int nrad=2, int mdis=20, bint hp=False, bint ucubic=True, bint cost3=True, int vcheck=2, float vthresh0=32.0, float vthresh1=64.0, float vthresh2=4.0, clip sclip=None, int opt=0, int device=-1, bint list_device=False, bint info=False])
both with:
device: Sets target OpenCL device. Use list_device to get the index of the available devices. By default the default device is selected.
this could be added.

=> So atm. the default graphic card will be used. If your NVIDIA card is the default it will be used otherwise the intel card will be used.

QTGMC could be adjusted to use a specific graphic card.
I created an issue inside the havsfunc repository (https://github.com/HomeOfVapourSynthEvol.../issues/12) asking the maintainer of havsfunc to add this.
Yes, I could add this myself, but it would be a pain to always remember it whenever havsfunc changes.
-> in case Holy (the maintainer) won't add this I might create a custom version of it, but I'd prefer to avoid it.

Cu Selur
Reply
#3
Good news, Holy adjusted havsfunc to support device selection.
-> will add support for it in Hybrid with the next release.
(will send you a link to a dev version for testing once I find time to adjust Hybrid)

Cu Selur
Reply
#4
Thumbs Up 
hohoho so quick response sir ...

thanks a lot

(14.04.2018, 11:40)Selur Wrote: QTGMC for Vapoursynth has the following parameters:
QTGMC(Input, Preset='Slower', TR0=None, TR1=None, TR2=None, Rep0=None, Rep1=0, Rep2=None, EdiMode=None, RepChroma=True, NNSize=None, NNeurons=None, EdiQual=1, EdiMaxD=None, ChromaEdi='', EdiExt=None, Sharpness=None, SMode=None, SLMode=None, SLRad=None, SOvs=0, SVThin=0., Sbb=None, SrchClipPP=None, SubPel=None, SubPelInterp=2, BlockSize=None, Overlap=None, Search=None, SearchParam=None, PelSearch=None, ChromaMotion=None, TrueMotion=False, Lambda=None, LSAD=None, PNew=None, PLevel=None, GlobalMotion=True, DCT=0, ThSAD1=640, ThSAD2=256, ThSCD1=180, ThSCD2=98, SourceMatch=0, MatchPreset=None, MatchEdi=None, MatchPreset2=None, MatchEdi2=None, MatchTR2=1, MatchEnhance=0.5, Lossless=0, NoiseProcess=None, EZDenoise=None, EZKeepGrain=None,  NoisePreset='Fast', Denoiser=None, FftThreads=1, DenoiseMC=None, NoiseTR=None, Sigma=None, ChromaNoise=False, ShowNoise=0., GrainRestore=None, NoiseRestore=None, NoiseDeint=None, StabilizeNoise=None, InputType=0, ProgSADMask=None, FPSDivisor=1, ShutterBlur=0, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=4, Border=False, Precise=None, Tuning='None', howSettings=False, ForceTR=0, TFF=None, pscrn=None, int16_prescreener=None, int16_predictor=None, exp=None, alpha=None, beta=None, gamma=None, nrad=None, vcheck=None, opencl=False)
see https://github.com/HomeOfVapourSynthEvol...avsfunc.py, line 682+
so as you can see by default this is not possible. (which is why Hybrid doesn't support it)

That said, looking through the source code using openCL will use core.nnedi3cl.NNEDI3CL and core.eedi3m.EEDI3CL.

Looking at those filters:
NNECI3CL:
nnedi3cl.NNEDI3CL(clip, int field[, bint dh=False, bint dw=False, int[] planes, int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, int device=-1, bint list_device=False, bint info=False]
see: https://github.com/HomeOfVapourSynthEvol...h-NNEDI3CL
EEDI3CL:
edi3m.EEDI3CL(clip clip, int field[, bint dh=False, int[] planes, float alpha=0.2, float beta=0.25, float gamma=20.0, int nrad=2, int mdis=20, bint hp=False, bint ucubic=True, bint cost3=True, int vcheck=2, float vthresh0=32.0, float vthresh1=64.0, float vthresh2=4.0, clip sclip=None, int opt=0, int device=-1, bint list_device=False, bint info=False])
both with:
device: Sets target OpenCL device. Use list_device to get the index of the available devices. By default the default device is selected.
this could be added.

=> So atm. the default graphic card will be used. If your NVIDIA card is the default it will be used otherwise the intel card will be used.

QTGMC could be adjusted to use a specific graphic card.
I created an issue inside the havsfunc repository (https://github.com/HomeOfVapourSynthEvol.../issues/12) asking the maintainer of havsfunc to add this.
Yes, I could add this myself, but it would be a pain to always remember it whenever havsfunc changes.
-> in case Holy (the maintainer) won't add this I might create a custom version of it, but I'd prefer to avoid it.

Cu Selur

i i have red this this is a reason for my question.

now i have another one - how to use dgindexnv and im libs with vapoursync? tried to copy them near anywhere ...
Reply
#5
Quote:now i have another one - how to use dgindexnv and im libs with vapoursync? tried to copy them near anywhere ...
?im libs? <- no clue what you want to say,.. lost in translation Smile
vapoursync <- I suspect you mean Vapoursynth

To use DGDecNV:
  1. the DGNV files:
    • DGDecodeNV.dll
    • DGIndexNV.exe
    • license.txt
  2. need to be placed into the 'Hybrid\64bit\vsfilters\SourceFilter\DGDecNV' folder.
  3. 'Filtering->Vapoursynth->Misc->Input->Use DGDevNV when avaialable' needs to be enable

Cu Selur
Reply
#6
Send you dev version for testing which allows to set the openCL device for QTGMC.

Cu Selur
Reply
#7
i mean dgindexim  variant
Reply
#8
Hybrid will look for the DGIm files in 'Hybrid\64bit\vsfilters\SourceFilter\DGDecIM', so you need to place them an the license.txt there and enable 'Filtering->Vapoursynth->Misc->Input->Use DGDevIM when available'.

Cu Selur
Reply
#9
looks working fine,
now with dgindex nv the encoding speed together with deinterlace is 17 fps instead of 5

thx
Reply
#10
it seems that opencl qtgmc part is not running on nvidia for some reasons. but i can combine decode on nvidia and deinterlace on intel ...
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)