Log in

View Full Version : KNLMeansCL: OpenCL NLMeans de-noising algorithm [2018-01-29]


Pages : 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Xebika
12th November 2015, 17:18
I can't get it to work with both the newest Nvidia driver for my GeForce GTX 960 in Win 10 x64 because it crashes, i also tried replace with the included DLL from the v0.7.3 release.

And tried with an older version of the driver but the same result.

Khanattila
12th November 2015, 19:04
I can't get it to work with both the newest Nvidia driver for my GeForce GTX 960 in Win 10 x64 because it crashes, i also tried replace with the included DLL from the v0.7.3 release.

And tried with an older version of the driver but the same result.

Some more details? I tried a GTX 760 in Win 10 x64 and seems to work.

Xebika
13th November 2015, 06:10
Which details do you need??

Khanattila
13th November 2015, 10:13
Which details do you need??

VapourSynth or AviSynth? Which version? Script used? Crashes without giving some error code?

I also need a report by GPU Caps Viewer 1.25.0: http://www.geeks3d.com/20150821/gpu-caps-viewer-1-25-0-gpu-information-utility-opengl-opencl-cuda/
(tool -> export data -> http://pastebin.com/hF6F59Ks)

Can be any type of error.
Have you tried to do a clean installation of the drivers?

PS. Previous versions of KNLMeansCL will work? Probably I forgot something. :D

Khanattila
13th November 2015, 17:11
That's odd, it also works on my work computer. Last time I had problems with KNLMeansCL (http://forum.doom9.org/showthread.php?t=171379&page=26#post1742841) my home computer worked but not my work computer :confused:. If it's a driver issues, it's kinda weird that it works in 32-bit but not 64-bit. Anyways when I get home I'll update drivers and report back.

Edit: It turned out out to be a drive issue. Sorry for another false alarm :o. The drivers were not that outdated but I guess it requires the latest and greatest.

Only NVIDIA requires a recent driver and the last ones are only for marketing.

Xebika
13th November 2015, 19:54
VapourSynth or AviSynth? Which version? Script used? Crashes without giving some error code?

I also need a report by GPU Caps Viewer 1.25.0: http://www.geeks3d.com/20150821/gpu-caps-viewer-1-25-0-gpu-information-utility-opengl-opencl-cuda/
(tool -> export data -> http://pastebin.com/hF6F59Ks)

Can be any type of error.
Have you tried to do a clean installation of the drivers?

PS. Previous versions of KNLMeansCL will work? Probably I forgot something. :D

AviSynth 2.6 x86

I think maybe it approaches freezes then crash, and didn't have any choices then close it

Script:
DGSource("C:\Video\Video.dgi",fieldop=0, deinterlace=1)
crop(18, 36, -10, -8)
Spline36Resize(768,576) # Spline36 (Neutral)
Levels(5, 1, 255, 0, 255)
SmoothContrast(contrast=0.1, sat=0.2)
LSFmod(defaults="slow")
KNLMeansCL(D=1, A=1, h=4.5)

GPU Caps Viewer Report: http://pastebin.com/5DPK2Wqt

I have tried both clean installation of windows and drivers

Last working release is v0.6.11

Khanattila
13th November 2015, 22:20
AviSynth 2.6 x86

I think maybe it approaches freezes then crash, and didn't have any choices then close it

Script:
DGSource("C:\Video\Video.dgi",fieldop=0, deinterlace=1)
crop(18, 36, -10, -8)
Spline36Resize(768,576) # Spline36 (Neutral)
Levels(5, 1, 255, 0, 255)
SmoothContrast(contrast=0.1, sat=0.2)
LSFmod(defaults="slow")
KNLMeansCL(D=1, A=1, h=4.5)

GPU Caps Viewer Report: http://pastebin.com/5DPK2Wqt

I have tried both clean installation of windows and drivers

Last working release is v0.6.11

Since I updated OpenCL APIs from 1.1 to 1.2 you have these problems... Thank you NVIDIA. I have to investigate a bit.

Khanattila
19th November 2015, 17:46
AviSynth 2.6 x86

I think maybe it approaches freezes then crash, and didn't have any choices then close it

Script:
DGSource("C:\Video\Video.dgi",fieldop=0, deinterlace=1)
crop(18, 36, -10, -8)
Spline36Resize(768,576) # Spline36 (Neutral)
Levels(5, 1, 255, 0, 255)
SmoothContrast(contrast=0.1, sat=0.2)
LSFmod(defaults="slow")
KNLMeansCL(D=1, A=1, h=4.5)

GPU Caps Viewer Report: http://pastebin.com/5DPK2Wqt

I have tried both clean installation of windows and drivers

Last working release is v0.6.11

Since I updated OpenCL APIs from 1.1 to 1.2 you have these problems... Thank you NVIDIA. I have to investigate a bit.

I do not see anything strange (https://www.diffchecker.com/npvultsy)...
You could try running "OpenCL Device Query (https://developer.nvidia.com/opencl)" and post the results.

Xebika
19th November 2015, 18:06
I do not see anything strange (https://www.diffchecker.com/npvultsy)...
You could try running "OpenCL Device Query (https://developer.nvidia.com/opencl)" and post the results.


Here: http://pastebin.com/6Ey7bPuA

Khanattila
19th November 2015, 23:12
Here: http://pastebin.com/6Ey7bPuA

It really is a problem that I do not understand.

You can try this last attempt: replace "C:\Windows\System32\OpenCL.dll" with "C:\Program Files\NVIDIA Corporation\OpenCL\OpenCL.dll".

Also you can this program (http://www.dependencywalker.com/) to see if there are all dependencies files.

In some configurations is not used OpenCL.dll in the System32 folder.

(File ==> Open ==> KNLMeansCL.dll)

Razinal
20th November 2015, 09:43
Hi,

First of all thanks for all your hard work.

I use a Acer Aspire E5-573G-79EK which means 5500U cpu and 940M gpu with 8GB of ram.

I also have Win 10 Th2 10586.11 and latest 390.00 nvidia drivers.
before upgrading to TH2 I had no problem using Avisynth+ r1779,KNLMeansCL v0.6.11, latest K-lite codec and your plugin in Avisynth part of 'ffdshow raw video filter' to denoise my videos in real-time.

however after upgrading I get a 'KNLMeansCL: Fatal Error! (clSetKernelArg)' OSDed on my video in top left corner even when using KNLMeansCL v0.7.3.

I've tried using OpenCL.dll provided in latest version of your plugin and backuping/replacing my original 'OpenCL.dll's in System32/SysWOW64 and "C:\Program Files\NVIDIA Corporation\OpenCL" but same error persists.

any other info I can give to help you?

Khanattila
20th November 2015, 12:11
Hi,

First of all thanks for all your hard work.

I use a Acer Aspire E5-573G-79EK which means 5500U cpu and 940M gpu with 8GB of ram.

I also have Win 10 Th2 10586.11 and latest 390.00 nvidia drivers.
before upgrading to TH2 I had no problem using Avisynth+ r1779,KNLMeansCL v0.6.11, latest K-lite codec and your plugin in Avisynth part of 'ffdshow raw video filter' to denoise my videos in real-time.

however after upgrading I get a 'KNLMeansCL: Fatal Error! (clSetKernelArg)' OSDed on my video in top left corner even when using KNLMeansCL v0.7.3.

I've tried using OpenCL.dll provided in latest version of your plugin and backuping/replacing my original 'OpenCL.dll's in System32/SysWOW64 and "C:\Program Files\NVIDIA Corporation\OpenCL" but same error persists.

any other info I can give to help you?
That's something I can work about.
Try this (http://www.mediafire.com/download/fm97um9eppm91tc/KNLMeansCL-v0.7.3-1.zip). It will give you a more specific error.

Razinal
20th November 2015, 13:29
That's something I can work about.
Try this (http://www.mediafire.com/download/fm97um9eppm91tc/KNLMeansCL-v0.7.3-1.zip). It will give you a more specific error.

the error this time for just 'KNLMeansCL()' is as follows:
KNLMeansCL: fatal error! (clSetKernelArg(nlmunpack): CL_INVALID_ARG_VALUE) (ffdshow_filter_avisynth_script, line2)

EDIT: here's OpenCL Device Query if you need it: PasteBin (http://pastebin.com/yw99ksLe)
EDIT2: just wanted to say I AM using win 10 TH2 and OCL Device Query shouldn't give my as Windows Ver as 6.2 but whatever...

Xebika
20th November 2015, 13:58
I get same error now.

Khanattila
20th November 2015, 17:21
the error this time for just 'KNLMeansCL()' is as follows:
KNLMeansCL: fatal error! (clSetKernelArg(nlmunpack): CL_INVALID_ARG_VALUE) (ffdshow_filter_avisynth_script, line2)

EDIT: here's OpenCL Device Query if you need it: PasteBin (http://pastebin.com/yw99ksLe)
EDIT2: just wanted to say I AM using win 10 TH2 and OCL Device Query shouldn't give my as Windows Ver as 6.2 but whatever...

I get same error now.
I think it's a problem of NVIDIA, but let's try a workaround.
Second attempt (http://www.mediafire.com/download/rdar2t7144y2tmt/KNLMeansCL-v0.7.3-2.zip).

Xebika
20th November 2015, 17:34
New error: KNLMeansCL: fatal error! (clSetKernelArg(nlmUnpack-mem-out): CL_INVALID_ARG_VALUE)

Khanattila
20th November 2015, 17:52
New error: KNLMeansCL: fatal error! (clSetKernelArg(nlmUnpack-mem-out): CL_INVALID_ARG_VALUE)

Could you tell me if with 'd = 0' or 'd = 1' the error is the same?

Xebika
20th November 2015, 17:55
Yes i got the same error with 'd = 0'

Khanattila
20th November 2015, 18:52
KNLMeansCL-v0.7.3-3.zip (http://www.mediafire.com/download/cg63hppal0wbuiq/KNLMeansCL-v0.7.3-3.zip)

Xebika
20th November 2015, 19:20
v0.7.3-3 + DGIndexIM = Works Again

v0.7.3-3 + DGIndexNV = Freezes Again

Razinal
21st November 2015, 16:13
KNLMeansCL-v0.7.3-3.zip (http://www.mediafire.com/download/cg63hppal0wbuiq/KNLMeansCL-v0.7.3-3.zip)

this one solved the problem for me, :thanks: :)

Khanattila
23rd November 2015, 16:36
v0.7.3-3 + DGIndexIM = Works Again

v0.7.3-3 + DGIndexNV = Freezes Again

I could roll the dice until you get the winning combination ... but the cases are too many.

The thing is postponed until I have (perhaps) a NVIDIA GTX 900.

Khanattila
23rd November 2015, 17:23
this one solved the problem for me, :thanks: :)

Very good. I make it public.

https://github.com/Khanattila/KNLMeansCL/releases/tag/v0.7.4

KNLMeansCL v0.7.4
* Workaround for GeForce 900 Series.

feisty2
16th December 2015, 16:33
Can you add "vcomp" and "center" parameters from xnlmeans?
They are pretty useful to remove compression artifacts

feisty2
31st December 2015, 16:42
any news about "vcomp" and "center"?

Khanattila
1st January 2016, 14:33
any news about "vcomp" and "center"?

I just started working on it

feisty2
1st January 2016, 16:04
good to know! :)
KNLMeansCL has definitely become one of my must have filters

MysteryX
1st January 2016, 17:38
good to know! :)
KNLMeansCL has definitely become one of my must have filters
Agree.

Are_
1st January 2016, 19:03
I just want to say too that this filter is really wonderful, and that I'm really grateful you ported it to vapoursynth. :)

sl1pkn07
2nd January 2016, 00:04
I just want to say too that this filter is really wonderful, and that I'm really grateful you ported it to vapoursynth. :)

and linux!!

edcrfv94
2nd January 2016, 04:45
When s set more then 4 will stopped working
Like:core.knlm.KNLMeansCL(src, d=2, a=2, s=6, h=0.4,device_type="GPU")

[Window Title]
VapourSynth Editor

[Main Instruction]
VapourSynth Editor has stopped working

[Content]
A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.

[Close program]

Test
v0.7.4
v0.7.3
v0.7.2
v0.7.0
v0.6.11
All same

gtx670 359.06

feisty2
2nd January 2016, 07:15
When s set more then 4 will stopped working


"s" gotta be an integer in [0, 4]

Khanattila
11th January 2016, 17:47
When s set more then 4 will stopped working
Like:core.knlm.KNLMeansCL(src, d=2, a=2, s=6, h=0.4,device_type="GPU")

[Window Title]
VapourSynth Editor

[Main Instruction]
VapourSynth Editor has stopped working

[Content]
A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available.

[Close program]

Test
v0.7.4
v0.7.3
v0.7.2
v0.7.0
v0.6.11
All same

gtx670 359.06

"s" gotta be an integer in [0, 4]

yep, a missing arg-check in vapoursynth version.

MaxitoHP
11th January 2016, 23:26
I am new here so sorry if I do easy questions.
I have been told that KNLMeansCL is probably today the best denoiser, so I want to start using it.
I have downloaded v0.7.4 and I see there are two KNLMeansCL.dll files on the .rar file, one on the main and one into x64 folder.
1) Which one should I use?
2) Where should I place this .dll? Into MeGUI/tools/avysynth_plugin?

My card is a NVIDIA GeForce GT 545 with controller 347.25. I see on the requirements about a GT 640 or higher, so my one is lower...
3) Do you think it can work on my system?
I have downloaded a more updated controller (361.43 WHQL), but I prefer not to change anything if KNLMeansCL will not work on my system.

On the README file it is written "For maximum performance the plugin should run on the GPU"...
4) does this mean I have to install somthing on the NVIDIA folder?

Finally, for a 10-15 years old film, with medium grain:
5) what is the recommended configuration for a 1080p encoding?

Thanks,
MaxitoHP

MysteryX
12th January 2016, 01:32
I am new here so sorry if I do easy questions.
I have been told that KNLMeansCL is probably today the best denoiser, so I want to start using it.
I have downloaded v0.7.4 and I see there are two KNLMeansCL.dll files on the .rar file, one on the main and one into x64 folder.
1) Which one should I use?
2) Where should I place this .dll? Into MeGUI/tools/avysynth_plugin?
These are basic AviSynth questions that are not about KnlMeans. I'd suggest reading about the basics of AviSynth and first running simple demonstration scripts. The x64 file is when using a 64-bit version of AviSynth, which you probably aren't otherwise you'd know what that is, so just use the regular DLL.

My card is a NVIDIA GeForce GT 545 with controller 347.25. I see on the requirements about a GT 640 or higher, so my one is lower...
3) Do you think it can work on my system?

The latest version requires OpenCL v1.2 which is not supported by all graphic cards. If your card doesn't support it, use an older version (6.11 I believe) that works with OpenCL v1.1

kalehrl
12th January 2016, 14:36
I am new here so sorry if I do easy questions.
I have been told that KNLMeansCL is probably today the best denoiser, so I want to start using it.
I have downloaded v0.7.4 and I see there are two KNLMeansCL.dll files on the .rar file, one on the main and one into x64 folder.
1) Which one should I use?
2) Where should I place this .dll? Into MeGUI/tools/avysynth_plugin?

My card is a NVIDIA GeForce GT 545 with controller 347.25. I see on the requirements about a GT 640 or higher, so my one is lower...
3) Do you think it can work on my system?
I have downloaded a more updated controller (361.43 WHQL), but I prefer not to change anything if KNLMeansCL will not work on my system.

On the README file it is written "For maximum performance the plugin should run on the GPU"...
4) does this mean I have to install somthing on the NVIDIA folder?

Finally, for a 10-15 years old film, with medium grain:
5) what is the recommended configuration for a 1080p encoding?

Thanks,
MaxitoHP
1) You probably have x86 avisynth so use the file in the main directory which is x86 one.
2) Put it in C:\Program Files (x86)\AviSynth\plugins
3) Try it. I dunno.
4) No.
5) According to taste. Try with the default settings: KNLMeansCL () If you want stronger denosing, try changing the 'h' value. The default is 1.2 so try something like KNLMeansCL (h=2)

Khanattila
12th January 2016, 16:14
NVIDIA GeForce 500 series is dead, try v0.6.11 version.

MaxitoHP
12th January 2016, 23:25
Thank you very much for the three of you that has responded. I have downloaded v0.6.11 and will try to check it without updating the controller of my GeForce.

Atak_Snajpera
30th January 2016, 15:41
Small suggestion regarding device_type="AUTO".
This option should also check whether GPU supports OpenCL 1.2 or not.
My Radeon 4850 is too old for gpu acceleration even with v0.6.11 due to CL_DEVICE_IMAGE_SUPPORT = 0. In this case plugin should automatically switch to CPU mode.

C:\Users\Dave\Desktop\NVIDIA GPU Computing SDK\OpenCL\bin\Win32\Release\oclDeviceQuery.exe Starting...

OpenCL SW Info:

WARNING: NVIDIA OpenCL platform not found - defaulting to first platform!

CL_PLATFORM_NAME: AMD Accelerated Parallel Processing
CL_PLATFORM_VERSION: OpenCL 1.2 AMD-APP (937.2)
OpenCL SDK Revision: 7027912


OpenCL Device Info:

2 devices found supporting OpenCL:

---------------------------------
Device ATI RV770
---------------------------------
CL_DEVICE_NAME: ATI RV770
CL_DEVICE_VENDOR: Advanced Micro Devices, Inc.
CL_DRIVER_VERSION: CAL 1.4.1734
CL_DEVICE_VERSION: OpenCL 1.0 AMD-APP (937.2)
CL_DEVICE_TYPE: CL_DEVICE_TYPE_GPU
CL_DEVICE_MAX_COMPUTE_UNITS: 10
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 256 / 256 / 256
CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
CL_DEVICE_MAX_CLOCK_FREQUENCY: 625 MHz
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 128 MByte
CL_DEVICE_GLOBAL_MEM_SIZE: 256 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT: no
CL_DEVICE_LOCAL_MEM_TYPE: global
CL_DEVICE_LOCAL_MEM_SIZE: 16 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64 KByte
CL_DEVICE_QUEUE_PROPERTIES: CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT: 0
CL_DEVICE_MAX_READ_IMAGE_ARGS: 0
CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 0
CL_DEVICE_SINGLE_FP_CONFIG: INF-quietNaNs round-to-nearest round-to-zero round-to-inf fma

CL_DEVICE_IMAGE <dim> 2D_MAX_WIDTH 0
2D_MAX_HEIGHT 0
3D_MAX_WIDTH 0
3D_MAX_HEIGHT 0
3D_MAX_DEPTH 0

CL_DEVICE_EXTENSIONS: cl_khr_fp64
cl_amd_fp64
cl_khr_gl_sharing
cl_amd_device_attribute_query
cl_khr_d3d10_sharing

CL_DEVICE_PREFERRED_VECTOR_WIDTH_<t> CHAR 16, SHORT 8, INT 4, LONG 2, FLOAT 4, DOUBLE 2


---------------------------------
Device Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
---------------------------------
CL_DEVICE_NAME: Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
CL_DEVICE_VENDOR: GenuineIntel
CL_DRIVER_VERSION: 2.0 (sse2,avx)
CL_DEVICE_VERSION: OpenCL 1.2 AMD-APP (937.2)
CL_DEVICE_OPENCL_C_VERSION: OpenCL C 1.2
CL_DEVICE_TYPE: CL_DEVICE_TYPE_CPU
CL_DEVICE_MAX_COMPUTE_UNITS: 16
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 1024 / 1024 / 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024
CL_DEVICE_MAX_CLOCK_FREQUENCY: 2901 MHz
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1024 MByte
CL_DEVICE_GLOBAL_MEM_SIZE: 2048 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT: no
CL_DEVICE_LOCAL_MEM_TYPE: global
CL_DEVICE_LOCAL_MEM_SIZE: 32 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64 KByte
CL_DEVICE_QUEUE_PROPERTIES: CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT: 1
CL_DEVICE_MAX_READ_IMAGE_ARGS: 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 8
CL_DEVICE_SINGLE_FP_CONFIG: denorms INF-quietNaNs round-to-nearest round-to-zero round-to-inf fma

CL_DEVICE_IMAGE <dim> 2D_MAX_WIDTH 8192
2D_MAX_HEIGHT 8192
3D_MAX_WIDTH 2048
3D_MAX_HEIGHT 2048
3D_MAX_DEPTH 2048

CL_DEVICE_EXTENSIONS: cl_khr_fp64
cl_amd_fp64
cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics
cl_khr_byte_addressable_store
cl_khr_gl_sharing
cl_ext_device_fission
cl_amd_device_attribute_query
cl_amd_vec3
cl_amd_printf
cl_amd_media_ops
cl_amd_popcnt
cl_khr_d3d10_sharing

CL_DEVICE_PREFERRED_VECTOR_WIDTH_<t> CHAR 16, SHORT 8, INT 4, LONG 2, FLOAT 4, DOUBLE 0


---------------------------------
2D Image Formats Supported (80)
---------------------------------
# Channel Order Channel Type

1 CL_R CL_SNORM_INT8
2 CL_R CL_SNORM_INT16
3 CL_R CL_UNORM_INT8
4 CL_R CL_UNORM_INT16
5 CL_R CL_SIGNED_INT8
6 CL_R CL_SIGNED_INT16
7 CL_R CL_SIGNED_INT32
8 CL_R CL_UNSIGNED_INT8
9 CL_R CL_UNSIGNED_INT16
10 CL_R CL_UNSIGNED_INT32
11 CL_R CL_HALF_FLOAT
12 CL_R CL_FLOAT
13 CL_A CL_SNORM_INT8
14 CL_A CL_SNORM_INT16
15 CL_A CL_UNORM_INT8
16 CL_A CL_UNORM_INT16
17 CL_A CL_SIGNED_INT8
18 CL_A CL_SIGNED_INT16
19 CL_A CL_SIGNED_INT32
20 CL_A CL_UNSIGNED_INT8
21 CL_A CL_UNSIGNED_INT16
22 CL_A CL_UNSIGNED_INT32
23 CL_A CL_HALF_FLOAT
24 CL_A CL_FLOAT
25 CL_RG CL_SNORM_INT8
26 CL_RG CL_SNORM_INT16
27 CL_RG CL_UNORM_INT8
28 CL_RG CL_UNORM_INT16
29 CL_RG CL_SIGNED_INT8
30 CL_RG CL_SIGNED_INT16
31 CL_RG CL_SIGNED_INT32
32 CL_RG CL_UNSIGNED_INT8
33 CL_RG CL_UNSIGNED_INT16
34 CL_RG CL_UNSIGNED_INT32
35 CL_RG CL_HALF_FLOAT
36 CL_RG CL_FLOAT
37 CL_RGBA CL_SNORM_INT8
38 CL_RGBA CL_SNORM_INT16
39 CL_RGBA CL_UNORM_INT8
40 CL_RGBA CL_UNORM_INT16
41 CL_RGBA CL_SIGNED_INT8
42 CL_RGBA CL_SIGNED_INT16
43 CL_RGBA CL_SIGNED_INT32
44 CL_RGBA CL_UNSIGNED_INT8
45 CL_RGBA CL_UNSIGNED_INT16
46 CL_RGBA CL_UNSIGNED_INT32
47 CL_RGBA CL_HALF_FLOAT
48 CL_RGBA CL_FLOAT
49 CL_ARGB CL_SNORM_INT8
50 CL_ARGB CL_UNORM_INT8
51 CL_ARGB CL_SIGNED_INT8
52 CL_ARGB CL_UNSIGNED_INT8
53 CL_BGRA CL_SNORM_INT8
54 CL_BGRA CL_UNORM_INT8
55 CL_BGRA CL_SIGNED_INT8
56 CL_BGRA CL_UNSIGNED_INT8
57 CL_LUMINANCE CL_SNORM_INT8
58 CL_LUMINANCE CL_SNORM_INT16
59 CL_LUMINANCE CL_UNORM_INT8
60 CL_LUMINANCE CL_UNORM_INT16
61 CL_LUMINANCE CL_HALF_FLOAT
62 CL_LUMINANCE CL_FLOAT
63 CL_INTENSITY CL_SNORM_INT8
64 CL_INTENSITY CL_SNORM_INT16
65 CL_INTENSITY CL_UNORM_INT8
66 CL_INTENSITY CL_UNORM_INT16
67 CL_INTENSITY CL_HALF_FLOAT
68 CL_INTENSITY CL_FLOAT
69 CL_RA CL_SNORM_INT8
70 CL_RA CL_SNORM_INT16
71 CL_RA CL_UNORM_INT8
72 CL_RA CL_UNORM_INT16
73 CL_RA CL_SIGNED_INT8
74 CL_RA CL_SIGNED_INT16
75 CL_RA CL_SIGNED_INT32
76 CL_RA CL_UNSIGNED_INT8
77 CL_RA CL_UNSIGNED_INT16
78 CL_RA CL_UNSIGNED_INT32
79 CL_RA CL_HALF_FLOAT
80 CL_RA CL_FLOAT

---------------------------------
3D Image Formats Supported (80)
---------------------------------
# Channel Order Channel Type

1 CL_R CL_SNORM_INT8
2 CL_R CL_SNORM_INT16
3 CL_R CL_UNORM_INT8
4 CL_R CL_UNORM_INT16
5 CL_R CL_SIGNED_INT8
6 CL_R CL_SIGNED_INT16
7 CL_R CL_SIGNED_INT32
8 CL_R CL_UNSIGNED_INT8
9 CL_R CL_UNSIGNED_INT16
10 CL_R CL_UNSIGNED_INT32
11 CL_R CL_HALF_FLOAT
12 CL_R CL_FLOAT
13 CL_A CL_SNORM_INT8
14 CL_A CL_SNORM_INT16
15 CL_A CL_UNORM_INT8
16 CL_A CL_UNORM_INT16
17 CL_A CL_SIGNED_INT8
18 CL_A CL_SIGNED_INT16
19 CL_A CL_SIGNED_INT32
20 CL_A CL_UNSIGNED_INT8
21 CL_A CL_UNSIGNED_INT16
22 CL_A CL_UNSIGNED_INT32
23 CL_A CL_HALF_FLOAT
24 CL_A CL_FLOAT
25 CL_RG CL_SNORM_INT8
26 CL_RG CL_SNORM_INT16
27 CL_RG CL_UNORM_INT8
28 CL_RG CL_UNORM_INT16
29 CL_RG CL_SIGNED_INT8
30 CL_RG CL_SIGNED_INT16
31 CL_RG CL_SIGNED_INT32
32 CL_RG CL_UNSIGNED_INT8
33 CL_RG CL_UNSIGNED_INT16
34 CL_RG CL_UNSIGNED_INT32
35 CL_RG CL_HALF_FLOAT
36 CL_RG CL_FLOAT
37 CL_RGBA CL_SNORM_INT8
38 CL_RGBA CL_SNORM_INT16
39 CL_RGBA CL_UNORM_INT8
40 CL_RGBA CL_UNORM_INT16
41 CL_RGBA CL_SIGNED_INT8
42 CL_RGBA CL_SIGNED_INT16
43 CL_RGBA CL_SIGNED_INT32
44 CL_RGBA CL_UNSIGNED_INT8
45 CL_RGBA CL_UNSIGNED_INT16
46 CL_RGBA CL_UNSIGNED_INT32
47 CL_RGBA CL_HALF_FLOAT
48 CL_RGBA CL_FLOAT
49 CL_ARGB CL_SNORM_INT8
50 CL_ARGB CL_UNORM_INT8
51 CL_ARGB CL_SIGNED_INT8
52 CL_ARGB CL_UNSIGNED_INT8
53 CL_BGRA CL_SNORM_INT8
54 CL_BGRA CL_UNORM_INT8
55 CL_BGRA CL_SIGNED_INT8
56 CL_BGRA CL_UNSIGNED_INT8
57 CL_LUMINANCE CL_SNORM_INT8
58 CL_LUMINANCE CL_SNORM_INT16
59 CL_LUMINANCE CL_UNORM_INT8
60 CL_LUMINANCE CL_UNORM_INT16
61 CL_LUMINANCE CL_HALF_FLOAT
62 CL_LUMINANCE CL_FLOAT
63 CL_INTENSITY CL_SNORM_INT8
64 CL_INTENSITY CL_SNORM_INT16
65 CL_INTENSITY CL_UNORM_INT8
66 CL_INTENSITY CL_UNORM_INT16
67 CL_INTENSITY CL_HALF_FLOAT
68 CL_INTENSITY CL_FLOAT
69 CL_RA CL_SNORM_INT8
70 CL_RA CL_SNORM_INT16
71 CL_RA CL_UNORM_INT8
72 CL_RA CL_UNORM_INT16
73 CL_RA CL_SIGNED_INT8
74 CL_RA CL_SIGNED_INT16
75 CL_RA CL_SIGNED_INT32
76 CL_RA CL_UNSIGNED_INT8
77 CL_RA CL_UNSIGNED_INT16
78 CL_RA CL_UNSIGNED_INT32
79 CL_RA CL_HALF_FLOAT
80 CL_RA CL_FLOAT

oclDeviceQuery, Platform Name = AMD Accelerated Parallel Processing, Platform Version = OpenCL 1.2 AMD-APP (937.2), SDK Revision = 7027912, NumDevs = 2, Device = ATI RV770, Device = Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz

System Info:

Local Time/Date = 15:33:14, 1/30/2016
CPU Arch: 0
CPU Level: 6
# of CPU processors: 16
Windows Build: 7601
Windows Ver: 6.1 (Windows Vista / Windows 7)




Also Would be possible to have different filtering strength for Chroma like in HQDN3D?

Khanattila
5th February 2016, 13:07
Small suggestion regarding device_type="AUTO".
This option should also check whether GPU supports OpenCL 1.2 or not.
My Radeon 4850 is too old for gpu acceleration even with v0.6.11 due to CL_DEVICE_IMAGE_SUPPORT = 0. In this case plugin should automatically switch to CPU mode.

C:\Users\Dave\Desktop\NVIDIA GPU Computing SDK\OpenCL\bin\Win32\Release\oclDeviceQuery.exe Starting...

OpenCL SW Info:

WARNING: NVIDIA OpenCL platform not found - defaulting to first platform!

CL_PLATFORM_NAME: AMD Accelerated Parallel Processing
CL_PLATFORM_VERSION: OpenCL 1.2 AMD-APP (937.2)
OpenCL SDK Revision: 7027912


OpenCL Device Info:

2 devices found supporting OpenCL:

---------------------------------
Device ATI RV770
---------------------------------
CL_DEVICE_NAME: ATI RV770
CL_DEVICE_VENDOR: Advanced Micro Devices, Inc.
CL_DRIVER_VERSION: CAL 1.4.1734
CL_DEVICE_VERSION: OpenCL 1.0 AMD-APP (937.2)
CL_DEVICE_TYPE: CL_DEVICE_TYPE_GPU
CL_DEVICE_MAX_COMPUTE_UNITS: 10
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 256 / 256 / 256
CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
CL_DEVICE_MAX_CLOCK_FREQUENCY: 625 MHz
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 128 MByte
CL_DEVICE_GLOBAL_MEM_SIZE: 256 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT: no
CL_DEVICE_LOCAL_MEM_TYPE: global
CL_DEVICE_LOCAL_MEM_SIZE: 16 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64 KByte
CL_DEVICE_QUEUE_PROPERTIES: CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT: 0
CL_DEVICE_MAX_READ_IMAGE_ARGS: 0
CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 0
CL_DEVICE_SINGLE_FP_CONFIG: INF-quietNaNs round-to-nearest round-to-zero round-to-inf fma

CL_DEVICE_IMAGE <dim> 2D_MAX_WIDTH 0
2D_MAX_HEIGHT 0
3D_MAX_WIDTH 0
3D_MAX_HEIGHT 0
3D_MAX_DEPTH 0

CL_DEVICE_EXTENSIONS: cl_khr_fp64
cl_amd_fp64
cl_khr_gl_sharing
cl_amd_device_attribute_query
cl_khr_d3d10_sharing

CL_DEVICE_PREFERRED_VECTOR_WIDTH_<t> CHAR 16, SHORT 8, INT 4, LONG 2, FLOAT 4, DOUBLE 2


---------------------------------
Device Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
---------------------------------
CL_DEVICE_NAME: Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz
CL_DEVICE_VENDOR: GenuineIntel
CL_DRIVER_VERSION: 2.0 (sse2,avx)
CL_DEVICE_VERSION: OpenCL 1.2 AMD-APP (937.2)
CL_DEVICE_OPENCL_C_VERSION: OpenCL C 1.2
CL_DEVICE_TYPE: CL_DEVICE_TYPE_CPU
CL_DEVICE_MAX_COMPUTE_UNITS: 16
CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3
CL_DEVICE_MAX_WORK_ITEM_SIZES: 1024 / 1024 / 1024
CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024
CL_DEVICE_MAX_CLOCK_FREQUENCY: 2901 MHz
CL_DEVICE_ADDRESS_BITS: 32
CL_DEVICE_MAX_MEM_ALLOC_SIZE: 1024 MByte
CL_DEVICE_GLOBAL_MEM_SIZE: 2048 MByte
CL_DEVICE_ERROR_CORRECTION_SUPPORT: no
CL_DEVICE_LOCAL_MEM_TYPE: global
CL_DEVICE_LOCAL_MEM_SIZE: 32 KByte
CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64 KByte
CL_DEVICE_QUEUE_PROPERTIES: CL_QUEUE_PROFILING_ENABLE
CL_DEVICE_IMAGE_SUPPORT: 1
CL_DEVICE_MAX_READ_IMAGE_ARGS: 128
CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 8
CL_DEVICE_SINGLE_FP_CONFIG: denorms INF-quietNaNs round-to-nearest round-to-zero round-to-inf fma

CL_DEVICE_IMAGE <dim> 2D_MAX_WIDTH 8192
2D_MAX_HEIGHT 8192
3D_MAX_WIDTH 2048
3D_MAX_HEIGHT 2048
3D_MAX_DEPTH 2048

CL_DEVICE_EXTENSIONS: cl_khr_fp64
cl_amd_fp64
cl_khr_global_int32_base_atomics
cl_khr_global_int32_extended_atomics
cl_khr_local_int32_base_atomics
cl_khr_local_int32_extended_atomics
cl_khr_byte_addressable_store
cl_khr_gl_sharing
cl_ext_device_fission
cl_amd_device_attribute_query
cl_amd_vec3
cl_amd_printf
cl_amd_media_ops
cl_amd_popcnt
cl_khr_d3d10_sharing

CL_DEVICE_PREFERRED_VECTOR_WIDTH_<t> CHAR 16, SHORT 8, INT 4, LONG 2, FLOAT 4, DOUBLE 0


---------------------------------
2D Image Formats Supported (80)
---------------------------------
# Channel Order Channel Type

1 CL_R CL_SNORM_INT8
2 CL_R CL_SNORM_INT16
3 CL_R CL_UNORM_INT8
4 CL_R CL_UNORM_INT16
5 CL_R CL_SIGNED_INT8
6 CL_R CL_SIGNED_INT16
7 CL_R CL_SIGNED_INT32
8 CL_R CL_UNSIGNED_INT8
9 CL_R CL_UNSIGNED_INT16
10 CL_R CL_UNSIGNED_INT32
11 CL_R CL_HALF_FLOAT
12 CL_R CL_FLOAT
13 CL_A CL_SNORM_INT8
14 CL_A CL_SNORM_INT16
15 CL_A CL_UNORM_INT8
16 CL_A CL_UNORM_INT16
17 CL_A CL_SIGNED_INT8
18 CL_A CL_SIGNED_INT16
19 CL_A CL_SIGNED_INT32
20 CL_A CL_UNSIGNED_INT8
21 CL_A CL_UNSIGNED_INT16
22 CL_A CL_UNSIGNED_INT32
23 CL_A CL_HALF_FLOAT
24 CL_A CL_FLOAT
25 CL_RG CL_SNORM_INT8
26 CL_RG CL_SNORM_INT16
27 CL_RG CL_UNORM_INT8
28 CL_RG CL_UNORM_INT16
29 CL_RG CL_SIGNED_INT8
30 CL_RG CL_SIGNED_INT16
31 CL_RG CL_SIGNED_INT32
32 CL_RG CL_UNSIGNED_INT8
33 CL_RG CL_UNSIGNED_INT16
34 CL_RG CL_UNSIGNED_INT32
35 CL_RG CL_HALF_FLOAT
36 CL_RG CL_FLOAT
37 CL_RGBA CL_SNORM_INT8
38 CL_RGBA CL_SNORM_INT16
39 CL_RGBA CL_UNORM_INT8
40 CL_RGBA CL_UNORM_INT16
41 CL_RGBA CL_SIGNED_INT8
42 CL_RGBA CL_SIGNED_INT16
43 CL_RGBA CL_SIGNED_INT32
44 CL_RGBA CL_UNSIGNED_INT8
45 CL_RGBA CL_UNSIGNED_INT16
46 CL_RGBA CL_UNSIGNED_INT32
47 CL_RGBA CL_HALF_FLOAT
48 CL_RGBA CL_FLOAT
49 CL_ARGB CL_SNORM_INT8
50 CL_ARGB CL_UNORM_INT8
51 CL_ARGB CL_SIGNED_INT8
52 CL_ARGB CL_UNSIGNED_INT8
53 CL_BGRA CL_SNORM_INT8
54 CL_BGRA CL_UNORM_INT8
55 CL_BGRA CL_SIGNED_INT8
56 CL_BGRA CL_UNSIGNED_INT8
57 CL_LUMINANCE CL_SNORM_INT8
58 CL_LUMINANCE CL_SNORM_INT16
59 CL_LUMINANCE CL_UNORM_INT8
60 CL_LUMINANCE CL_UNORM_INT16
61 CL_LUMINANCE CL_HALF_FLOAT
62 CL_LUMINANCE CL_FLOAT
63 CL_INTENSITY CL_SNORM_INT8
64 CL_INTENSITY CL_SNORM_INT16
65 CL_INTENSITY CL_UNORM_INT8
66 CL_INTENSITY CL_UNORM_INT16
67 CL_INTENSITY CL_HALF_FLOAT
68 CL_INTENSITY CL_FLOAT
69 CL_RA CL_SNORM_INT8
70 CL_RA CL_SNORM_INT16
71 CL_RA CL_UNORM_INT8
72 CL_RA CL_UNORM_INT16
73 CL_RA CL_SIGNED_INT8
74 CL_RA CL_SIGNED_INT16
75 CL_RA CL_SIGNED_INT32
76 CL_RA CL_UNSIGNED_INT8
77 CL_RA CL_UNSIGNED_INT16
78 CL_RA CL_UNSIGNED_INT32
79 CL_RA CL_HALF_FLOAT
80 CL_RA CL_FLOAT

---------------------------------
3D Image Formats Supported (80)
---------------------------------
# Channel Order Channel Type

1 CL_R CL_SNORM_INT8
2 CL_R CL_SNORM_INT16
3 CL_R CL_UNORM_INT8
4 CL_R CL_UNORM_INT16
5 CL_R CL_SIGNED_INT8
6 CL_R CL_SIGNED_INT16
7 CL_R CL_SIGNED_INT32
8 CL_R CL_UNSIGNED_INT8
9 CL_R CL_UNSIGNED_INT16
10 CL_R CL_UNSIGNED_INT32
11 CL_R CL_HALF_FLOAT
12 CL_R CL_FLOAT
13 CL_A CL_SNORM_INT8
14 CL_A CL_SNORM_INT16
15 CL_A CL_UNORM_INT8
16 CL_A CL_UNORM_INT16
17 CL_A CL_SIGNED_INT8
18 CL_A CL_SIGNED_INT16
19 CL_A CL_SIGNED_INT32
20 CL_A CL_UNSIGNED_INT8
21 CL_A CL_UNSIGNED_INT16
22 CL_A CL_UNSIGNED_INT32
23 CL_A CL_HALF_FLOAT
24 CL_A CL_FLOAT
25 CL_RG CL_SNORM_INT8
26 CL_RG CL_SNORM_INT16
27 CL_RG CL_UNORM_INT8
28 CL_RG CL_UNORM_INT16
29 CL_RG CL_SIGNED_INT8
30 CL_RG CL_SIGNED_INT16
31 CL_RG CL_SIGNED_INT32
32 CL_RG CL_UNSIGNED_INT8
33 CL_RG CL_UNSIGNED_INT16
34 CL_RG CL_UNSIGNED_INT32
35 CL_RG CL_HALF_FLOAT
36 CL_RG CL_FLOAT
37 CL_RGBA CL_SNORM_INT8
38 CL_RGBA CL_SNORM_INT16
39 CL_RGBA CL_UNORM_INT8
40 CL_RGBA CL_UNORM_INT16
41 CL_RGBA CL_SIGNED_INT8
42 CL_RGBA CL_SIGNED_INT16
43 CL_RGBA CL_SIGNED_INT32
44 CL_RGBA CL_UNSIGNED_INT8
45 CL_RGBA CL_UNSIGNED_INT16
46 CL_RGBA CL_UNSIGNED_INT32
47 CL_RGBA CL_HALF_FLOAT
48 CL_RGBA CL_FLOAT
49 CL_ARGB CL_SNORM_INT8
50 CL_ARGB CL_UNORM_INT8
51 CL_ARGB CL_SIGNED_INT8
52 CL_ARGB CL_UNSIGNED_INT8
53 CL_BGRA CL_SNORM_INT8
54 CL_BGRA CL_UNORM_INT8
55 CL_BGRA CL_SIGNED_INT8
56 CL_BGRA CL_UNSIGNED_INT8
57 CL_LUMINANCE CL_SNORM_INT8
58 CL_LUMINANCE CL_SNORM_INT16
59 CL_LUMINANCE CL_UNORM_INT8
60 CL_LUMINANCE CL_UNORM_INT16
61 CL_LUMINANCE CL_HALF_FLOAT
62 CL_LUMINANCE CL_FLOAT
63 CL_INTENSITY CL_SNORM_INT8
64 CL_INTENSITY CL_SNORM_INT16
65 CL_INTENSITY CL_UNORM_INT8
66 CL_INTENSITY CL_UNORM_INT16
67 CL_INTENSITY CL_HALF_FLOAT
68 CL_INTENSITY CL_FLOAT
69 CL_RA CL_SNORM_INT8
70 CL_RA CL_SNORM_INT16
71 CL_RA CL_UNORM_INT8
72 CL_RA CL_UNORM_INT16
73 CL_RA CL_SIGNED_INT8
74 CL_RA CL_SIGNED_INT16
75 CL_RA CL_SIGNED_INT32
76 CL_RA CL_UNSIGNED_INT8
77 CL_RA CL_UNSIGNED_INT16
78 CL_RA CL_UNSIGNED_INT32
79 CL_RA CL_HALF_FLOAT
80 CL_RA CL_FLOAT

oclDeviceQuery, Platform Name = AMD Accelerated Parallel Processing, Platform Version = OpenCL 1.2 AMD-APP (937.2), SDK Revision = 7027912, NumDevs = 2, Device = ATI RV770, Device = Intel(R) Xeon(R) CPU E5-2690 0 @ 2.90GHz

System Info:

Local Time/Date = 15:33:14, 1/30/2016
CPU Arch: 0
CPU Level: 6
# of CPU processors: 16
Windows Build: 7601
Windows Ver: 6.1 (Windows Vista / Windows 7)




Also Would be possible to have different filtering strength for Chroma like in HQDN3D?

For performance reasons KNLMeansCL calculates the distance between two colors rather than between two gray levels three times.

If you want to have three different jobs you have to invoke it three times.


Y = KNLMeansCL(h=1)
U = UToY8().KNLMeansCL(h=2)
V = VToY8().KNLMeansCL(h=3)
YToUV(U, V, Y)


Regarding the other question you're right. I should check the CL_DEVICE_IMAGE_SUPPORT.

Atak_Snajpera
8th February 2016, 14:07
What do you think about creating version for OpenCL 2.0 or even 2.1. Yes I know that currently only AMD gpus are compatible with latest version. However It would be cool if we could combine AMD APU+AMD GPU power :)

littleD
8th February 2016, 22:57
Is that really AMD has support for Ocl 2.1? That would be a news.

Atak_Snajpera
9th February 2016, 11:15
My glass ball shows me that drivers for opencl 2.1 will be released together with vulkan 1.0. Why? Because both use the same intermediate spir-v language.

Khanattila
12th February 2016, 00:20
What do you think about creating version for OpenCL 2.0 or even 2.1. Yes I know that currently only AMD gpus are compatible with latest version. However It would be cool if we could combine AMD APU+AMD GPU power :)

Not really. What updates will give more performance?
Shared virtual memory? Useful only in AMD APU.
Nested parallelism? KNLMeansCL is data-parallel. Each pixel is independent of the others.
Generic address space? Just another level of abstraction.
Image enhancements? This is interesting, and may give better performance.

OpenCL 2.1 replaces the OpenCL C kernel language with OpenCL C++. Just another level of abstraction.
More abstraction usually means less performance.

Atak_Snajpera
14th February 2016, 12:36
check first post in this thread. He posted there requirments.

Atak_Snajpera
14th February 2016, 12:50
Older version also does not work with r4xxx due to hardware limitations. No idea about your gtx580...

Khanattila
14th February 2016, 16:06
I wrote "NVIDIA GeForce GT 640 or greater". NVIDIA no longer supports the GeForce 500 series...

Khanattila
15th February 2016, 01:52
Come on boy! I wrote it every way, both here and on github. There are a lot of post and tickets. Google is free.

GT 640 is supported by NVIDIA, GTX 590 Ultra Power Limited Edition not. :D

guest
15th February 2016, 02:50
Come on boy! I wrote it every way, both here and on github. There are a lot of post and tickets. Google is free.

GT 640 is supported by NVIDIA, GTX 590 Ultra Power Limited Edition not. :D

Don't appreciate the "Come on boy!" comment.

Someone needs to write a version of this that DOES support older, lower spec'd cards, 'cause there's a LOT of them out there.

tebasuna51
15th February 2016, 10:03
I wrote "NVIDIA GeForce GT 640 or greater". NVIDIA no longer supports the GeForce 500 series...

My NVIDIA GeForce GT 630 is also supported.
Just to clarify the "greater".