-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AVS+ Support #7
Comments
experimental releases
|
Thanks, can you update avisynth cpu ver?? |
Deleted, sr for disturb, don't care about sse3, sse4 |
Can you make auto build for avs+ x86?? Thanks |
Yes, I will do it in the near future. |
Thanks |
Done 26a5015. |
Thanks, i don't think "near future" only 5 hours 😂😂😂 |
But x86 ver don't have bm3d_vaggregate_avs.dll |
Thanks.
I thought there must be some compilation errors but everything goes smoothly. |
x86 ver have bm3d_vaggregate_avs now. Thanks |
In Avisynth, bm_range is limited to 1-8 while it can easily be 16 in VapourSynth |
Fixed. Thanks for the information. |
Thank you for putting up the new releases on here. |
Port 2.8 with internal VAggregate to AVS+ :) |
@WolframRhodium please? :) |
hi, i use BM3DCUDA_AVS-test9 on my RTX 2060 with below call as prefilter: and i saw that clock of RTX is set to 855MHz only.... |
GPU may be limited by transfer bandwidth. It's designed for outputting graphics, not to transfer massive data back and forth. |
Hi. You should always use
Various wrappers for AVS+ exist and I don't think there is a need to introduce it. |
@WolframRhodium |
The |
|
sorry, but i do not catch your answer.... |
Sorry about that. The script should be
|
thank you for answer. this not help but maybe this is the problem with WinOS, |
What if you remove all the following filters and output |
The real bottleneck is the aggregate part (i.e. the temporal part of BM3D), that is still done in CPU. |
@WolframRhodium sorry to bother you again but I'd like to see the porting with internal aggregation :) |
It is simply a kind of wrapper in terms of avisynth, in which scripts and plugins are treated equally. |
@WolframRhodium so there is no speed advantage in the so called BM3Dv2? |
Yep. |
And has this part Improve performance of VAggregate() and BM3Dv2() for temporal denoising. been ported? :) |
Previously bm3dcpu/cuda on vs are using VapourSynth-BM3D for VAggregate computation, which is never available for avs. |
Any chance of this avisynth+ version continuing to be under development? I particularly would love to see, for example, like the vapoursynth one, specific cpu type optimized versions made. But, also, with any other improvements included in the vapoursynth compiles. If you could show me / us how to compile the avisynth+ version, from the vapoursynth source code (if that's how you did it - you didn't provide source code for these avisynth+ versions), then I / we could do it ourselves... Why hold on to the obsolete avisynth+? Well, for the moment, I've found that, the TemporalDegrain2 avisynth+ script, with the BM3D_CPU, does better than the BM3D_CUDA/CPU, alone. That script also produces the best output, with the BM3D_CUDA/CPU. So, if you could possibly help in some way, that would be great! Thanks, in advance! |
I thought the cuda version created non-deterministic results, whereas the
CPU one always created deterministic...???
…On Sun, Jan 28, 2024, 5:42 PM WolframRhodium ***@***.***> wrote:
The source code for the avisynth+ version is in the avs+
<https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/tree/avs%2B>
branch, and the corresponding automatic compilation script is here
<https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/blob/avs%2B/.github/workflows/windows.yml>
.
BM3D_CPU should not produce noticeable result compared to BM3D_CUDA. That
is a design objective.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CGRUKU24Y3ZRIADU7LYQ3H5NAVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM3TINJZGEYA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
The cuda one can be made deterministic by setting the |
How do you know how high you have to set that parameter? Is there a max
number, for that parameter, that could just always be used? Does that
parameter, in any way, negatively affect the results?
…On Sun, Jan 28, 2024 at 6:24 PM WolframRhodium ***@***.***> wrote:
The cuda one can be made deterministic by setting the extractor_exp
parameter to 3 or higher.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CB7CWTKHXR2OTUR45TYQ3M2JAVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM3TKNZQGUYQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
There is no max number because the least value required for reproducible sum depends on the number of summation operands, which may increase as the value of parameters This parameter does reduce accuracy, because this is the price of deterministic result. However, this error is marginal compared to the error of conventional fp32 -> uint16/uint10/uint8 conversion. |
How do I run that automatic compilation script? Do I run it from inside
MSYS? I'm not familiar with a yml file. Additionally, can I also modify the
yml file to replace...
…-D CMAKE_CXX_FLAGS="/fp:fast"
with...
-D CMAKE_CXX_FLAGS="-march=znver3"
On Sun, Jan 28, 2024 at 5:42 PM WolframRhodium ***@***.***> wrote:
The source code for the avisynth+ version is in the avs+
<https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/tree/avs%2B>
branch, and the corresponding automatic compilation script is here
<https://github.com/WolframRhodium/VapourSynth-BM3DCUDA/blob/avs%2B/.github/workflows/windows.yml>
.
BM3D_CPU should not produce noticeable result compared to BM3D_CUDA. That
is a design objective.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CGRUKU24Y3ZRIADU7LYQ3H5NAVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM3TINJZGEYA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
The yml file uses GitHub actions to compile the plugins on GitHub-hosted runners. You may check individual cmake commands in that file to compile on your host. You can change the compilation flags. |
I'm giving up, for now... Been trying for a couple hours, to get it to
compile, but no matter what I do, it tells me that there are indentation
errors in the windows.yml file... Maybe I'll figure it out Wednesday... I
work the next two days, and won't really have time to look at it...
…On Sun, Jan 28, 2024 at 8:30 PM WolframRhodium ***@***.***> wrote:
The yml file uses GitHub actions to compile the plugins on GitHub-hosted
runners. You may check individual cmake commands in that file to compile on
your host.
You can change the compilation flags.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CGSZCLXS2MXAUPSBO3YQ33T7AVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM4DCMZSGQ3A>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
git clone -b avs+ https://github.com/WolframRhodium/VapourSynth-BM3DCUDA
cd VapourSynth-BM3DCUDA
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D USE_NVRTC_STATIC=ON -D ENABLE_AVISYNTHPLUS=ON -D AVISYNTHPLUS_INCLUDE_DIRECTORY="%cd%\avisynth+\avs_core\include" -D ENABLE_VAPOURSYNTH=OFF -D CMAKE_CXX_FLAGS="/fp:fast" -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets" -D CMAKE_CUDA_ARCHITECTURES="50;61-real;75-real;86-real;89-real"
cmake --build build |
I'll try those as soon as I can. Now, do I put -march=znver3 -O3 in the cxx
flags only, or can I also put it in the cuda flags? Should I add a c flags
with those? Should I replace the /fp fast or fast math?
…On Sun, Jan 28, 2024, 11:40 PM WolframRhodium ***@***.***> wrote:
git clone -b avs+ https://github.com/WolframRhodium/VapourSynth-BM3DCUDA
cd VapourSynth-BM3DCUDA
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D USE_NVRTC_STATIC=ON -D ENABLE_AVISYNTHPLUS=ON -D AVISYNTHPLUS_INCLUDE_DIRECTORY="%cd%\avisynth+\avs_core\include" -D ENABLE_VAPOURSYNTH=OFF -D CMAKE_CXX_FLAGS="/fp:fast" -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets" -D CMAKE_CUDA_ARCHITECTURES="50;61-real;75-real;86-real;89-real"
cmake --build build
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CAI2RVFFI6IZ4HABYDYQ4R33AVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM4TIOJTGA2A>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Alternatively, is there a way for avisynth scripts, like the
TemporalDegrain2.avsi to be imported into vapoursynth?
…On Mon, Jan 29, 2024, 8:51 AM Sean Lloyd ***@***.***> wrote:
I'll try those as soon as I can. Now, do I put -march=znver3 -O3 in the
cxx flags only, or can I also put it in the cuda flags? Should I add a c
flags with those? Should I replace the /fp fast or fast math?
On Sun, Jan 28, 2024, 11:40 PM WolframRhodium ***@***.***>
wrote:
> git clone -b avs+ https://github.com/WolframRhodium/VapourSynth-BM3DCUDA
> cd VapourSynth-BM3DCUDA
>
> cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D USE_NVRTC_STATIC=ON -D ENABLE_AVISYNTHPLUS=ON -D AVISYNTHPLUS_INCLUDE_DIRECTORY="%cd%\avisynth+\avs_core\include" -D ENABLE_VAPOURSYNTH=OFF -D CMAKE_CXX_FLAGS="/fp:fast" -D CMAKE_CUDA_FLAGS="--threads 0 --use_fast_math --resource-usage -Wno-deprecated-gpu-targets" -D CMAKE_CUDA_ARCHITECTURES="50;61-real;75-real;86-real;89-real"
>
> cmake --build build
>
> —
> Reply to this email directly, view it on GitHub
> <#7 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/A5VH7CAI2RVFFI6IZ4HABYDYQ4R33AVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGM4TIOJTGA2A>
> .
> You are receiving this because you commented.Message ID:
> ***@***.***>
>
|
Only cxx flags will be used. The flags depend on the compiler you use. avs+ code should be re-implemented in vapoursynth for maximal performance in general. |
Is it possible to import or translate the process, filters, and scripts
necessary for the temporaldegrain2 script to vapoursynth?
…On Mon, Jan 29, 2024, 9:43 PM WolframRhodium ***@***.***> wrote:
Only cxx flags will be used. The flags depend on the compiler you use.
avs+ code should be re-implemented in vapoursynth for maximal performance
in general.
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A5VH7CFW6D5KR2UJT3GSBRDYRBM5TAVCNFSM5A6LMPTKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJRGU4TMNZSG42Q>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
This is not related to this repository. |
Any wish to get AVS+ version on par with VS release? |
The cuda backend is equivalent. |
VAggregate is still external, plus you didn't add all the subsequent fixes and new cards. |
VAggregate is external but it can be easily handled by various wrappers in the field. |
I was reading: bm3d.VAggregate should be called after temporal filtering, as in VapourSynth-BM3D. Alternatively, you may use the BM3Dv2() interface for both spatial and temporal denoising in one step. Isn't that faster that a wrapper? |
No. |
About GPU support, forgive me if I am wrong but the last AVS+ build was on Jan 31, 2023 (R12.3.test). Later you released VS builds up to R12.4, introducing AMD and Intel support. |
I am not intended to port these implementations to AVS+. |
You can ask Asd-g if he is interested in it. |
This issue tracks information related to AviSynth+ support. Please discuss in the doom9's thread.
The text was updated successfully, but these errors were encountered: