[nnc backend] Implement Conv2D_FFT methods (#636)
authorDenis Maksimenko/AI Tools Lab /SRR/Assistant Engineer/삼성전자 <d.maksimenko@partner.samsung.com>
Tue, 24 Jul 2018 08:36:43 +0000 (11:36 +0300)
committerSergey Vostokov/AI Tools Lab /SRR/Staff Engineer/삼성전자 <s.vostokov@samsung.com>
Tue, 24 Jul 2018 08:36:43 +0000 (17:36 +0900)
commitc3113b4de6be69ffba961d4b7521ca2b69be94cf
treed5d288bc4243f9ce21b4bca823917e75a707cdbf
parent89e91625de4116edf13fdc0d8a8e9de7c41e398a
[nnc backend] Implement Conv2D_FFT methods (#636)

* Added added utility functions.

Added pad_input(), unpack_and_pad_kernels(). Implementes most of operator().

* Added fft() implementation.

Added concrete implementation of FFT using in-place Cooley-Tukey algorithm.

* Added elementwise_product().

Added a function that performs convolution in Fourier domain. Also, fixed some interfaces.

* Added ifft() implementation.

implemented ifft(), which performs inverse FFT and concludes class implementation.

Added multiplying by channels in ifft() indexing.

* Restored ShapeRange loop.

unpack_and_pad_kernels now uses for (... : kernelRange) again to make code more understandable.

Signed-off-by: Denis Maksimenko <d.maksimenko@partner.samsung.com>
contrib/nnc/libs/backend/interpreter/core/include/interpreter/ops/conv_FFT.h
contrib/nnc/libs/backend/interpreter/core/src/ops/conv_FFT.cpp