Код 3D свертки C/C++ для небольших ядер

Я ищу быстрый код C (или C++), который выполняет 3D-свертку с небольшими ядрами. То, что я нашел в Интернете до сих пор, основано на FFT и требует использования других библиотек. Однако, как отмечают многие, эти коды свертки на основе FFT не подходят для небольших ядер (в моем случае это в основном 3×3×3 или 5×5×5). Существует ли код C/C++, который напрямую реализует алгоритм трехмерной свертки? Я могу реализовать 3D-свертку в коде в соответствии с ее определением. Однако то, что я пишу, будет не самой эффективной и быстрой реализацией. Я действительно ищу код, который был проверен в этом аспекте.


person AFPP    schedule 20.11.2014    source источник
comment
Свертка просто умножает и добавляет. В чем проблема?   -  person Oliver Charlesworth    schedule 20.11.2014
comment
Не уверен, что это то, что вы ищете. programming-techniques.com/2013/ 02/   -  person SSC    schedule 20.11.2014
comment
@OliverCharlesworth: я знаю, как реализовать 3D-свертку. Наверняка то, что я пишу, не самая эффективная и быстрая реализация. Я действительно ищу код, который был проверен в этом аспекте.   -  person AFPP    schedule 20.11.2014
comment
@ A2009 A2009, это так расплывчато для меня ... вместо этого определите целевую сложность, чтобы нам было ясно, чего вы хотите. Возможно, что-то быстрее, чем O(N^3)? где N размер квадратного массива? из вашего повторяющегося вопроса N около 200. Кстати, не создавайте повторяющиеся вопросы, а улучшайте текущие. PS для FFT вам не нужна библиотека, вы можете написать ее сами, это не так сложно   -  person Spektre    schedule 21.11.2014
comment
@ A2009 здесь еще один почти такой же вопрос stackoverflow.com/q/20554666/2521214   -  person Spektre    schedule 21.11.2014