Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 31st August 2017, 18:55   #1  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
eedi3

https://github.com/HomeOfVapourSynth...urSynth-EEDI3/

There are two filters in this plugin, one using pure CPU and the other using OpenCL. Unfortunely one of the heavy loop can't get parallel execution on GPU (or I'm too dumb to find a way to conquer it) and still need to be executed on CPU, the OpenCL version may not necessarily run faster than pure CPU version. Anyway, here is my rough test on my E3-1230v3 and (poor) GTX 660.

AVS EEDI3 v0.9.2.1 x64
eedi3(opt=1, pure c): 1.15 fps
eedi3(opt=2, sse2): 3.81 fps

VS EEDI3 r2 x64
EEDI3(opt=1, pure c): 1.22 fps
EEDI3(opt=2, sse2): 4.19 fps
EEDI3(opt=3, sse4.1): 4.89 fps
EEDI3(opt=4, avx): 6.18 fps
EEDI3(opt=5, avx512): unavailable
EEDI3CL(opt=1, pure c): 4.88 fps
EEDI3CL(opt=2, sse2): 7.17 fps

Sample video used for benchmarking.

Last edited by HolyWu; 13th October 2017 at 08:52.
HolyWu is offline   Reply With Quote
Old 31st August 2017, 19:03   #2  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: Los Angeles, California
Posts: 2,132
with floating point support, great, the one comes with vsinstaller can rest in peace now
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated
feisty2 is offline   Reply With Quote
Old 4th October 2017, 15:19   #3  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 185
Debian 8, gcc 4.9, and I can't build it there: https://pastebin.com/km3g2hKS. If compiler is too old (most likely that), which gcc version should I use?
DJATOM is offline   Reply With Quote
Old 4th October 2017, 16:02   #4  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
Quote:
Originally Posted by DJATOM View Post
Debian 8, gcc 4.9, and I can't build it there: https://pastebin.com/km3g2hKS. If compiler is too old (most likely that), which gcc version should I use?
I guess GCC 5.x series could do the job.
HolyWu is offline   Reply With Quote
Old 13th October 2017, 09:03   #5  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
Update r2.
  • EEDI3: Add avx and avx512 instruction sets. Remove avx2 instruction set.
  • EEDI3CL: Remove sse4.1 and avx2 instruction sets.
  • Minor speed improvement.

The benchmark in the first post is revised.
HolyWu is offline   Reply With Quote
Old 15th October 2017, 18:54   #6  |  Link
edcrfv94
Registered User
 
Join Date: Apr 2015
Posts: 77
Code:
import vapoursynth as vs

core = vs.get_core(threads=0)
core.max_cache_size = 32000

c = core.std.BlankClip(width=1920, height=1080, format=vs.YUV420P8, length=2000)
c = core.eedi3m.EEDI3(c, field=0, opt=4)
c.set_output()
AMD ryzen 1950x stock

VS EEDI3 r1 x64
AVX2: 33.57fps

VS EEDI3 r2 x64
pure c: 6.14fps
sse2: 21.87fps
sse4.1: 27.58fps
AVX: 35fps
edcrfv94 is offline   Reply With Quote
Old 26th October 2017, 14:05   #7  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 185
It would be nice if eedi3cl will have dw parameter just like it implemented in nnedi3cl. In that case I can dispose of Transpose calls in my script when CL versions is used (I'm using "sclip=nnedi3 clip").
DJATOM is offline   Reply With Quote
Old 24th November 2017, 21:53   #8  |  Link
KingLir
Registered User
 
Join Date: Jan 2017
Posts: 143
I am getting the following when building on macOS (latest 10.13.1 with latest eedi3 from GitHub). Any ideas ? I will appreciate any help.

https://pastebin.com/T1TJha0D

Last edited by KingLir; 24th November 2017 at 21:57.
KingLir is offline   Reply With Quote
Old 24th November 2017, 23:00   #9  |  Link
Are_
Registered User
 
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 279
Your clang is too old, you need clang 5 or greater. If there isn't anything newer wait for it or use an older release without avx512 support.
Are_ is offline   Reply With Quote
Old 24th November 2017, 23:10   #10  |  Link
KingLir
Registered User
 
Join Date: Jan 2017
Posts: 143
Quote:
Originally Posted by Are_ View Post
Your clang is too old, you need clang 5 or greater. If there isn't anything newer wait for it or use an older release without avx512 support.
Are you sure ? It's the latest Xcode and it says (also in the log I posted above) that it's clang 900.0.38

$ clang --version
Apple LLVM version 9.0.0 (clang-900.0.38)
Target: x86_64-apple-darwin17.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
KingLir is offline   Reply With Quote
Old 24th November 2017, 23:24   #11  |  Link
Are_
Registered User
 
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 279
I use Linux and I can replicate that error only if I use clang-4.0.1, with clang-5.0.0 it builds OK.
Apple's clang will be based on vanilla clang-5.x.x probably when they change that "clang-900" version string to something higher.
Are_ is offline   Reply With Quote
Old 24th November 2017, 23:53   #12  |  Link
KingLir
Registered User
 
Join Date: Jan 2017
Posts: 143
Quote:
Originally Posted by Are_ View Post
I use Linux and I can replicate that error only if I use clang-4.0.1, with clang-5.0.0 it builds OK.
Apple's clang will be based on vanilla clang-5.x.x probably when they change that "clang-900" version string to something higher.
I see. Anyone knows how I can set it up on macOS ?
I have brew working and everything already installed.
Can't figure what command or edit I need to do for the makefile / configure....
KingLir is offline   Reply With Quote
Old 25th November 2017, 05:04   #13  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
Quote:
Originally Posted by KingLir View Post
I see. Anyone knows how I can set it up on macOS ?
I have brew working and everything already installed.
Can't figure what command or edit I need to do for the makefile / configure....
Try again with the latest commit.
HolyWu is offline   Reply With Quote
Old 25th November 2017, 08:23   #14  |  Link
KingLir
Registered User
 
Join Date: Jan 2017
Posts: 143
Quote:
Originally Posted by HolyWu View Post
Try again with the latest commit.
Thanks! all previous ones seems to fixed - now getting a new one:

$ make
CXXLD libeedi3m.la
ld: library not found for -lOpenCL
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libeedi3m.la] Error 1

Last edited by KingLir; 25th November 2017 at 14:31.
KingLir is offline   Reply With Quote
Old 25th November 2017, 18:24   #15  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
Quote:
Originally Posted by KingLir View Post
Thanks! all previous ones seems to fixed - now getting a new one:

$ make
CXXLD libeedi3m.la
ld: library not found for -lOpenCL
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libeedi3m.la] Error 1
The error is quite obvious. The linker can't find the OpenCL library. Are you sure it's installed? Or maybe you need to pass additional flags to tell the linker where it's located?
HolyWu is offline   Reply With Quote
Old 4th December 2018, 15:03   #16  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 185
Yeah, +1 for mask option.
__________________
Me on GitHub | My Telegram
PC Specs: Ryzen 3900X (no OC with 250W Air cooling), Asus ROG Crosshair Hero VII (WiFi) @ chipset x470, 32 GB RAM @ 3333MHz OC, Gigabyte RTX 2070, Kingston A1000 @ 240 GB
DJATOM is offline   Reply With Quote
Old 19th October 2017, 06:10   #17  |  Link
HolyWu
Registered User
 
HolyWu's Avatar
 
Join Date: Aug 2006
Location: Taiwan
Posts: 639
Quote:
Originally Posted by Stephen R. Savage View Post
AVX-512 code seems to work.

It looks like not all the code paths are optimized for AVX-512, as it spent some time at the AVX turbo frequency.
Thanks. Could you please try again with https://www.mediafire.com/file/tb7io.../EEDI3-test.7z and see whether it makes any difference?
HolyWu is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 18:44.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.