View Full Version : mxnet : vs_mxDnCNN function
brucethemoose
25th May 2019, 11:53
FYI cu100 works fine for me. There's a CUDA 10.1 mxnet package now too, but I haven't tried it yet.
Initialization is super slow. Takes VS few minutes to initialize the script.
It takes a couple of seconds for me, but not minutes.
Mystery Keeper
25th May 2019, 23:13
It is super slow when running on CPU. Fast on GPU, but crashes VSEdit on most of videos even with 8GB VRAM.
brucethemoose
26th May 2019, 09:10
It is super slow when running on CPU. Fast on GPU, but crashes VSEdit on most of videos even with 8GB VRAM.
Block size, resolution, and the model all have an influence on VRAM usage, which might be the root of the crashing.
CUDA 10.0 and cuDNN 7.3.1 seem stable on my 6GB GPU, but I just picked all this back up after a hiatus of a few months... So time will tell, but I've processed entire videos with MSRN and VSEdit last year. You might even want to give CUDA 10.1 a shot since you have a new GPU.
Pure CPU speed might be better with the Intel MKLDNN package, but I haven't gone down that rabbit hole yet.
Mystery Keeper
10th August 2019, 14:09
I got it working, but now every denoising model produces vertical stripes on some clips and works well on others. Doesn't matter if I pad the clip or change patch_w/h.
brucethemoose
11th August 2019, 05:14
I got it working, but now every denoising model produces vertical stripes on some clips and works well on others. Doesn't matter if I pad the clip or change patch_w/h.
Does changing block size change the artifacts?
Some of the NN upscalers will pick up almost imperceptible blocking artifacts and sharpen them like crazy. I'm not sure what your source is, but it's possible that they have some kind of artifact the neural net denoiser is sniffing out.
I initially played with the denoisers, but quickly gave up and blended BM3D and KNLMeansCL instead, as they do a better job with temporal noise anyway.
ChaosKing
11th August 2019, 10:09
Does changing block size change the artifacts?
Some of the NN upscalers will pick up almost imperceptible blocking artifacts and sharpen them like crazy. I'm not sure what your source is, but it's possible that they have some kind of artifact the neural net denoiser is sniffing out.
I initially played with the denoisers, but quickly gave up and blended BM3D and KNLMeansCL instead, as they do a better job with temporal noise anyway.
Yep, I would only concentrate on sharpeners as they do a much better job compared to denoisers.
Most of the "SuperRes Zoo models" worked for me but you need to use the provided parameters. Sometimes it helps to completely restart you editor if you're testing many different models.
Mystery Keeper
11th August 2019, 17:28
Changing patch_w and patch_h AND padding to multiples of 32 doesn't help. It looks not like blocking, but like vertical stripes of distortion. I would really like to get the denoising networks to work. They're not good on their own, but do WONDERS as motion estimation reference clips for pure temporal denoising.
Mystery Keeper
15th August 2019, 21:08
The problem vanished with VapourSynth 47.2.
brucethemoose
13th October 2019, 10:39
Anyone successfully load kice's plugin with the plain mxnet python package?
I can import and run the test in the python console just fine, but I get this error every time I try to load the plugin in a script:
Failed to evaluate the script:
Python exception: Failed to load MXNet/vs_mxnet.dll. GetLastError() returned 1114.
Traceback (most recent call last):
File "src\cython\vapoursynth.pyx", line 1946, in vapoursynth.vpy_evaluateScript
File "src\cython\vapoursynth.pyx", line 1947, in vapoursynth.vpy_evaluateScript
File "C:/Code/Python/VSSuperRes Helper/Test/VapourSynth64Portable/VapourSynthScripts/ProcessImagesAuto.vpy", line 7, in
core.std.LoadPlugin(r'MXNet/vs_mxnet.dll', altsearchpath=True)
File "src\cython\vapoursynth.pyx", line 1852, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load MXNet/vs_mxnet.dll. GetLastError() returned 1114.
Happened across 2 fresh VapourSynth installs (one portable, one installed), tried it with mxnet 1.4, 1.5, and 1.6.
"1114" seems to be (https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--1000-1299-) "A dynamic link library (DLL) initialization routine failed" error. ChaosKing very helpfully pointed me towards something (https://github.com/brechtsanders/pedeps) for finding .dll dependencies, but it isn't finding anything at all for vs_mxnet.dll... I guess I could try rolling back VapourSynth to a early 2019 version?
ChaosKing
13th October 2019, 10:45
A quick google shows that error 1114 has to do something with "switchable dynamic graphics". Try to set it to max performance and see if it helps https://youtu.be/wHsLWvwSfgo?t=123
Another thing to try is to run your app as admin.
brucethemoose
13th October 2019, 16:18
A quick google shows that error 1114 has to do something with "switchable dynamic graphics". Try to set it to max performance and see if it helps https://youtu.be/wHsLWvwSfgo?t=123
Another thing to try is to run your app as admin.
Tried admin. And it's an AMD APU, nothing to switch. :(
Maybe CUDA is a hard requirement, even though it has a switch to change devices. I could've sworn I ran the plugin on the CPU before, but maybe I'm remembering the Waifu2x OpenCL plugin...
Mystery Keeper
7th April 2021, 02:34
Got myself RTX 3090 and cannot make vs_mxnet work anymore.
"Python exception: mxnet: Invalid MXNet Predictor: Please Try to Upgrade MXNet."
Windows 10.
Tried with mxnet-cu101 and cu102 ver 1.5 with respective CUDA. Then installed CUDA 11.2 and built mxnet 2.0 from sources. Result is the same.
WolframRhodium
7th April 2021, 15:26
Does "import mxnet" and following example code from vs_mxnet's test works?
RTX 3090 requires at least CUDA 11.1. There is pre-built binary for cu112 of MXNet.
Mystery Keeper
7th April 2021, 16:02
I have recompiled mxnet with CUDA 11.2.
Yes, the example works.
I couldn't find prebuilt cu112 for Windows.
The best pip gets is cu102, version 1.5.
upd: One little correction. Example works, but with this notice:
>>> a = mx.nd.ones((2,3), mx.gpu())
>>> [18:06:07] F:\git\incubator-mxnet\src\storage\storage.cc:199: Using Pooled (Naive) StorageManager for GPU
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.