-
-
Notifications
You must be signed in to change notification settings - Fork 95
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
Multiple systems - one kernel - multiple outputs convolution #159
Comments
Hello, I believe this is the same request as vincefn/pyvkfft#33 (comment). Shouldn't be hard to add and seems to be really useful. I will try to add this functionality in the next couple of days, Best regards, |
I believe it is indeed the same request, I haven't seen it was already mentioned since it's for pyvkfft. |
-enabled through singleKernelMultipleBatches parameter -kernel batching is controlled through coordinateFeatures -number of input/output systems is controlled through numberBatches -sample 53 shows the usage of this option
I have added a sample (53) that shows how the requested functionality can be implemented in the new develop version of VkFFT. I haven't fully tested it yet apart from the example, but the implementation didn't require any big modifications, so it should work. If some more help is needed - I will be happy to answer any related questions. |
Yes, there is an issue that the convolution optimization has not been implemented if the last axis it is merged in has to do something else but plain radix2-13 C2C. This includes 1D R2C, R2R, Rader and Bluestein sequences. I need to fix this to work for all cases as not many people used this functionality before (so the documentation on convolutions is also lacking). Sorry for the confusion. |
Thanks for clarifying. Any hint what it should be aligned to then, to not encounter such problems for now? As for the second issue, I'm starting to suspect it might have something to do with buffer layout in my configuration, but I'm still looking into it. |
Convolutions should be safe now for C2C sequences decomposable as a multiplication of an arbitrary number of primes from 2 to 13. But isn't the second issue related to 1D R2C convolutions that are not supported currently? |
Thanks again.
I must have missed it. So R2C convolutions aren't supported specifially for 1D case? Cause I think there's a 2D R2C convolution in sample 52. |
Exactly. The last axis of transform needs to be a simple C2C to merge the convolution in it. I will try to fix this in the future to be more general. |
That explains it then, thank you. |
Hi,
I'm trying to perform a line-by-line image convolution using vkFFT: I have an image of size N * M and a kernel of size N * 1, and I'm trying to perform a convolution for each line with this same kernel. So, I'm performing an FFT for the kernel, and then trying to perform another FFT with 1D convolution for the image, setting numberBatches to M. But the convolution is only performed for the first line. I've tried playing with other parameters like coordinateFeatures and numberKernels, but haven't found the way to get the result I want. Am I missing something or is such convolution not currently possible?
The text was updated successfully, but these errors were encountered: